diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..512c521 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,19 @@ +version: 2 +updates: + - package-ecosystem: npm + directory: / + schedule: + interval: weekly + day: monday + open-pull-requests-limit: 5 + groups: + development-dependencies: + dependency-type: development + production-dependencies: + dependency-type: production + - package-ecosystem: github-actions + directory: / + schedule: + interval: weekly + day: monday + open-pull-requests-limit: 5 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fa1088a..a55a789 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,109 +1,212 @@ -name: storefront-js +name: CI on: push: - branches: [main, dev-**] - tags: - - 'v*' + branches: [main, 'dev-**', 'feature/**', 'release/**'] pull_request: - branches: [main, dev-**] + branches: [main, 'release/**'] + +permissions: + contents: read + +concurrency: + group: ci-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +env: + PNPM_VERSION: 9.15.4 jobs: - build: + quality: + name: Quality and coverage runs-on: ubuntu-latest + timeout-minutes: 20 + steps: + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + - uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4 + with: + version: ${{ env.PNPM_VERSION }} + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 + with: + node-version: 24 + cache: pnpm + - run: pnpm install --frozen-lockfile + - run: pnpm run format:check + - run: pnpm run lint + - run: pnpm run typecheck + - run: pnpm run test:coverage + - name: Upload coverage report + if: always() + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + with: + name: coverage-node-24 + path: coverage + if-no-files-found: error + retention-days: 7 + runtime: + name: Node ${{ matrix.node }} + runs-on: ubuntu-latest + timeout-minutes: 20 + continue-on-error: ${{ matrix.experimental }} strategy: + fail-fast: false matrix: - node-version: [18.x] - + include: + - node: 22 + experimental: false + - node: 24 + experimental: false + - node: 26 + experimental: true steps: - - uses: actions/checkout@v4 - - - name: Setup Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v4 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + - uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4 + with: + version: ${{ env.PNPM_VERSION }} + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 + with: + node-version: ${{ matrix.node }} + cache: pnpm + - run: pnpm install --frozen-lockfile + - run: pnpm test + - run: pnpm run build + - name: Require reproducible generated artifacts + run: git diff --exit-code -- dist types + - run: pnpm run test:browser + + package: + name: Packed artifact + runs-on: ubuntu-latest + timeout-minutes: 25 + steps: + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + - uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4 with: - node-version: ${{ matrix.node-version }} - - uses: actions/cache@v3 - id: npm-cache + version: ${{ env.PNPM_VERSION }} + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: - path: ~/.pnpm-store # Replace this with the path you want to cache - key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-pnpm- - - name: Setup pnpm - uses: pnpm/action-setup@v4 + node-version: 24 + cache: pnpm + - run: pnpm install --frozen-lockfile + - run: pnpm run build + - run: pnpm run test:browser + - run: pnpm run package:check + - name: Pack once + run: | + mkdir -p artifacts + pnpm pack --pack-destination artifacts + pnpm run package:artifact artifacts/*.tgz + - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 with: - version: 9.5.0 - - - name: Install Dependencies - run: pnpm install - - - name: Test - run: pnpm test - env: - STOREFRONT_KEY: ${{ secrets.STOREFRONT_KEY }} - FLEETBASE_KEY: ${{ secrets.FLEETBASE_KEY }} - FLEETBASE_HOST: ${{ secrets.FLEETBASE_HOST }} - - - name: Build - run: pnpm run bundle - - npm_publish: - needs: build + name: npm-package + path: artifacts/*.tgz + if-no-files-found: error + retention-days: 7 + + compatibility: + name: ${{ matrix.manager }} consumer + needs: package runs-on: ubuntu-latest - if: startsWith(github.ref, 'refs/tags/') + timeout-minutes: 20 + strategy: + fail-fast: false + matrix: + manager: [npm, pnpm, yarn, bun] steps: - - uses: actions/checkout@v4 - - - name: Setup Node.js 18.x - uses: actions/setup-node@v4 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: - node-version: 18.x - - - name: Setup pnpm - uses: pnpm/action-setup@v4 + node-version: 24 + - if: matrix.manager == 'pnpm' + uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4 with: - version: 9.5.0 - - - name: Install Dependencies - run: pnpm install - - - name: Build - run: pnpm run bundle - - - name: Set up npm - run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_AUTH_TOKEN }}" > ~/.npmrc - - - name: Publish - run: npm publish --access public + version: ${{ env.PNPM_VERSION }} + - if: matrix.manager == 'yarn' + name: Install Yarn + run: | + npm install --global corepack@0.34.0 + corepack enable + corepack prepare yarn@4.9.2 --activate + - if: matrix.manager == 'bun' + uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2 + with: + bun-version: 1.2.22 + - run: npm install --ignore-scripts + - uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5 + with: + name: npm-package + path: artifacts + - run: node scripts/verify-packed-package.mjs ${{ matrix.manager }} artifacts/*.tgz - github_publish: - needs: build + framework-compatibility: + name: Framework consumers + needs: package runs-on: ubuntu-latest - if: startsWith(github.ref, 'refs/tags/') + timeout-minutes: 25 steps: - - uses: actions/checkout@v4 - - - name: Setup Node.js 18.x - uses: actions/setup-node@v4 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + - uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4 with: - node-version: 18.x - - - name: Setup pnpm - uses: pnpm/action-setup@v4 + version: ${{ env.PNPM_VERSION }} + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: - version: 9.5.0 - - - name: Install Dependencies - run: pnpm install - - - name: Build - run: pnpm run bundle + node-version: 24 + cache: pnpm + - run: pnpm install --frozen-lockfile + - uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5 + with: + name: npm-package + path: artifacts + - run: node scripts/verify-framework-consumers.mjs artifacts/*.tgz - - name: Configure npm for GitHub registry - run: | - echo "@fleetbase:registry=https://npm.pkg.github.com/" >> ~/.npmrc - echo "//npm.pkg.github.com/:_authToken=${{ secrets.GITHUB_TOKEN }}" >> ~/.npmrc + security: + name: Production dependency audit + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + - uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4 + with: + version: ${{ env.PNPM_VERSION }} + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 + with: + node-version: 24 + cache: pnpm + - run: pnpm install --frozen-lockfile + - run: pnpm audit --prod --audit-level moderate + + dependency-review: + name: Dependency review + if: github.event_name == 'pull_request' + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + - uses: actions/dependency-review-action@2031cfc080254a8a887f58cffee85186f0e49e48 # v4 + with: + fail-on-severity: moderate - - name: Publish to GitHub registry - run: npm publish + mutation: + name: Critical mutation score + runs-on: ubuntu-latest + timeout-minutes: 30 + steps: + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + - uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4 + with: + version: ${{ env.PNPM_VERSION }} + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 + with: + node-version: 24 + cache: pnpm + - run: pnpm install --frozen-lockfile + - run: pnpm run test:mutation + - name: Upload mutation report + if: always() + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + with: + name: mutation-report + path: reports/mutation + if-no-files-found: warn + retention-days: 7 diff --git a/.github/workflows/live-smoke.yml b/.github/workflows/live-smoke.yml new file mode 100644 index 0000000..208c487 --- /dev/null +++ b/.github/workflows/live-smoke.yml @@ -0,0 +1,35 @@ +name: Live Storefront smoke + +on: + workflow_dispatch: + schedule: + - cron: '17 3 * * 2' + +permissions: + contents: read + +concurrency: + group: live-storefront-smoke + cancel-in-progress: true + +jobs: + smoke: + name: Non-destructive API smoke + runs-on: ubuntu-latest + timeout-minutes: 10 + environment: storefront-smoke + steps: + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + - uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4 + with: + version: 9.15.4 + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 + with: + node-version: 24 + cache: pnpm + - run: pnpm install --frozen-lockfile + - run: pnpm run build + - run: node scripts/live-smoke.mjs + env: + FLEETBASE_STOREFRONT_PUBLIC_KEY: ${{ secrets.FLEETBASE_STOREFRONT_PUBLIC_KEY }} + FLEETBASE_STOREFRONT_HOST: ${{ vars.FLEETBASE_STOREFRONT_HOST }} diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..5597350 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,84 @@ +name: Publish + +on: + push: + tags: ['v*'] + +permissions: + contents: write + id-token: write + +concurrency: + group: npm-production + cancel-in-progress: false + +jobs: + npm: + name: Publish verified package + runs-on: ubuntu-latest + timeout-minutes: 30 + environment: npm-production + steps: + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + with: + ref: ${{ github.ref_name }} + - uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4 + with: + version: 9.15.4 + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 + with: + node-version: 24 + registry-url: https://registry.npmjs.org + package-manager-cache: false + - name: Require tag and package version parity + env: + RELEASE_TAG: ${{ github.ref_name }} + run: node -e "const version = require('./package.json').version; const expected = 'v' + version; if (process.env.RELEASE_TAG !== expected) throw new Error('Release tag ' + process.env.RELEASE_TAG + ' does not match package ' + expected)" + - run: npm install --global npm@11 + - run: pnpm install --frozen-lockfile + - run: pnpm run check + - name: Require reproducible generated artifacts + run: git diff --exit-code -- dist types + - name: Create and verify the immutable package artifact + run: | + mkdir -p artifacts + pnpm pack --pack-destination artifacts + pnpm run package:artifact artifacts/*.tgz + node scripts/verify-packed-package.mjs pnpm artifacts/*.tgz + sha256sum artifacts/*.tgz > artifacts/SHA256SUMS + - name: Publish the verified bytes with provenance + env: + RELEASE_TAG: ${{ github.ref_name }} + run: | + version="${RELEASE_TAG#v}" + dist_tag=latest + case "$version" in + *-*) dist_tag=next ;; + esac + package="@fleetbase/storefront@$version" + local_integrity="sha512-$(openssl dgst -sha512 -binary artifacts/*.tgz | openssl base64 -A)" + published_integrity="$(npm view "$package" dist.integrity 2>/dev/null || true)" + if [ -n "$published_integrity" ]; then + test "$published_integrity" = "$local_integrity" + echo "$package already contains the verified release bytes" + else + npm publish artifacts/*.tgz --access public --tag "$dist_tag" + fi + - name: Verify registry metadata + env: + PACKAGE_VERSION: ${{ github.ref_name }} + run: | + expected="${PACKAGE_VERSION#v}" + actual="$(npm view @fleetbase/storefront@"$expected" version)" + test "$actual" = "$expected" + - name: Create the GitHub Release and attach verified artifacts + env: + GH_TOKEN: ${{ github.token }} + RELEASE_TAG: ${{ github.ref_name }} + run: | + if gh release view "$RELEASE_TAG" >/dev/null 2>&1; then + gh release edit "$RELEASE_TAG" --title "$RELEASE_TAG" --notes-file RELEASE.md + else + gh release create "$RELEASE_TAG" --verify-tag --title "$RELEASE_TAG" --notes-file RELEASE.md + fi + gh release upload "$RELEASE_TAG" artifacts/*.tgz artifacts/SHA256SUMS --clobber diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 11d1c7f..54c6335 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,25 +21,25 @@ name: Release Tag # lands on main after the merge. on: - pull_request: - types: [closed] - branches: [main] - workflow_dispatch: - inputs: - version: - description: "Version to tag, e.g. 1.2.3. Recovery only — a normal release reads it from the branch." - required: true + pull_request: + types: [closed] + branches: [main] + workflow_dispatch: + inputs: + version: + description: 'Version to tag, e.g. 1.2.3. Recovery only — a normal release reads it from the branch.' + required: true permissions: - contents: read + contents: read jobs: - tag: - if: github.event_name == 'workflow_dispatch' || - (github.event.pull_request.merged == true && - (startsWith(github.event.pull_request.head.ref, 'release/v') || - startsWith(github.event.pull_request.head.ref, 'dev-v'))) - uses: fleetbase/fleetbase/.github/workflows/release-tag.yml@main - with: - version-files: package.json - version: ${{ github.event.inputs.version || '' }} - secrets: inherit + tag: + if: github.event_name == 'workflow_dispatch' || + (github.event.pull_request.merged == true && + (startsWith(github.event.pull_request.head.ref, 'release/v') || + startsWith(github.event.pull_request.head.ref, 'dev-v'))) + uses: fleetbase/fleetbase/.github/workflows/release-tag.yml@main + with: + version-files: package.json + version: ${{ github.event.inputs.version || '' }} + secrets: inherit diff --git a/.gitignore b/.gitignore index e828eb1..84c3023 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,8 @@ /.sass-cache /connect.lock /coverage/ +/reports/ +/.cache/ /libpeerconnection.log /npm-debug.log* /testem.log @@ -23,4 +25,4 @@ # Ignore artifacts: build -coverage \ No newline at end of file +coverage diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..a84dd74 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +cache=.cache/npm diff --git a/.prettierignore b/.prettierignore index 49274e0..06205c2 100644 --- a/.prettierignore +++ b/.prettierignore @@ -2,8 +2,10 @@ /dist/ dist/ /tmp/ +/.cache/ +/reports/ # dependencies /node_modules/ LICENSE.md -README.md \ No newline at end of file +README.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..bd8be04 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,16 @@ +# Changelog + +Release branches update this file with the user-visible changes included in each package version. + +## 1.2.0 + +- Modernized the maintained SDK source with strict TypeScript while preserving the v1.1.14 public and request contracts. +- Added current marketplace and network helpers aligned with the Storefront and Core APIs. +- Added genuine ESM and CommonJS builds, browser and server compatibility, and generated TypeScript declarations. +- Added exact 100% statement, branch, function, and line coverage plus critical-path mutation testing. +- Added packed-package verification across npm, pnpm, Yarn, Bun, Vite, webpack, Next.js, and Ember. +- Added protected npm trusted publishing, provenance, checksummed GitHub release artifacts, dependency review, and CodeQL. + +## 1.1.14 + +The historical release predates automated changelog generation. See the repository's GitHub releases for earlier changes. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..4d85dd7 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,43 @@ +# Contributing + +## Requirements + +- Node.js 22 or 24 +- pnpm 9.15.4 through Corepack or the pinned package manager metadata + +## Local verification + +```sh +pnpm install --frozen-lockfile +pnpm run check +``` + +Tests must be deterministic and must not require Storefront or Fleetbase secrets. Maintained runtime source is held to 100% statements, branches, functions, and lines. Add assertions for request verbs, paths, payloads, options, hydration, adapter identity, synchronous errors, and rejected requests rather than adding coverage-only execution. + +For package changes, build one tarball and test the artifact rather than importing the source tree: + +```sh +mkdir -p artifacts +pnpm pack --pack-destination artifacts +node scripts/verify-packed-package.mjs pnpm artifacts/*.tgz +node scripts/verify-framework-consumers.mjs artifacts/*.tgz +``` + +The framework gate builds Vite, webpack, Next.js client/server, and Ember Vite/Embroider consumers from the tarball. Critical request, authentication, hydration, hours/currency, and validation logic is mutation-tested separately with `pnpm run test:mutation`; the CI gate fails below an 80% mutation score. + +## Compatibility + +Preserve the default `Storefront` constructor, `Storefront.newInstance`, named resource exports, store properties, arguments and defaults, request contracts, returned resource classes, and synchronous error behavior. Intentional breaking changes require a major-version release branch and migration documentation. + +## Release notes + +User-visible changes must update the unreleased section of `CHANGELOG.md` or include clear release-note text in the pull request. The release owner moves those entries into the versioned section and updates `RELEASE.md` on `release/v`. + +Internal-only changes should say explicitly that they do not affect consumers. + +## Pull requests + +- Keep unrelated work out of the branch. +- Update declarations, tests, and documentation with implementation changes. +- Run `pnpm run check` before pushing. +- Include the commands and results that verify the change. diff --git a/MODERNIZATION_PLAN.md b/MODERNIZATION_PLAN.md new file mode 100644 index 0000000..df1c2a3 --- /dev/null +++ b/MODERNIZATION_PLAN.md @@ -0,0 +1,293 @@ +# Storefront JavaScript SDK modernization and release plan + +Status: implementation complete on PR #12 and staged through release PR #14; application acceptance and protected publication remain release gates + +Audit baseline: `main` at `dbc6456` (`v1.1.14`) on 2026-08-31 + +Release branch: `release/v1.2.0`; the release remains blocked from `main` until every compatibility and acceptance gate passes + +## Implementation checkpoint + +PR #12 now contains the strict TypeScript refactor, executable API/wire snapshots, exact 100% maintained-source coverage, generated declarations, genuine ESM/CommonJS/browser exports, packed npm/pnpm/Yarn/Bun fixtures, Vite/webpack/Next.js/Ember-Embroider builds, mutation testing, immutable action pins, dependency automation, a non-destructive live smoke workflow, release-branch tagging, npm trusted publishing, checksummed release artifacts, and updated public documentation. + +Final local evidence on Node 24: 364/364 statements, 306/306 branches, 189/189 functions, and 343/343 lines; 86.32% mutation score across 190 critical-path mutants; zero known production advisories; and a 360,212-byte compressed/1,767,919-byte unpacked tarball. The exact tarball passed ESM, callable CommonJS, Node16/NodeNext/Bundler declarations, pnpm clean-room installation, Vite 8, webpack 5, Next.js 16 client/server, and Ember 7 Vite/Embroider builds. + +The upstream `@fleetbase/sdk@1.2.13` package cannot safely remain external because its advertised CommonJS file is inside a `type: module` boundary and webpack reports its ESM entry as having no exports. Storefront therefore bundles a patched build-time copy into every runtime artifact and no longer installs the vulnerable upstream graph in consuming applications. This compatibility boundary is covered by packed CommonJS and framework fixtures and can be removed after an upstream packaging/security release. + +PR #12 must merge into `release/v1.2.0` before release PR #14 can merge to `main`. Merging PR #14 validates the release branch, package version, and release notes, creates tag `v1.2.0`, and starts the protected publisher. The owner-only gates remain: configure the documented GitHub environments and npm trusted publisher, record Storefront Web/App and marketplace acceptance, approve the protected production environment, and verify npm provenance and attached checksums after publication. + +## Executive assessment + +The SDK can be modernized without intentionally breaking its public API, but it should not be refactored or released in one unverified step. The current package has almost no behavioral protection, a broken CommonJS entry point, undiscoverable and stale type declarations, an oversized and poorly scoped tarball, outdated CI/release mechanics, and vulnerable production dependencies inherited from `@fleetbase/sdk`. + +The safe delivery strategy is: + +1. capture the existing public and wire-level behavior as executable contracts; +2. fix packaging, dependency security, and CI/release foundations; +3. refactor incrementally to typed, modular source while running old-versus-new parity tests; +4. prove the packed artifact in real consumer fixtures; +5. publish a release candidate before promoting the exact same artifact to `latest`. + +“100% coverage” in this plan means 100% statements, branches, functions, and lines across maintained source, enforced in CI. It is a release gate, not a substitute for contract, mutation, package, browser, and integration testing. + +## Audit findings + +### Repository and release state + +- The latest source and GitHub release is `v1.1.14`, committed and released on 2025-02-11. +- Open PR [#11](https://github.com/fleetbase/storefront-js/pull/11) adds marketplace SDK helpers and seven deterministic contract tests. It is mergeable, has green checks, and is currently blocked by repository review/merge policy. Its proposed APIs must be incorporated into the compatibility baseline before the refactor begins. +- There are no open GitHub issues and no automated version/changelog release PR mechanism. +- The source contains 1,138 JavaScript lines across 30 files. `src/cart-store.js` and `src/customer-store.js` appear to be legacy implementations outside the current entry graph; they must be proven unreachable before removal. + +### Test and quality baseline + +- The only test on `main` asserts that `new Storefront(...)` creates an instance. It does not make or validate an API request. +- Baseline coverage measured with c8 `--all` is 44.90% statements, 82.85% branches, 3.12% functions, and 44.90% lines. Most apparent line coverage comes from module evaluation and resource registration, not exercised behavior. +- `pnpm test`, `pnpm run lint`, formatting validation, a frozen install, and the bundle build pass locally on Node 24. +- `pnpm run lint:tests` fails because the ESLint configuration does not define Mocha globals. CI never invokes this script. +- Tests require secret-shaped environment configuration even though the current test is logically a unit test. Pull requests from forks therefore cannot have a fully deterministic, secret-free validation path. +- There are no coverage thresholds, negative-path tests, mutation tests, type tests, packed-package tests, browser tests, or framework/package-manager consumer tests. + +### Package and runtime compatibility + +- ESM import works on Node 24 and exposes the documented default plus named resources. +- CommonJS is broken. The `require` export points to `dist/cjs/storefront.js`, but the package-level `"type": "module"` makes that `.js` file ESM. Node loads an empty namespace and `require('@fleetbase/storefront')` is not constructible. Node’s package guidance calls out this exact mixed-module failure mode. +- Declarations are checked into `types/`, but `package.json` has no `types` field and no `types` export condition. TypeScript consumers cannot reliably discover them. +- Declarations already drift from runtime: `FoodTruck`, `foodTrucks`, instance `lookup`, and several action/helper surfaces are absent or incomplete. +- The Rollup build minifies and fully bundles all runtime dependencies into ESM, CJS, and UMD output. This produces approximately 188 KB per main file, duplicates dependencies in consumer applications, impairs tree-shaking/debugging, and can create class-identity hazards for `instanceof Adapter`/resource checks. +- The packed package is 896,392 bytes compressed and 4,193,537 bytes unpacked with 86 files. It ships source, tests, CI/editor/config files, declarations that are not wired up, and stale historical bundles not generated by the current Rollup configuration. +- Package metadata lacks `files`, `engines`, `packageManager`, `sideEffects`, `repository`, `bugs`, `homepage`, and an explicit browser compatibility policy. +- Only the root export is declared. There is no supported utility/resource subpath strategy and no compatibility validation for bundlers that interpret conditional exports differently. + +### API and implementation risks to characterize + +The refactor must preserve the default `Storefront` constructor, `Storefront.newInstance`, named resource exports, `lookup`, store properties, action names, method arguments/defaults, returned Fleetbase resource/collection types, adapter calls, request paths/payloads/options, and synchronous error behavior. + +Tests must explicitly characterize these current risk areas before changing them: + +- `setAdapter()` changes the root adapter but not already-created stores. +- `search()` constructs products without passing the active adapter. +- resource helpers inconsistently preserve adapters when hydrating nested data. +- headers are mutated through `adapter.setHeaders()` for customer-authorized requests; isolation between customers/requests is not proven. +- `StoreLocation.hours` assumes an array and can throw for absent hours; PR #11 proposes a guard. +- `Product.getReviews()` sends the product ID in a parameter named `store`; the backend contract must decide whether this is compatibility behavior or a defect. +- unsupported resource methods throw inconsistent messages, including copy/paste references to store locations. +- review media helpers are exported but empty. +- legacy store classes duplicate current action-based implementations. + +These observations are investigation targets, not authorization to silently “correct” behavior. If a confirmed defect has consumers, preserve the old behavior where practical, add a corrected API, deprecate the old behavior, and document the migration. + +### Dependency and supply-chain state + +- `@fleetbase/sdk@1.2.13` is both the locked and current registry version, so a normal dependency update cannot resolve its vulnerable transitive graph. +- `pnpm audit --prod` reports 34 production advisories: 1 critical, 14 high, 18 moderate, and 1 low. They include `axios`, `form-data`, `follow-redirects`, and `@babel/runtime` through `@fleetbase/sdk`. +- The current workflow tests only Node 18, which reached end of life on 2025-03-27. As of this audit, Node 22 and 24 are maintained LTS lines and Node 26 is Current. +- Actions use mixed old major versions, `pnpm: latest`, an ineffective cache keyed from nonexistent `package-lock.json` files, broad implicit token permissions, and no concurrency or timeouts. +- Publishing is triggered by any `v*` tag, rebuilds independently for npm and GitHub Packages, writes tokens into `.npmrc`, does not verify tag/package version parity, and provides no npm trusted publishing/provenance or protected release environment. + +## Target architecture and compatibility contract + +### Source architecture + +- Migrate maintained source to strict TypeScript in small slices. Keep the runtime API names and JavaScript calling conventions unchanged. +- Separate modules into `client`, `stores/actions`, `resources`, `transport/adapter-contract`, and side-effect-free `utils` layers. +- Centralize resource hydration so every nested resource receives the active adapter and every collection has one construction path. +- Centralize authorized customer request headers without leaking mutable authorization state across calls. +- Replace duplicated legacy stores with compatibility shims first; remove them only after import-graph, packed-artifact, and consumer tests prove they are not reachable. +- Retain Rollup initially to reduce tool churn. Remove Babel if the agreed browser target can consume the TypeScript/Rollup output. Emit unminified, externalized ESM and CJS library builds plus a separately minified, self-contained browser IIFE/UMD build. +- Emit declarations from source instead of hand-maintaining them. Treat declaration generation and API report diffs as build failures. + +### Public API baseline + +Create and review `tests/contracts/public-api.snapshot.json` from `v1.1.14` plus PR #11 before implementation. It must cover: + +- default and named exports; +- class inheritance and resource registration names; +- constructor options/defaults and validation errors; +- client store property names; +- every public method, getter, parameter default, and unsupported-operation error; +- adapter call method, URL, parameters/body, request options, and header behavior; +- sync versus async failure timing; +- returned class, collection, adapter identity, and hydration behavior; +- serialized package entry points and TypeScript declarations. + +Run the same contract vectors against the frozen `v1.1.14` implementation and the refactored implementation. PR #11 vectors become part of the baseline after it is merged. Any intentional delta needs an explicit compatibility decision, changelog entry, test, and SemVer assessment. + +### Supported environments + +The release should advertise only combinations proven from the packed tarball: + +- Node.js: 22 and 24 as supported LTS lines; Node 26 as an allowed-to-fail forward-compatibility job until it reaches LTS. +- Modules: native ESM and genuine CommonJS (`.cjs` or a nested CommonJS package boundary), with aligned `.d.ts`/`.d.cts` declarations. +- Browsers: an explicit Browserslist-derived target agreed with Storefront applications; no DOM access at import time, so SSR and workers can import safely. +- Bundlers/frameworks: Vite consumer, webpack consumer, Next.js server/client import, Ember/Embroider consumer, and one direct browser bundle smoke test. Add Angular/Vue/Svelte fixtures only where they exercise a distinct resolver or runtime path rather than duplicating Vite. +- Package managers: npm, pnpm, Yarn Berry, and Bun install/import smoke tests using the exact `npm pack` tarball. Corepack metadata must pin the repository’s pnpm version. +- TypeScript: `node16`, `nodenext`, and `bundler` resolution fixtures, including default/named imports and CommonJS consumption. + +Deno, React Native, Cloudflare Workers, or other runtimes may be added only after their adapter and dependency graph pass dedicated tests; they should not be claimed from bundling alone. + +## Delivery plan + +### Phase 0 — decisions, ownership, and upstream unblock + +1. Review and either merge or explicitly supersede PR #11. Do not let the refactor accidentally erase its marketplace contract work. +2. Decide whether undocumented historical deep imports and checked-in browser filenames are supported. Record any known consumers before changing the `files`/`exports` surface. +3. Open/complete an `@fleetbase/sdk` security release that upgrades or replaces the vulnerable transitive dependencies, then set the Storefront SDK’s minimum compatible version to that fixed release. +4. Configure npm trusted publishing for `fleetbase/storefront-js` and the exact release workflow, plus a protected `npm-production` GitHub environment. Keep the existing npm token until the first trusted publish succeeds, then revoke it. +5. Agree on the maintained Node/browser policy and release owner. + +Exit criteria: PR #11 sequencing is resolved; upstream security work has an owner and target; release permissions and supported-runtime decisions are recorded. + +### Phase 1 — deterministic baseline and compatibility harness + +1. Replace live-secret dependence with a recording/fake adapter that captures method, URL, body/query, options, and headers. +2. Port tests to Vitest with explicit Node test globals, V8 coverage, deterministic clocks/locales, and no network by default. +3. Build the complete public/wire contract suite described above, including PR #11 behavior when applicable. +4. Add unit and failure-path tests for every resource, store action, utility, constructor branch, hydration path, getter, and error. +5. Add a small opt-in live Storefront API smoke suite triggered manually and on a schedule. It validates integration but is not the source of PR determinism or unit coverage. +6. Add mutation testing on request construction, authentication headers, hydration, currency/hours logic, and validation. Surviving mutants require stronger assertions or a documented exclusion. + +Exit criteria: all maintained current source is at 100% statements/branches/functions/lines; contract snapshots are reviewed; mutation targets meet the agreed score; secret-free tests pass from a clean checkout. + +### Phase 2 — package boundary and build repair + +1. Add precise `files`, `types`, `engines`, `packageManager`, `sideEffects`, `repository`, `bugs`, `homepage`, and `publishConfig` metadata. +2. Define conditional exports with `types` first and valid `import`, `require`, `browser`/`default` targets. Use `.cjs` and `.d.cts` where required by Node/TypeScript semantics. +3. Preserve `main` and `module` compatibility for older bundlers while making them point to the same tested artifacts. +4. Externalize runtime dependencies from ESM/CJS, retain a self-contained browser build, and stop minifying module builds. +5. Delete stale generated artifacts and prevent them from entering the tarball. Decide whether `dist/` remains committed; whichever policy is chosen must be enforced and reproducible. +6. Add `prepack`/`pack:check` so a clean build, declarations, license/readme, and package manifest are always present before publication. +7. Run `publint`, Are the Types Wrong, package-size limits, source-map checks, ESM/CJS execution, and consumer fixtures against the tarball—not the source tree. + +Exit criteria: CommonJS and ESM both construct a Storefront instance; TypeScript resolves every public API; the tarball contains only intentional files; package lint/type tools are clean; size budgets are met and recorded. + +### Phase 3 — complete internal refactor behind parity gates + +Refactor one vertical behavior at a time in this order: + +1. pure utilities and shared types; +2. resource/store factory and hydration; +3. products, categories, reviews, food trucks; +4. stores, networks, locations, and hours; +5. cart actions and derived values; +6. customer authentication/authorized requests; +7. delivery quotes and checkout/payment flows; +8. root Storefront construction, lookup/search/about, and adapter replacement. + +For each slice: + +- add/confirm characterization and negative-path tests first; +- migrate implementation and declarations together; +- run old-versus-new public/wire contracts; +- keep 100% coverage across all four metrics; +- run mutation targets relevant to the slice; +- update API documentation and release-note text; +- remove compatibility code only with evidence it is unreachable or after an explicit deprecation cycle. + +Exit criteria: no maintained runtime JavaScript remains outside intentional compatibility/build files; all public behavior is parity-tested; no `any` leaks into the public declaration surface without a reviewed reason; dead code is removed with tests proving package/API integrity. + +### Phase 4 — CI modernization + +Create separate least-privilege workflows/jobs: + +1. **PR quality:** frozen install, format check, lint source/tests, strict typecheck, unit/contract tests, 100% coverage thresholds, build, API report, and `git diff --exit-code` for generated output. +2. **Runtime matrix:** Node 22 and 24 required; Node 26 forward-compatibility allowed to fail initially. Use pnpm’s native cache through `setup-node`, a pinned pnpm version, concurrency cancellation, job timeouts, and read-only permissions. +3. **Package compatibility:** pack once, upload the tarball, then test ESM/CJS/types, npm/pnpm/Yarn/Bun, bundler/framework fixtures, browser smoke, `publint`, Are the Types Wrong, and size budgets using that artifact. +4. **Security:** production audit at an agreed severity gate, lockfile/license review, dependency update automation, secret scanning, and CodeQL. Pin third-party actions to reviewed commit SHAs and document update cadence. +5. **Live smoke:** scheduled/manual, environment-scoped secrets, non-destructive test store, explicit timeout, and failure notification. It must never publish. + +Required branch protection should include quality, supported Node matrix, package compatibility, security, and review. Generated release PRs must receive the same checks. + +### Phase 5 — automatic, reviewable release CI + +Use reviewed `release/v` branches because they make SemVer intent, included pull requests, package metadata, and user-facing notes explicit before a release reaches `main`. Keep tag creation and package publishing in separate least-privilege workflows. + +Release flow: + +1. Every user-visible PR records release-note text and targets the appropriate `release/v` branch. +2. The release branch owns the exact `package.json`, `CHANGELOG.md`, and `RELEASE.md` version state and remains open as a pull request to `main`. +3. Merging that reviewed release PR validates branch/version/note parity and creates the immutable `v` tag. +4. A prerelease branch such as `release/v1.2.0-rc.N` publishes under npm dist-tag `next` using a protected environment. +5. Run clean-room installs, supported runtime/framework/package-manager tests, and the live non-destructive smoke suite against the registry release candidate. +6. On explicit protected-environment approval, publish the stable tag's exact verified artifact to npm `latest`; publish the same bytes to GitHub Packages only if that registry remains a supported requirement. +7. Create the GitHub Release from the reviewed `RELEASE.md`, attach checksums/package metadata, and verify registry version, dist-tags, provenance, tarball integrity, and install smoke. +8. Automatically open a rollback/deprecation procedure on post-publish failure. npm packages are immutable: recovery means restoring dist-tags or publishing a fixed patch, never rewriting a version. + +Use npm trusted publishing (OIDC) and automatic provenance rather than a long-lived npm automation token. Limit the publish job to `contents: write` and `id-token: write`, protect it with the release environment, and never publish directly from arbitrary tags or pull requests. + +Exit criteria: a dry-run release in a temporary scope or prerelease version proves version PR → CI → immutable artifact → `next` → verification → GitHub Release; npm provenance is visible; no reusable write token remains. + +### Phase 6 — documentation, release candidate, and stable release + +1. Rewrite README installation for npm, pnpm, Yarn, Bun, ESM, CJS, browser, and TypeScript, using only proven examples. +2. Generate or maintain complete API documentation for the Storefront client, stores/actions, resources, adapters, returned promises/collections, errors, and browser/SSR support. +3. Publish a compatibility table, support policy, security policy, contributing/test guide, deprecation policy, changelog, and migration guide. +4. Correct stale repository/license/contribution links and bundle-size badges. +5. Release `v1.2.0-rc.N`, collect application-level validation from Storefront Web/App and marketplace consumers, then promote to `v1.2.0` only if every gate passes. + +If parity cannot be maintained—especially default CommonJS shape, undocumented deep imports confirmed in use, or consumer-visible class identity—the release becomes `v2.0.0` with compatibility shims and a migration guide rather than disguising a break as a minor release. + +## Required test inventory for 100% coverage + +Coverage work is complete only when the assertions exercise behavior and failure paths in these groups: + +- key validation for store/network/invalid/non-string/boundary-length inputs; +- constructor defaults, custom host/version/namespace/adapter/debug, store wiring, and `newInstance`; +- `about`, `lookup`, search query merging, mapping, empty responses, and adapter rejection; +- serialize/registry lookup and adapter replacement/synchronization; +- every action’s HTTP verb, path, body/query, options, resource-ID coercion, and response hydration; +- email/phone/SMS/social login, creation codes, device sync, authorized headers, order/place hydration, and thrown/rejected errors; +- cart add/update/remove/empty/retrieve, resource argument coercion, contents/subtotal/product checks, empty states, refresh/delete, and unsupported actions; +- checkout initialize/capture/Stripe helpers for raw IDs and resources, optional params/options, and errors; +- store/network/category/product/review/location/hour/payment/food-truck getters and helpers, missing/invalid data, nested adapter identity, collections, and unsupported actions; +- delivery quote constructor overloads, ID coercion, single/list responses, formatting, and rejection; +- all utilities across null/undefined/objects/collections/arrays/functions/invalid locale/currency/phone/country cases; +- root and subpath export shapes, ESM/CJS default and named consumption, declarations, tree-shaking, SSR import, browser global, and tarball contents; +- regression vectors for every confirmed defect and every marketplace behavior from PR #11. + +Generated output, declaration-only scaffolding, and test fixtures are excluded from runtime coverage. Maintained source is not excluded merely because it is hard to test. Any coverage ignore directive requires a code-review explanation and must not reduce the global 100% thresholds. + +## Pull-request sequence + +Keep reviews bounded and bisectable: + +1. PR #11 decision/merge and compatibility-baseline refresh. +2. Upstream `@fleetbase/sdk` security remediation and Storefront dependency update. +3. Test runner, fake adapter, contract snapshots, and 100% behavioral coverage. +4. Package metadata/module/type/tarball repair plus consumer fixtures. +5. CI/security workflow modernization. +6. Release-branch tagging and trusted-publishing dry run. +7. Typed refactor slices, one or more PRs following the Phase 3 order. +8. Documentation/migration/support policy. +9. `v1.2.0-rc.N` release PR and ecosystem validation. +10. Stable release promotion. + +Do not combine the upstream security fix, packaging change, full refactor, and release automation into one unreviewable PR. Each PR must leave the branch releasable or explicitly marked prerelease-only. + +## Release definition of done + +The modernization is complete only when all of the following are evidenced in CI or release artifacts: + +- 100% statements, branches, functions, and lines on maintained source; +- contract parity with `v1.1.14` plus accepted PR #11 APIs, with every intentional delta documented; +- meaningful failure-path assertions and mutation testing on critical behavior; +- zero known critical/high production advisories, with lower-severity exceptions time-bound and documented; +- Node 22/24, ESM/CJS, TypeScript resolution, browser, SSR, framework/bundler, and package-manager fixtures green from the packed tarball; +- valid discoverable declarations and reviewed public API report; +- deterministic build and intentional tarball manifest/size; +- secret-free PR CI, least-privilege pinned workflows, branch protection, and dependency automation; +- reviewed release notes/changelog, prerelease verification, npm trusted-publishing provenance, GitHub Release, checksum/integrity verification, and post-publish install smoke; +- updated README/API/migration/support/security/contributing documentation; +- Storefront Web/App and marketplace consumer acceptance recorded for the release candidate. + +## Primary references + +- [Node.js package entry points and conditional exports](https://nodejs.org/api/packages.html) +- [Node.js package publishing and dual ESM/CommonJS pitfalls](https://nodejs.org/en/learn/modules/publishing-a-package) +- [Node.js maintained release lines](https://nodejs.org/en/about/previous-releases) +- [npm package.json fields](https://docs.npmjs.com/files/package.json/) +- [npm trusted publishing and automatic provenance](https://docs.npmjs.com/trusted-publishers/) +- [GitHub Actions: publishing Node.js packages](https://docs.github.com/en/actions/tutorials/publish-packages/publish-nodejs-packages) +- [TypeScript: publishing declaration files](https://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html) +- [TypeScript conditional exports and module resolution](https://www.typescriptlang.org/docs/handbook/modules/reference.html) +- [publint package compatibility linting](https://github.com/publint/publint) diff --git a/README.md b/README.md index 7e8dcf6..cfd03ee 100644 --- a/README.md +++ b/README.md @@ -1,104 +1,192 @@

- + Fleetbase Storefront

+

-Ecommerce companion SDK & API for Fleetbase, build custom shopping experiences for on-demand orders. + Official JavaScript and TypeScript SDK for building commerce experiences with the Fleetbase Storefront API.

- - Version - - - Downloads/week - - - Bundle Size - - - License - -
- fleetbase.io | @fleetbase_io | Discord + CI + npm version + npm downloads per week + minified and compressed bundle size + license + 100% test coverage

## Installation -### With NPM +```sh +npm install @fleetbase/storefront +pnpm add @fleetbase/storefront +yarn add @fleetbase/storefront +bun add @fleetbase/storefront +``` -`npm install @fleetbase/storefront` +The package supports Node.js 22 and 24, native ECMAScript modules (ESM), CommonJS, browsers, server-side rendering, and TypeScript `node16`, `nodenext`, and `bundler` resolution. See the [compatibility policy](docs/compatibility.md) for the tested matrix. -### With Yarn +## Quick start -`yarn add @fleetbase/storefront` +### ESM and TypeScript -## Documentation +```js +import Storefront, { Product } from '@fleetbase/storefront'; -See the [documentation webpage](https://fleetbase.io/docs). +const storefront = new Storefront('store_your_public_storefront_key'); +const products = await storefront.products.findAll(); -If you would like to make contributions to the Fleetbase Javascript SDK documentation source, here is a [guide](https://github.com/fleetbase/fleetbase-js/blob/master/CONTRIBUTING.md) in doing so. +if (products[0] instanceof Product) { + console.log(products[0].formattedAmount); +} +``` -## Quick Start for Browser +### CommonJS ```js -import Storefront, { Product } from "@fleetbase/storefront"; +const Storefront = require('@fleetbase/storefront'); + +const storefront = new Storefront('store_your_public_storefront_key'); +const { Product } = Storefront; +``` -const storefront = new Storefront("store_your_public_storefront_key"); +The CommonJS export remains directly constructible while exposing every named resource as a property. -// list products -storefront.products.findAll(); +### Browser bundle -// create a product -const product = new Product({ name, description, price }); +```html + + +``` -// retrieve cart & add item -storefront.cart.retrieve().then((cart) => { - cart.add("product_xyxyxyx", 1); +The browser bundle is self-contained. ESM and CommonJS consumers should use the package root so their bundler can apply the package export conditions. - // empty cart - cart.empty(); -}); +## Configuration -// checkout -storefront.checkout.capture(); +```js +const storefront = new Storefront( + 'store_your_public_storefront_key', + { + host: 'https://api.fleetbase.io', + version: 'v1', + namespace: 'storefront/v1', + adapter: customAdapter, + }, + false +); ``` -## Marketplace owners +Storefront keys are public store or marketplace identifiers. They are not customer authentication tokens. Use the customer resource helpers for customer-authorized requests. + +## Stores and resources -Storefront keys identify either one store (`store_...`) or a marketplace network -(`network_...`). Existing `about()` and `lookup()` calls continue to return raw -objects. Use the typed helpers when resource methods and the active adapter must be -preserved: +The client exposes these resource stores: + +- `products` +- `categories` +- `foodTrucks` +- `reviews` +- `customers` +- `cart` +- `checkout` +- `orders` + +Resources are also available as named exports: `Product`, `Category`, `FoodTruck`, `Review`, `Customer`, `Cart`, `Checkout`, `Order`, `Store`, `Network`, `StoreLocation`, `StoreHour`, `PaymentGateway`, and `DeliveryServiceQuote`. ```js -const marketplace = new Storefront("network_your_public_storefront_key"); +import Storefront, { DeliveryServiceQuote } from '@fleetbase/storefront'; + +const storefront = new Storefront('store_your_public_storefront_key'); +const about = await storefront.about(); +const owner = await storefront.getOwner(); +const matches = await storefront.search('coffee', { limit: 20 }); + +const quotes = await DeliveryServiceQuote.getFromCart( + storefront.getAdapter(), + 'place_origin', + 'place_destination', + 'cart_public_id', + 'storefront', + true +); +``` + +`about()` and `lookup()` retain their legacy raw-object behavior. `getOwner()` and `lookupResource()` provide typed `Store` or `Network` resources without changing existing consumers. + +## Marketplace networks + +Keys beginning with `network_` expose the same client plus typed network discovery helpers: + +```js +const marketplace = new Storefront('network_your_public_storefront_key'); const network = await marketplace.getOwner(); -const stores = await network.getStores({ - query: "coffee", - sort: "nearest", - location: [106.9177, 47.9185], - limit: 20, - offset: 0, +const stores = await network.getStores({ limit: 20, offset: 0 }); +const products = await network.search('latte', { limit: 20 }); +const locations = await network.getStoreLocations({ + with_store: true, + location: [106.9177, 47.9185], }); -const products = await network.search("latte", { limit: 20 }); -const locations = await network.getStoreLocations({ with_store: true }); -// Embedded merchant data is normalized across current and legacy responses. const merchant = locations[0].merchant; ``` -Network resources also expose `getCategories()`, `getTags()`, `lookupStore()`, -`getReviews(storeId)`, and `getPaymentGateways()`. All returned resources retain the -Storefront instance's current adapter and headers. Calling `setAdapter()` rebuilds -the SDK stores so locale and customer-token header changes apply consistently. +Networks also provide `getCategories()`, `getTags()`, `lookupStore()`, `getReviews(storeId)`, and `getPaymentGateways()`. + +## Cart and checkout + +```js +const cart = await storefront.cart.retrieve(); +await cart.add('product_public_id', 2, { notes: 'No onions' }); +await cart.update('cart_item_public_id', 3); + +const checkout = await storefront.checkout.initialize( + 'customer_public_id', + cart, + 'service_quote_public_id', + 'cash', + { notes: 'Front desk' } +); + +const order = await storefront.checkout.captureOrder(checkout.token); +``` + +Stripe helpers include `createStripeSetupIntent()` and `updateStripePaymentIntent()`. QPay integrations can use `getStatus()`, `captureQPay()`, and `captureQPayCallback()`. Authenticated order flows provide `completePickup()` and `getReceipt()`. + +## Customer authentication + +```js +const customer = await storefront.customers.login('person@example.com', 'password'); +await customer.syncDevice('push-token', 'ios'); + +const places = await customer.getSavedPlaces(); +const orders = await customer.getOrderHistory({ limit: 20 }); +``` + +SMS, Apple, Facebook, and Google login helpers remain available. Authorized requests attach `Customer-Token` per request instead of mutating shared adapter headers. + +## Adapter replacement + +```js +storefront.setAdapter(nextAdapter); +``` + +`setAdapter()` rebuilds every resource store. Newly fetched resources and embedded merchants use the replacement adapter. + +## Development + +```sh +pnpm install --frozen-lockfile +pnpm run check +``` -Marketplace keys are public client credentials, not customer authentication. Pass -customer tokens only through the SDK adapter headers and never commit real keys to -fixtures or tests. +`pnpm run check` validates formatting, linting, strict consumer types, 100% statement/branch/function/line coverage, ESM, callable CommonJS, the browser bundle, package contents, and package declarations. CI additionally installs the exact packed tarball through npm, pnpm, Yarn, and Bun; builds Vite, webpack, Next.js, and Ember/Embroider consumers; and enforces mutation coverage on critical behavior. -## Create a custom adapter +See [CONTRIBUTING.md](CONTRIBUTING.md) for the development workflow, [SECURITY.md](SECURITY.md) for vulnerability reporting, the [API reference](docs/api-reference.md), [audited endpoint mapping](docs/api-contract.md), and [release process](docs/releasing.md). Existing consumers upgrading from v1.1 can use the [v1.2 migration guide](docs/migration-v1.2.md). -Storefront will eventually allow you to bring your own ecommerce adapter. +## License -`@todo` +Fleetbase Storefront is distributed under the [AGPL-3.0-or-later license](LICENSE.md). diff --git a/RELEASE.md b/RELEASE.md index d074f44..3f73576 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,15 +1,22 @@ -> v1.1.14 ~ "RELEASE_NOTES_PLACEHOLDER — replace this line with the release title" +> v1.2.0 ~ "Modern Storefront SDK" --- + ## Highlights -RELEASE_NOTES_PLACEHOLDER +- Modernizes the SDK implementation with strict TypeScript while preserving the existing public API and request contracts. +- Adds current marketplace and network helpers documented by the Storefront and Core APIs. +- Ships verified ESM, CommonJS, browser, and TypeScript entry points with smaller, cleaner package contents. +- Adds complete behavioral test coverage, mutation testing, dependency review, CodeQL, and packed-package validation. +- Verifies consumers using npm, pnpm, Yarn, Bun, Vite, webpack, Next.js, and Ember. +- Adds automated, protected npm publishing with provenance and checksummed GitHub release artifacts. -Describe what changed in this release. The first line above must name the version being -released, and both placeholder markers must be gone, or the release workflow refuses to -tag. +This release is intended to remain compatible with applications using `v1.1.14`. See the +README and migration guide for the supported runtime matrix and packaging details. --- + ## Need help? + - [GitHub Discussions](https://github.com/fleetbase/fleetbase/discussions) - [Discord](https://discord.gg/HnTqQ6zAVn) diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..23d40b9 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,20 @@ +# Security policy + +## Supported versions + +Security fixes are provided for the latest published minor release. Older releases may receive a patch when a safe backport is practical. + +## Reporting a vulnerability + +Do not open a public issue for an undisclosed vulnerability. Use GitHub's private vulnerability reporting for `fleetbase/storefront-js`, or email `security@fleetbase.io` with: + +- the affected package version; +- reproduction steps or a proof of concept; +- the expected impact; +- any suggested mitigation. + +Fleetbase will acknowledge receipt, validate the report, coordinate remediation and disclosure, and credit the reporter when requested and appropriate. + +## Supply-chain controls + +Pull requests run a production dependency audit, dependency review, CodeQL, deterministic tests, packed-artifact checks, and package-consumer tests. npm releases use a protected GitHub environment and OpenID Connect trusted publishing rather than a long-lived publish token. diff --git a/dist/$storefront.min.js b/dist/$storefront.min.js deleted file mode 100644 index 7e8292e..0000000 --- a/dist/$storefront.min.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["@fleetbase/storefront"]={})}(this,(function(t){"use strict";function e(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){u=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(u)throw o}}}}function c(t,e,n){return(e=m(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t){return l=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},l(t)}function h(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&y(t,e)}function f(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(f=function(){return!!t})()}function d(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function v(t){for(var e=1;e=0;--o){var a=this.tryEntries[o],u=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),j(n),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;j(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:D(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),g}},e}function y(t,e){return y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},y(t,e)}function g(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,o,a,u=[],s=!0,c=!1;try{if(o=(n=n.call(t)).next,0===e);else for(;!(s=(r=o.call(n)).done)&&(u.push(r.value),u.length!==e);s=!0);}catch(t){c=!0,i=t}finally{try{if(!s&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw i}}return u}}(t,e)||b(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:e+""}function w(t){return w="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},w(t)}function b(t,n){if(t){if("string"==typeof t)return e(t,n);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?e(t,n):void 0}}function k(t,e){this.v=t,this.k=e}function x(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){u=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(u)throw o}}}}function M(t,e,n){return(e=J(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function q(t){return q=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},q(t)}function H(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Y(t,e)}function I(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(I=function(){return!!t})()}function B(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}function z(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function $(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function U(t){for(var e=1;e=0;--o){var a=this.tryEntries[o],u=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),j(n),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;j(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:D(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),y}},e}function Y(t,e){return Y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},Y(t,e)}function G(t,e){return E(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,o,a,u=[],s=!0,c=!1;try{if(o=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=o.call(n)).done)&&(u.push(r.value),u.length!==e);s=!0);}catch(t){c=!0,i=t}finally{try{if(!s&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw i}}return u}}(t,e)||K(t,e)||z()}function Q(t){return function(t){if(Array.isArray(t))return x(t)}(t)||B(t)||K(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function J(t){var e=function(t){if("object"!=w(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=w(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==w(e)?e:e+""}function X(t){return X="function"==typeof Symbol&&"symbol"==w(Symbol.iterator)?function(t){return w(t)}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":w(t)},X(t)}function K(t,e){if(t){if("string"==typeof t)return x(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?x(t,e):void 0}}function V(t){return function(){return new Z(t.apply(this,arguments))}}function Z(t){var e,n;function r(e,n){try{var o=t[e](n),a=o.value,u=a instanceof k;Promise.resolve(u?a.v:a).then((function(n){if(u){var s="return"===e?"return":"next";if(!a.k||n.done)return r(s,n);n=t[s](n).value}i(o.done?"return":"normal",n)}),(function(t){r("throw",t)}))}catch(t){i("throw",t)}}function i(t,i){switch(t){case"return":e.resolve({value:i,done:!0});break;case"throw":e.reject(i);break;default:e.resolve({value:i,done:!1})}(e=e.next)?r(e.key,e.arg):n=null}this._invoke=function(t,i){return new Promise((function(o,a){var u={key:t,arg:i,resolve:o,reject:a,next:null};n?n=n.next=u:(e=n=u,r(t,i))}))},"function"!=typeof t.return&&(this.return=void 0)}function tt(t){var e="function"==typeof Map?new Map:void 0;return tt=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(e){return"function"==typeof t}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return C(t,arguments,q(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),Y(n,t)},tt(t)}Z.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},Z.prototype.next=function(t){return this._invoke("next",t)},Z.prototype.throw=function(t){return this._invoke("throw",t)},Z.prototype.return=function(t){return this._invoke("return",t)};var et=function(){function t(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];D(this,t),M(this,"uncountableWords",["equipment","information","rice","money","species","series","fish","sheep","moose","deer","news"]),M(this,"pluralRules",[[new RegExp("(m)an$","gi"),"$1en"],[new RegExp("(pe)rson$","gi"),"$1ople"],[new RegExp("(child)$","gi"),"$1ren"],[new RegExp("^(ox)$","gi"),"$1en"],[new RegExp("(ax|test)is$","gi"),"$1es"],[new RegExp("(octop|vir)us$","gi"),"$1i"],[new RegExp("(alias|status)$","gi"),"$1es"],[new RegExp("(bu)s$","gi"),"$1ses"],[new RegExp("(buffal|tomat|potat)o$","gi"),"$1oes"],[new RegExp("([ti])um$","gi"),"$1a"],[new RegExp("sis$","gi"),"ses"],[new RegExp("(?:([^f])fe|([lr])f)$","gi"),"$1$2ves"],[new RegExp("(hive)$","gi"),"$1s"],[new RegExp("([^aeiouy]|qu)y$","gi"),"$1ies"],[new RegExp("(x|ch|ss|sh)$","gi"),"$1es"],[new RegExp("(matr|vert|ind)ix|ex$","gi"),"$1ices"],[new RegExp("([m|l])ouse$","gi"),"$1ice"],[new RegExp("(quiz)$","gi"),"$1zes"],[new RegExp("s$","gi"),"s"],[new RegExp("$","gi"),"s"]]),M(this,"singularRules",[[new RegExp("(m)en$","gi"),"$1an"],[new RegExp("(pe)ople$","gi"),"$1rson"],[new RegExp("(child)ren$","gi"),"$1"],[new RegExp("([ti])a$","gi"),"$1um"],[new RegExp("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$","gi"),"$1$2sis"],[new RegExp("(hive)s$","gi"),"$1"],[new RegExp("(tive)s$","gi"),"$1"],[new RegExp("(curve)s$","gi"),"$1"],[new RegExp("([lr])ves$","gi"),"$1f"],[new RegExp("([^fo])ves$","gi"),"$1fe"],[new RegExp("([^aeiouy]|qu)ies$","gi"),"$1y"],[new RegExp("(s)eries$","gi"),"$1eries"],[new RegExp("(m)ovies$","gi"),"$1ovie"],[new RegExp("(x|ch|ss|sh)es$","gi"),"$1"],[new RegExp("([m|l])ice$","gi"),"$1ouse"],[new RegExp("(bus)es$","gi"),"$1"],[new RegExp("(o)es$","gi"),"$1"],[new RegExp("(shoe)s$","gi"),"$1"],[new RegExp("(cris|ax|test)es$","gi"),"$1is"],[new RegExp("(octop|vir)i$","gi"),"$1us"],[new RegExp("(alias|status)es$","gi"),"$1"],[new RegExp("^(ox)en","gi"),"$1"],[new RegExp("(vert|ind)ices$","gi"),"$1ex"],[new RegExp("(matr)ices$","gi"),"$1ix"],[new RegExp("(quiz)zes$","gi"),"$1"],[new RegExp("s$","gi"),""]]),M(this,"nonTitlecasedWords",["and","or","nor","a","an","the","so","but","to","of","at","by","from","into","on","onto","off","out","in","over","with","for"]),M(this,"idSuffix",new RegExp("(_ids|_id)$","g")),M(this,"underbar",new RegExp("_","g")),M(this,"spaceOrUnderbar",new RegExp("[ _]","g")),M(this,"uppercase",new RegExp("([A-Z])","g")),M(this,"underbarPrefix",new RegExp("^_")),this.str=e,this.chain=n}return _(t,[{key:"get",value:function(){return this.str}},{key:"applyRules",value:function(t,e,n,r){if(r)t=r;else if(!(n.indexOf(t.toLowerCase())>-1))for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:null;return t=t||this.str,this.applyRules(t,this.pluralRules,this.uncountableWords,e)}},{key:"singularize",value:function(t,e){return t=t||this.str,this.applyRules(t,this.singularRules,this.uncountableWords,e)}},{key:"camelize",value:function(t,e){for(var n=(t=t||this.str).split("/"),r=0;r1&&void 0!==arguments[1]&&arguments[1];return t=t||this.str,t=this.underscore(this.demodulize(t))+(e?"":"_")+"id",this.str=t,!0===this.chain?this:t}},{key:"ordinalize",value:function(t){for(var e=(t=t||this.str).split(" "),n=0;n2?i-2:0),a=2;a2?n-2:0),i=2;i1?e-1:0),r=1;r2?n-2:0),i=2;i3&&void 0!==arguments[3]?arguments[3]:[];if(lt(t))if(r.length<=ht)t.splice.apply(t,[e,n].concat(Q(r)));else{t.splice(e,n);for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:0,r=t.length,i=n;i2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3?arguments[3]:void 0,i=t.length;return n<0&&(n+=i),gt(t,r&&e!=e?function(t){return t!=t}:function(t){return t===e},n)}function wt(t,e,n){return ft(t,e,0,[n]),n}function bt(){return C(kt,Array.prototype.slice.call(arguments))}var kt=function(){function t(){return D(this,t),A(lt(arguments[0])?L(this,t,Q(arguments[0])):L(this,t,arguments))}return H(t,tt(Array)),_(t,[{key:"notEmpty",get:function(){return this.length>0}},{key:"empty",get:function(){return 0===this.length}},{key:"first",get:function(){return pt(this,0)}},{key:"last",get:function(){return pt(this,this.length-1)}},{key:"replace",value:function(t,e){return ft(this,t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:[]),this}},{key:"objectsAt",value:function(t){var e=this;return t.map((function(t){return pt(e,t)}))}},{key:"objectAt",value:function(t){return pt(this,t)}},{key:"indexOf",value:function(t,e){return mt(this,t,e,!1)}},{key:"lastIndexOf",value:function(t,e){var n=this.length;(void 0===e||e>=n)&&(e=n-1),e<0&&(e+=n);for(var r=e;r>=0;r--)if(pt(this,r)===t)return r;return-1}},{key:"includes",value:function(t,e){return-1!==mt(this,t,e,!0)}},{key:"findBy",value:function(){return-1===(t=gt(this,yt.apply(void 0,arguments).bind(undefined),0))?void 0:pt(this,t);var t}},{key:"findIndexBy",value:function(){return gt(this,yt.apply(void 0,arguments))}},{key:"isEvery",value:function(){return t=yt.apply(void 0,arguments),e=t.bind(undefined),-1===gt(this,(function(t,n,r){return!e(t,n,r)}),0);var t,e}},{key:"isAny",value:function(){return-1!==gt(this,yt.apply(void 0,arguments).bind(undefined),0)}},{key:"invoke",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:dt,n=[],r=new Set,i="function"==typeof e?e:function(t){return get(t,e)};return t.forEach((function(t){var e=i(t);r.has(e)||(r.add(e),n.push(t))})),n}(this,t)}},{key:"without",value:function(t){if(!this.includes(t))return this;var e=t==t?function(e){return e!==t}:function(t){return t==t};return this.filter(e)}},{key:"clear",value:function(){var t=this.length;return 0===t||this.replace(0,t,[]),this}},{key:"insertAt",value:function(t,e){return wt(this,t,e),this}},{key:"replaceAt",value:function(t,e){return this.replace(t,1,[e])}},{key:"removeAt",value:function(t,e){return function(t,e){return ft(t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,[]),t}(this,t,e)}},{key:"pushObject",value:function(t){return this.insertAt(this.length,t)}},{key:"pushObjects",value:function(t){return this.replace(this.length,0,t),this}},{key:"popObject",value:function(){var t=this.length;if(0===t)return null;var e=pt(this,t-1);return this.removeAt(t-1,1),e}},{key:"shiftObject",value:function(){if(0===this.length)return null;var t=pt(this,0);return this.removeAt(0),t}},{key:"unshiftObject",value:function(t){return wt(this,0,t)}},{key:"unshiftObjects",value:function(t){return this.replace(0,0,t),this}},{key:"reverseObjects",value:function(){var t=this.length;if(0===t)return this;var e=this.toArray().reverse();return this.replace(0,t,e),this}},{key:"setObjects",value:function(t){if(0===t.length)return this.clear();var e=this.length;return this.replace(0,e,t),this}},{key:"removeObject",value:function(t){for(var e=this.length||0;--e>=0;)pt(this,e)===t&&this.removeAt(e);return this}},{key:"removeObjects",value:function(t){for(var e=t.length-1;e>=0;e--)this.removeObject(t[e]);return this}},{key:"addObject",value:function(t){return this.includes(t)||this.pushObject(t),this}},{key:"addObjects",value:function(t){var e=this;return t.forEach((function(t){return e.addObject(t)})),this}}])}();function xt(t){var e=null==t;if(e)return e;if("number"==typeof t.size)return!t.size;var n=X(t);if("object"===n){var r=t.size;if("number"==typeof r)return!r}if("number"==typeof t.length&&"function"!==n)return!t.length;if("object"===n){var i=t.length;if("number"==typeof i)return!i}return!1}function Et(){var t,e,n;return!("undefined"==typeof process||"object"!==X(null===(t=process)||void 0===t?void 0:t.env)&&-1===(null===(e=process.release)||void 0===e||null===(e=e.name)||void 0===e?void 0:e.search(/node|io.js/))||"undefined"!=typeof window&&"ReactNative"!==(null===(n=window)||void 0===n||null===(n=n.navigator)||void 0===n?void 0:n.product))}function At(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Et()?st("adapter","NodeAdapter",t):st("adapter","BrowserAdapter",t)}_((function t(e){D(this,t),this.place=e,this.geometry=null==e?void 0:e.geometry,this.components=this.parseComponents(),this.attributes=this.parseProperties()}),[{key:"parse",value:function(){this.parseComponents(),this.parseProperties()}},{key:"parseComponents",value:function(){var t;return((null===(t=this.place)||void 0===t?void 0:t.address_components)||[]).reduce((function(t,e){return e.types.forEach((function(n){t[n]=e})),t}),{})}},{key:"parseProperties",value:function(){var t,e={streetNumber:this.get("street_number"),streetName:this.get("route"),coordinates:null!==(t=this.geometry)&&void 0!==t&&t.location?Object.values(this.geometry.location):[0,0],city:this.or(["locality","sublocality","sublocality_level_1","neighborhood","administrative_area_level_3","administrative_area_level_2"]),county:this.get("administrative_area_level_2"),stateShort:this.get("administrative_area_level_1",!0),stateLong:this.get("administrative_area_level_1"),countryShort:this.get("country",!0),country:this.get("country",!0),countryLong:this.get("country"),postalCode:this.get("postal_code")};return e.address=[e.streetNumber,e.streetName].filter(Boolean).join(" "),e}},{key:"all",value:function(){return this.attributes}},{key:"or",value:function(){var t,e=F(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]);try{for(e.s();!(t=e.n()).done;){var n=t.value;if(lt(n)){var r=n[0],i=n[1];if(this.has(r))return this.get(r,i)}else if(this.has(n))return this.get(n)}}catch(t){e.e(t)}finally{e.f()}return null}},{key:"has",value:function(t){return t in this.components}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t in this.components?e?this.components[t].short_name:this.components[t].long_name:null}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.attributes=U(U({},this.attributes),t),this}},{key:"setAttribute",value:function(t,e){return this.attributes[t]=e,this}},{key:"getAttribute",value:function(t){return this.attributes[t]||null}}]);var Ot=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;D(this,t),this.type="Point",this.coordinates=[n,e]}return _(t,[{key:"latitude",get:function(){return this.coordinates[1]}},{key:"longitude",get:function(){return this.coordinates[0]}},{key:"lat",value:function(){return this.latitude}},{key:"lng",value:function(){return this.longitude}},{key:"serialize",value:function(){return{type:"Point",coorindates:[this.lat(),this.lng()]}}},{key:"toJson",value:function(){return this.serialize()}},{key:"toString",value:function(){return"(".concat(this.latitude,", ").concat(this.longitude,")")}}],[{key:"fromGeoJson",value:function(e){var n=G(e.coordinates,2),r=n[0];return new t(n[1],r)}}])}();function St(t,e){var n=t();return Array.isArray(n)||"object"===X(n)?Tt(n,e):null}function Tt(t,e){var n,r=t,i=X(t),o="object"===i,a="function"===i,u=Array.isArray(t),s="string"===X(e)&&e.includes(".")?e.split("."):[e];if(u||o){for(var c=0;c1&&void 0!==arguments[1]?arguments[1]:[];if(t.actions=lt(e)?e:[e],!lt(e))return e instanceof jt&&e.extend(t),t;var n,r=F(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;t.extendActions(i)}}catch(t){r.e(t)}finally{r.f()}}var jt=_((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;D(this,t),this.actions=e,this.bind=n}),[{key:"extend",value:function(){var t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||this.bind;if(!t)return this;if(null!=this&&this.actions&&"object"===X(this.actions))for(var e in this.actions){var n=this.actions[e];Rt(t,e,"function"==typeof n?n.bind(t):n)}return this}}]);function Lt(t){return t instanceof Dt}var Dt=_((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};D(this,t),this.attributes=e,this.dirtyAttributes={},this.changes={},this.isLoading=!1,this.isSaving=!1,this.isDestroying=!1,this.isReloading=!1,this.resource=r,this.options=i,this.version=i.version||"v1",this.setAdapter(n)}),[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=function(){return ut.apply(void 0,["store","Store"].concat(Array.prototype.slice.call(arguments)))}(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"id",get:function(){return this.getAttribute("id")}},{key:"create",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.mergeAttributes(e);return this.setFlags(["isLoading","isSaving"]),this.store.create(n).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"update",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setFlags(["isLoading","isSaving"]),this.store.update(this.attributes.id,e).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"destroy",value:function(){var t=this;return this.setFlags(["isLoading","isDestroying"]),this.store.destroy(this.attributes.id).then((function(e){return t.setFlags(["isLoading","isDestroying"],!1),e}))}},{key:"reload",value:function(){var t=this;return this.setFlags(["isLoading","isReloading"]),this.store.findRecord(this.attributes.id).then((function(e){return t.reset(),e}))}},{key:"setFlags",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=["isLoading","isSaving","isReloading","isDestroying"],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=this.getAttributes();return xt(this.id)?this.create(e):!0===t.onlyDirty?this.savedirty():this.update(e)}},{key:"saveDirty",value:function(){for(var t=Object.keys(this.dirtyAttributes),e={},n=0;n0}},{key:"mutate",value:function(t,e){this.attributes[t]=e}},{key:"setAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null===n&&"object"===X(t))return this.setAttributes(t);var r=null!==(e=null==this?void 0:this.attributes[t])&&void 0!==e?e:null;return Rt(this.attributes,t,n),Rt(this.dirtyAttributes,t,r),lt(null==this?void 0:this.changes[t])||(this.changes[t]=[]),this.changes[t].push({property:t,previousValue:r,value:n,changedAt:new Date}),this}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var e in t)this.setAttribute(e,t[e]);return this}},{key:"getAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=Tt(null!==(e=null==this?void 0:this.attributes)&&void 0!==e?e:{},t);return void 0===r?n:r}},{key:"hasAttribute",value:function(t){if(lt(t)){var e,n=t,r=Object.keys(null!==(e=this.attributes)&&void 0!==e?e:{});return n.every((function(t){return r.includes(t)}))}return!(null==this||!this.attributes)&&t in this.attributes}},{key:"hasAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.hasAttribute(t)}},{key:"isAttributeFilled",value:function(t){var e=this;return lt(t)?this.hasAttribute(t)&&t.every((function(t){return!xt(e.getAttribute(t))})):this.hasAttribute(t)&&!xt(this.getAttribute(t))}},{key:"getAttributes",value:function(t){var e={};if(null==t)return this.getAttributes(Object.keys(this.attributes));if("string"==typeof t)return this.getAttribute(Array.prototype.slice.call(arguments));if(!lt(t))throw new Error("No attribute properties provided!");var n,r=F(t);try{for(r.s();!(n=r.n()).done;){var i,o,a=n.value;if("string"==typeof a){var u=this.getAttribute(a);"object"!==X(null===(i=u)||void 0===i?void 0:i.attributes)||lt(null===(o=u)||void 0===o?void 0:o.attributes)||(u=u.attributes),e[a]=u}}}catch(t){r.e(t)}finally{r.f()}return e}},{key:"serialize",value:function(){return this.getAttributes()}},{key:"mergeAttributes",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=null!==(t=null==this?void 0:this.attributes)&&void 0!==t?t:{};return this.attributes=U(U({},n),e),this.attributes}},{key:"syncAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attributes=t}}]);at("resource","Resource",Dt);var Ct=function(){return _((function t(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};D(this,t),this.resource=e,this.adapter=n||At(),this.namespace=nt(e),this.storage=bt(),this.options=r,this.extendActions(r.actions)}),[{key:"extendActions",value:function(){return Pt(this,arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])}},{key:"deposit",value:function(t){return t}},{key:"serialize",value:function(t){return st("resource",it(this.resource),t,this.adapter)}},{key:"afterFetch",value:function(t){return function(t,e){if("function"==typeof t.options.onAfterFetch&&t.options.onAfterFetch(e),lt(e)){var n,r=[],i=F(e);try{for(i.s();!(n=i.n()).done;){var o=n.value;r.push(t.afterFetch(o))}}catch(t){i.e(t)}finally{i.f()}return bt.apply(void 0,r)}var a=t.serialize(e);return t.deposit(a)}(this,t)}},{key:"create",value:(a=P(W().mark((function t(){var e,n,r,i=arguments;return W().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=4,this.adapter.post("".concat(this.namespace),e,n);case 4:return r=t.sent,t.abrupt("return",this.afterFetch(r));case 6:case"end":return t.stop()}}),t,this)}))),function(){return a.apply(this,arguments)})},{key:"update",value:(o=P(W().mark((function t(e){var n,r,i,o=arguments;return W().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=o.length>1&&void 0!==o[1]?o[1]:{},r=o.length>2&&void 0!==o[2]?o[2]:{},t.next=4,this.adapter.put("".concat(this.namespace,"/").concat(e),n,r);case 4:return i=t.sent,t.abrupt("return",this.afterFetch(i));case 6:case"end":return t.stop()}}),t,this)}))),function(t){return o.apply(this,arguments)})},{key:"findRecord",value:(i=P(W().mark((function t(e){var n,r,i=arguments;return W().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=3,this.adapter.get("".concat(this.namespace,"/").concat(e),{},n);case 3:return r=t.sent,t.abrupt("return",this.afterFetch(r));case 5:case"end":return t.stop()}}),t,this)}))),function(t){return i.apply(this,arguments)})},{key:"findAll",value:(r=P(W().mark((function t(){var e,n,r=arguments;return W().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=r.length>0&&void 0!==r[0]?r[0]:{},t.next=3,this.adapter.get("".concat(this.namespace),{},e);case 3:return n=t.sent,t.abrupt("return",this.afterFetch(n));case 5:case"end":return t.stop()}}),t,this)}))),function(){return r.apply(this,arguments)})},{key:"query",value:(n=P(W().mark((function t(){var e,n,r,i=arguments;return W().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=4,this.adapter.get("".concat(this.namespace),e,n);case 4:return r=t.sent,t.abrupt("return",this.afterFetch(r));case 6:case"end":return t.stop()}}),t,this)}))),function(){return n.apply(this,arguments)})},{key:"queryRecord",value:(e=P(W().mark((function t(){var e,n,r,i=arguments;return W().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},(e=i.length>0&&void 0!==i[0]?i[0]:{}).single=!0,t.next=5,this.adapter.get("".concat(this.namespace),e,n);case 5:return r=t.sent,t.abrupt("return",this.afterFetch(r));case 7:case"end":return t.stop()}}),t,this)}))),function(){return e.apply(this,arguments)})},{key:"destroy",value:(t=P(W().mark((function t(e){var n,r,i,o=arguments;return W().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=o.length>1&&void 0!==o[1]?o[1]:{},r=Lt(e)?e.getAttribute("id"):e,t.next=4,this.adapter.delete("".concat(this.namespace,"/").concat(r),{},n);case 4:return i=t.sent,t.abrupt("return",this.afterFetch(i));case 6:case"end":return t.stop()}}),t,this)}))),function(e){return t.apply(this,arguments)})}]);var t,e,n,r,i,o,a}();at("store","Store",Ct);var Nt=new jt({getDistanceAndTime:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/distance-and-time"),e,n)},getNextActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/next-activity"),e,n)},dispatch:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/dispatch"),e,n).then(this.afterFetch.bind(this))},start:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/start"),e,n).then(this.afterFetch.bind(this))},updateActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/update-activity"),e,n).then(this.afterFetch.bind(this))},setDestination:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return Lt(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/set-destination/").concat(e),n,r).then(this.afterFetch.bind(this))},captureQrCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return Lt(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-qr").concat(e?"/"+e:""),n,r)},captureSignature:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return Lt(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-signature").concat(e?"/"+e:""),n,r)},complete:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/complete"),e,n).then(this.afterFetch.bind(this))},cancel:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete("".concat(this.namespace,"/").concat(t,"/cancel"),e,n).then(this.afterFetch.bind(this))}}),_t=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),L(this,t,[e,n,"order",U({actions:Nt},r)])}return H(t,Dt),_(t,[{key:"getDistanceAndTime",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getDistanceAndTime(this.id,t,e)}},{key:"dispatch",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.dispatch(this.id,t,e)}},{key:"start",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.start(this.id,t,e)}},{key:"setDestination",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.setDestination(this.id,t,e,n)}},{key:"captureQrCode",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureQrCode(this.id,t,e,n)}},{key:"captureSignature",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureSignature(this.id,t,e,n)}},{key:"getNextActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getNextActivity(this.id,t,e)}},{key:"updateActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.updateActivity(this.id,t,e)}},{key:"cancel",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.cancel(this.id,t,e)}},{key:"complete",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.complete(this.id,t,e)}},{key:"isDispatched",get:function(){return null!==this.getAttribute("dispatched_at")}},{key:"isNotDispatched",get:function(){return null==this.getAttribute("dispatched_at")}},{key:"isStarted",get:function(){return null!==this.getAttribute("started_at")}},{key:"isNotStarted",get:function(){return null==this.getAttribute("started_at")}},{key:"isCompleted",get:function(){return"completed"==this.getAttribute("status")}},{key:"isCanceled",get:function(){return"canceled"==this.getAttribute("status")}},{key:"isEnroute",get:function(){return"driver_enroute"==this.getAttribute("status")||"enroute"===this.getAttribute("status")}},{key:"isInProgress",get:function(){return this.isStarted&&!this.isCanceled&&!this.isCompleted}},{key:"scheduledAt",get:function(){return this.isAttributeFilled("scheduled_at")?new Date(this.getAttribute("scheduled_at")):null}},{key:"startedAt",get:function(){return this.isAttributeFilled("started_at")?new Date(this.getAttribute("started_at")):null}},{key:"dispatchedAt",get:function(){return this.isAttributeFilled("dispatched_at")?new Date(this.getAttribute("dispatched_at")):null}},{key:"status",get:function(){return this.getAttribute("status")}}])}();at("resource","Order",_t);var Ft=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),L(this,t,[e,n,"payload",r])}return H(t,Dt),_(t,[{key:"attach",value:function(t){}},{key:"entities",get:function(){var t=this;return new Collection(this.entities.map((function(e){return ct("Entity",e,t.adapter)})))}},{key:"dropoff",get:function(){return this.dropoff?ct("Place",this.dropoff,this.adapter):null}},{key:"pickup",get:function(){return this.pickup?ct("Place",this.pickup,this.adapter):null}},{key:"waypoints",get:function(){var t=this;return new Collection(this.waypoints.map((function(e){return ct("Waypoint",e,t.adapter)})))}}])}();at("resource","Payload",Ft);var Mt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),L(this,t,[e,n,"entity",r])}return H(t,Dt),_(t)}();at("resource","Entity",Mt);var qt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),L(this,t,[e,n,"place",r])}return H(t,Dt),_(t,[{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new Ot))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new Ot))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"setOwner",value:function(t){return Lt(t)&&this.setAttribute("owner",t.id),"string"==typeof t&&this.setAttribute("owner",t),this}}],[{key:"fromGoogleAddress",value:function(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=G(e.getAttribute("coordinates"),2),o=i[0],a=i[1];return new t({name:null,address:e.getAttribute("address"),location:new Ot(o,a),street1:e.getAttribute("address"),street2:null,city:e.getAttribute("city"),province:e.getAttribute("stateLong"),postal_code:e.getAttribute("postalCode"),neighborhood:e.get("neighborhood"),district:e.getAttribute("county"),building:e.get("building"),country:e.getAttribute("countryShort"),phone:null,security_access_code:null},n,r)}}])}();at("resource","Place",qt);var Ht=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),L(this,t,[e,n,"waypoint",r])}return H(t,qt),_(t)}();at("resource","Waypoint",Ht);var It=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),L(this,t,[e,n,"tracking-status",r])}return H(t,Dt),_(t)}();at("resource","TrackingStatus",It);var Bt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),L(this,t,[e,n,"vehicle",r])}return H(t,Dt),_(t)}();at("resource","Vehicle",Bt);var zt=new jt({current:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.get("".concat(this.namespace,"/current"),t,e)}}),$t=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),L(this,t,[e,n,"organization",U({actions:zt},r)])}return H(t,Dt),_(t)}();at("resource","Organization",$t);var Ut=function(t,e){return lt(t)?t.map((function(t){return new $t(t,e)})):new $t(t,e)},Wt=new jt({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(function(){return/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"")}(t))return this.adapter.post("drivers/login-with-sms",{phone:t});if(!e)throw new Error("Login requires password!");return this.adapter.post("drivers/login",U({identity:t,password:e},n)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/verify-code",U({identity:t,code:e},n)).then(this.afterFetch.bind(this))},track:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/track"),e,n).then(this.afterFetch.bind(this))},listOrganizations:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("drivers/".concat(t,"/organizations"),n,r).then((function(t){return Ut(t,e.adapter)}))},switchOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/switch-organization"),n,r).then((function(t){return Ut(t,e.adapter)}))},currentOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("drivers/".concat(t,"/current-organization"),n,r).then((function(t){return Ut(t,e.adapter)}))},retrieve:function(t){return this.findRecord(t)},syncDevice:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/register-device"),e,n)}}),Yt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),L(this,t,[e,n,"driver",U({actions:Wt},r)])}return H(t,Dt),_(t,[{key:"token",get:function(){return this.getAttribute("token")}},{key:"isOnline",get:function(){return!0===this.getAttribute("online")}},{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new Ot))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new Ot))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"track",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.track(this.id,t,e)}},{key:"syncDevice",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.syncDevice(this.id,t,e)}},{key:"listOrganizations",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.listOrganizations(this.id,t,e)}},{key:"switchOrganization",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.switchOrganization(this.id,{next:t},e)}},{key:"currentOrganization",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.currentOrganization(this.id,t,e)}}])}();at("resource","Driver",Yt);var Gt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),L(this,t,[e,n,"vendor",r])}return H(t,Dt),_(t)}();at("resource","Vendor",Gt);var Qt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),L(this,t,[e,n,"contact",r])}return H(t,Dt),_(t)}();at("resource","Contact",Qt);var Jt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),L(this,t,[e,n,"zone",r])}return H(t,Dt),_(t)}();at("resource","Zone",Jt);var Xt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),L(this,t,[e,n,"service-area",r])}return H(t,Dt),_(t)}();at("resource","ServiceArea",Xt);var Kt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),L(this,t,[e,n,"service-rate",r])}return H(t,Dt),_(t)}();at("resource","ServiceRate",Kt);var Vt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),L(this,t,[e,n,"service-quote",r])}return H(t,Dt),_(t,[{key:"fromPreliminary",value:function(){}},{key:"fromPayload",value:function(){}}])}();at("resource","ServiceQuote",Vt);var Zt=_((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};D(this,t),this.version=e.version||"v1",this.host=e.host||null,this.namespace=e.namespace||null,this.headers=e.headers||{}}));at("adapter","Adapter",Zt);var te=function(){function t(e){var n;return D(this,t),(n=L(this,t,[e])).setHeaders({Authorization:"Bearer ".concat(e.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;browser"}),n}return H(t,Zt),_(t,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.headers=U(U({},this.headers),t),this}},{key:"parseJSON",value:function(t){return new Promise((function(e,n){t.json().then((function(n){e({statusText:t.statusText,status:t.status,ok:t.ok,json:n})})).catch((function(){n(new Error("Oops! Something went wrong when handling your request."))}))}))}},{key:"request",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new Promise((function(o,a){fetch(i.url||"".concat(e.host,"/").concat(e.namespace,"/").concat(t),U({method:n,mode:i.mode||"cors",headers:new Headers(U(U({},e.headers||{}),i.headers||{}))},r)).then(e.parseJSON).then((function(t){if(t.ok)return o(t.json);a(new Error(t.json.errors?t.json.errors[0]:t.statusText))})).catch((function(t){a(t)}))}))}},{key:"get",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=xt(e=n)||"string"==typeof e&&!1===/\S/.test(e)?"":new URLSearchParams(n).toString();return this.request("".concat(t).concat(i?"?".concat(i):""),"GET",{},r)}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"POST",{body:JSON.stringify(e)},n)}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PUT",{body:JSON.stringify(e)},n)}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(t,"DELETE",{},e)}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PATCH",{body:JSON.stringify(e)},n)}}])}();function ee(t,e){return function(){return t.apply(e,arguments)}}at("adapter","BrowserAdapter",te);var ne,re=Object.prototype.toString,ie=Object.getPrototypeOf,oe=(ne=Object.create(null),function(t){var e=re.call(t);return ne[e]||(ne[e]=e.slice(8,-1).toLowerCase())}),ae=function(t){return t=t.toLowerCase(),function(e){return oe(e)===t}},ue=function(t){return function(e){return X(e)===t}},se=Array.isArray,ce=ue("undefined"),le=ae("ArrayBuffer"),he=ue("string"),fe=ue("function"),de=ue("number"),ve=function(t){return null!==t&&"object"===X(t)},pe=function(t){if("object"!==oe(t))return!1;var e=ie(t);return!(null!==e&&e!==Object.prototype&&null!==Object.getPrototypeOf(e)||Symbol.toStringTag in t||Symbol.iterator in t)},ye=ae("Date"),ge=ae("File"),me=ae("Blob"),we=ae("FileList"),be=ae("URLSearchParams"),ke=G(["ReadableStream","Request","Response","Headers"].map(ae),4),xe=ke[0],Ee=ke[1],Ae=ke[2],Oe=ke[3];function Se(t,e){var n,r,i=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).allOwnKeys,o=void 0!==i&&i;if(null!=t)if("object"!==X(t)&&(t=[t]),se(t))for(n=0,r=t.length;n0;)if(e===(n=r[i]).toLowerCase())return n;return null}var Re,Pe,je,Le,De,Ce="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,Ne=function(t){return!ce(t)&&t!==Ce},_e=(Re="undefined"!=typeof Uint8Array&&ie(Uint8Array),function(t){return Re&&t instanceof Re}),Fe=ae("HTMLFormElement"),Me=function(){var t=Object.prototype.hasOwnProperty;return function(e,n){return t.call(e,n)}}(),qe=ae("RegExp"),He=function(t,e){var n=Object.getOwnPropertyDescriptors(t),r={};Se(n,(function(n,i){var o;!1!==(o=e(n,i,t))&&(r[i]=o||n)})),Object.defineProperties(t,r)},Ie="abcdefghijklmnopqrstuvwxyz",Be="0123456789",ze={DIGIT:Be,ALPHA:Ie,ALPHA_DIGIT:Ie+Ie.toUpperCase()+Be},$e=ae("AsyncFunction"),Ue=(Pe="function"==typeof setImmediate,je=fe(Ce.postMessage),Pe?setImmediate:je?(Le="axios@".concat(Math.random()),De=[],Ce.addEventListener("message",(function(t){var e=t.source,n=t.data;e===Ce&&n===Le&&De.length&&De.shift()()}),!1),function(t){De.push(t),Ce.postMessage(Le,"*")}):function(t){return setTimeout(t)}),We="undefined"!=typeof queueMicrotask?queueMicrotask.bind(Ce):"undefined"!=typeof process&&process.nextTick||Ue,Ye={isArray:se,isArrayBuffer:le,isBuffer:function(t){return null!==t&&!ce(t)&&null!==t.constructor&&!ce(t.constructor)&&fe(t.constructor.isBuffer)&&t.constructor.isBuffer(t)},isFormData:function(t){var e;return t&&("function"==typeof FormData&&t instanceof FormData||fe(t.append)&&("formdata"===(e=oe(t))||"object"===e&&fe(t.toString)&&"[object FormData]"===t.toString()))},isArrayBufferView:function(t){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&le(t.buffer)},isString:he,isNumber:de,isBoolean:function(t){return!0===t||!1===t},isObject:ve,isPlainObject:pe,isReadableStream:xe,isRequest:Ee,isResponse:Ae,isHeaders:Oe,isUndefined:ce,isDate:ye,isFile:ge,isBlob:me,isRegExp:qe,isFunction:fe,isStream:function(t){return ve(t)&&fe(t.pipe)},isURLSearchParams:be,isTypedArray:_e,isFileList:we,forEach:Se,merge:function t(){for(var e=(Ne(this)&&this||{}).caseless,n={},r=function(r,i){var o=e&&Te(n,i)||i;pe(n[o])&&pe(r)?n[o]=t(n[o],r):pe(r)?n[o]=t({},r):se(r)?n[o]=r.slice():n[o]=r},i=0,o=arguments.length;i3&&void 0!==arguments[3]?arguments[3]:{}).allOwnKeys}),t},trim:function(t){return t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")},stripBOM:function(t){return 65279===t.charCodeAt(0)&&(t=t.slice(1)),t},inherits:function(t,e,n,r){t.prototype=Object.create(e.prototype,r),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),n&&Object.assign(t.prototype,n)},toFlatObject:function(t,e,n,r){var i,o,a,u={};if(e=e||{},null==t)return e;do{for(o=(i=Object.getOwnPropertyNames(t)).length;o-- >0;)a=i[o],r&&!r(a,t,e)||u[a]||(e[a]=t[a],u[a]=!0);t=!1!==n&&ie(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},kindOf:oe,kindOfTest:ae,endsWith:function(t,e,n){t=String(t),(void 0===n||n>t.length)&&(n=t.length),n-=e.length;var r=t.indexOf(e,n);return-1!==r&&r===n},toArray:function(t){if(!t)return null;if(se(t))return t;var e=t.length;if(!de(e))return null;for(var n=new Array(e);e-- >0;)n[e]=t[e];return n},forEachEntry:function(t,e){for(var n,r=(t&&t[Symbol.iterator]).call(t);(n=r.next())&&!n.done;){var i=n.value;e.call(t,i[0],i[1])}},matchAll:function(t,e){for(var n,r=[];null!==(n=t.exec(e));)r.push(n);return r},isHTMLForm:Fe,hasOwnProperty:Me,hasOwnProp:Me,reduceDescriptors:He,freezeMethods:function(t){He(t,(function(e,n){if(fe(t)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;var r=t[n];fe(r)&&(e.enumerable=!1,"writable"in e?e.writable=!1:e.set||(e.set=function(){throw Error("Can not rewrite read-only method '"+n+"'")}))}))},toObjectSet:function(t,e){var n={},r=function(t){t.forEach((function(t){n[t]=!0}))};return se(t)?r(t):r(String(t).split(e)),n},toCamelCase:function(t){return t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(t,e,n){return e.toUpperCase()+n}))},noop:function(){},toFiniteNumber:function(t,e){return null!=t&&Number.isFinite(t=+t)?t:e},findKey:Te,global:Ce,isContextDefined:Ne,ALPHABET:ze,generateString:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ze.ALPHA_DIGIT,n="",r=e.length;t--;)n+=e[Math.random()*r|0];return n},isSpecCompliantForm:function(t){return!!(t&&fe(t.append)&&"FormData"===t[Symbol.toStringTag]&&t[Symbol.iterator])},toJSONObject:function(t){var e=new Array(10),n=function(t,r){if(ve(t)){if(e.indexOf(t)>=0)return;if(!("toJSON"in t)){e[r]=t;var i=se(t)?[]:{};return Se(t,(function(t,e){var o=n(t,r+1);!ce(o)&&(i[e]=o)})),e[r]=void 0,i}}return t};return n(t,0)},isAsyncFn:$e,isThenable:function(t){return t&&(ve(t)||fe(t))&&fe(t.then)&&fe(t.catch)},setImmediate:Ue,asap:We};function Ge(t,e,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=t,this.name="AxiosError",e&&(this.code=e),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status?i.status:null)}Ye.inherits(Ge,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Ye.toJSONObject(this.config),code:this.code,status:this.status}}});var Qe=Ge.prototype,Je={};function Xe(t){return Ye.isPlainObject(t)||Ye.isArray(t)}function Ke(t){return Ye.endsWith(t,"[]")?t.slice(0,-2):t}function Ve(t,e,n){return t?t.concat(e).map((function(t,e){return t=Ke(t),!n&&e?"["+t+"]":t})).join(n?".":""):e}["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((function(t){Je[t]={value:t}})),Object.defineProperties(Ge,Je),Object.defineProperty(Qe,"isAxiosError",{value:!0}),Ge.from=function(t,e,n,r,i,o){var a=Object.create(Qe);return Ye.toFlatObject(t,a,(function(t){return t!==Error.prototype}),(function(t){return"isAxiosError"!==t})),Ge.call(a,t.message,e,n,r,i),a.cause=t,a.name=t.name,o&&Object.assign(a,o),a};var Ze=Ye.toFlatObject(Ye,{},null,(function(t){return/^is[A-Z]/.test(t)}));function tn(t,e,n){if(!Ye.isObject(t))throw new TypeError("target must be an object");e=e||new FormData;var r=(n=Ye.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(t,e){return!Ye.isUndefined(e[t])}))).metaTokens,i=n.visitor||c,o=n.dots,a=n.indexes,u=(n.Blob||"undefined"!=typeof Blob&&Blob)&&Ye.isSpecCompliantForm(e);if(!Ye.isFunction(i))throw new TypeError("visitor must be a function");function s(t){if(null===t)return"";if(Ye.isDate(t))return t.toISOString();if(!u&&Ye.isBlob(t))throw new Ge("Blob is not supported. Use a Buffer instead.");return Ye.isArrayBuffer(t)||Ye.isTypedArray(t)?u&&"function"==typeof Blob?new Blob([t]):Buffer.from(t):t}function c(t,n,i){var u=t;if(t&&!i&&"object"===X(t))if(Ye.endsWith(n,"{}"))n=r?n:n.slice(0,-2),t=JSON.stringify(t);else if(Ye.isArray(t)&&function(t){return Ye.isArray(t)&&!t.some(Xe)}(t)||(Ye.isFileList(t)||Ye.endsWith(n,"[]"))&&(u=Ye.toArray(t)))return n=Ke(n),u.forEach((function(t,r){!Ye.isUndefined(t)&&null!==t&&e.append(!0===a?Ve([n],r,o):null===a?n:n+"[]",s(t))})),!1;return!!Xe(t)||(e.append(Ve(i,n,o),s(t)),!1)}var l=[],h=Object.assign(Ze,{defaultVisitor:c,convertValue:s,isVisitable:Xe});if(!Ye.isObject(t))throw new TypeError("data must be an object");return function t(n,r){if(!Ye.isUndefined(n)){if(-1!==l.indexOf(n))throw Error("Circular reference detected in "+r.join("."));l.push(n),Ye.forEach(n,(function(n,o){!0===(!(Ye.isUndefined(n)||null===n)&&i.call(e,n,Ye.isString(o)?o.trim():o,r,h))&&t(n,r?r.concat(o):[o])})),l.pop()}}(t),e}function en(t){var e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,(function(t){return e[t]}))}function nn(t,e){this._pairs=[],t&&tn(t,this,e)}var rn=nn.prototype;function on(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function an(t,e,n){if(!e)return t;var r=n&&n.encode||on;Ye.isFunction(n)&&(n={serialize:n});var i,o=n&&n.serialize;if(i=o?o(e,n):Ye.isURLSearchParams(e)?e.toString():new nn(e,n).toString(r)){var a=t.indexOf("#");-1!==a&&(t=t.slice(0,a)),t+=(-1===t.indexOf("?")?"?":"&")+i}return t}rn.append=function(t,e){this._pairs.push([t,e])},rn.toString=function(t){var e=t?function(e){return t.call(this,e,en)}:en;return this._pairs.map((function(t){return e(t[0])+"="+e(t[1])}),"").join("&")};var un=_((function t(){D(this,t),this.handlers=[]}),[{key:"use",value:function(t,e,n){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}},{key:"eject",value:function(t){this.handlers[t]&&(this.handlers[t]=null)}},{key:"clear",value:function(){this.handlers&&(this.handlers=[])}},{key:"forEach",value:function(t){Ye.forEach(this.handlers,(function(e){null!==e&&t(e)}))}}]),sn={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},cn={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:nn,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},ln="undefined"!=typeof window&&"undefined"!=typeof document,hn="object"===("undefined"==typeof navigator?"undefined":X(navigator))&&navigator||void 0,fn=ln&&(!hn||["ReactNative","NativeScript","NS"].indexOf(hn.product)<0),dn="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,vn=ln&&window.location.href||"http://localhost",pn=U(U({},Object.freeze({__proto__:null,hasBrowserEnv:ln,hasStandardBrowserEnv:fn,hasStandardBrowserWebWorkerEnv:dn,navigator:hn,origin:vn})),cn);function yn(t){function e(t,n,r,i){var o=t[i++];if("__proto__"===o)return!0;var a=Number.isFinite(+o),u=i>=t.length;return o=!o&&Ye.isArray(r)?r.length:o,u?(Ye.hasOwnProp(r,o)?r[o]=[r[o],n]:r[o]=n,!a):(r[o]&&Ye.isObject(r[o])||(r[o]=[]),e(t,n,r[o],i)&&Ye.isArray(r[o])&&(r[o]=function(t){var e,n,r={},i=Object.keys(t),o=i.length;for(e=0;e-1,o=Ye.isObject(t);if(o&&Ye.isHTMLForm(t)&&(t=new FormData(t)),Ye.isFormData(t))return i?JSON.stringify(yn(t)):t;if(Ye.isArrayBuffer(t)||Ye.isBuffer(t)||Ye.isStream(t)||Ye.isFile(t)||Ye.isBlob(t)||Ye.isReadableStream(t))return t;if(Ye.isArrayBufferView(t))return t.buffer;if(Ye.isURLSearchParams(t))return e.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return function(t,e){return tn(t,new pn.classes.URLSearchParams,Object.assign({visitor:function(t,e,n,r){return pn.isNode&&Ye.isBuffer(t)?(this.append(e,t.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},e))}(t,this.formSerializer).toString();if((n=Ye.isFileList(t))||r.indexOf("multipart/form-data")>-1){var a=this.env&&this.env.FormData;return tn(n?{"files[]":t}:t,a&&new a,this.formSerializer)}}return o||i?(e.setContentType("application/json",!1),function(t){if(Ye.isString(t))try{return(0,JSON.parse)(t),Ye.trim(t)}catch(t){if("SyntaxError"!==t.name)throw t}return(0,JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){var e=this.transitional||gn.transitional,n=e&&e.forcedJSONParsing,r="json"===this.responseType;if(Ye.isResponse(t)||Ye.isReadableStream(t))return t;if(t&&Ye.isString(t)&&(n&&!this.responseType||r)){var i=!(e&&e.silentJSONParsing)&&r;try{return JSON.parse(t)}catch(t){if(i){if("SyntaxError"===t.name)throw Ge.from(t,Ge.ERR_BAD_RESPONSE,this,null,this.response);throw t}}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:pn.classes.FormData,Blob:pn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};Ye.forEach(["delete","get","head","post","put","patch"],(function(t){gn.headers[t]={}}));var mn=Ye.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),wn=Symbol("internals");function bn(t){return t&&String(t).trim().toLowerCase()}function kn(t){return!1===t||null==t?t:Ye.isArray(t)?t.map(kn):String(t)}function xn(t,e,n,r,i){return Ye.isFunction(r)?r.call(this,e,n):(i&&(e=n),Ye.isString(e)?Ye.isString(r)?-1!==e.indexOf(r):Ye.isRegExp(r)?r.test(e):void 0:void 0)}var En=_((function t(e){D(this,t),e&&this.set(e)}),[{key:"set",value:function(t,e,n){var r=this;function i(t,e,n){var i=bn(e);if(!i)throw new Error("header name must be a non-empty string");var o=Ye.findKey(r,i);(!o||void 0===r[o]||!0===n||void 0===n&&!1!==r[o])&&(r[o||e]=kn(t))}var o=function(t,e){return Ye.forEach(t,(function(t,n){return i(t,n,e)}))};if(Ye.isPlainObject(t)||t instanceof this.constructor)o(t,e);else if(Ye.isString(t)&&(t=t.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim()))o(function(t){var e,n,r,i={};return t&&t.split("\n").forEach((function(t){r=t.indexOf(":"),e=t.substring(0,r).trim().toLowerCase(),n=t.substring(r+1).trim(),!e||i[e]&&mn[e]||("set-cookie"===e?i[e]?i[e].push(n):i[e]=[n]:i[e]=i[e]?i[e]+", "+n:n)})),i}(t),e);else if(Ye.isHeaders(t)){var a,u=F(t.entries());try{for(u.s();!(a=u.n()).done;){var s=G(a.value,2),c=s[0];i(s[1],c,n)}}catch(t){u.e(t)}finally{u.f()}}else null!=t&&i(e,t,n);return this}},{key:"get",value:function(t,e){if(t=bn(t)){var n=Ye.findKey(this,t);if(n){var r=this[n];if(!e)return r;if(!0===e)return function(t){for(var e,n=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;e=r.exec(t);)n[e[1]]=e[2];return n}(r);if(Ye.isFunction(e))return e.call(this,r,n);if(Ye.isRegExp(e))return e.exec(r);throw new TypeError("parser must be boolean|regexp|function")}}}},{key:"has",value:function(t,e){if(t=bn(t)){var n=Ye.findKey(this,t);return!(!n||void 0===this[n]||e&&!xn(0,this[n],n,e))}return!1}},{key:"delete",value:function(t,e){var n=this,r=!1;function i(t){if(t=bn(t)){var i=Ye.findKey(n,t);!i||e&&!xn(0,n[i],i,e)||(delete n[i],r=!0)}}return Ye.isArray(t)?t.forEach(i):i(t),r}},{key:"clear",value:function(t){for(var e=Object.keys(this),n=e.length,r=!1;n--;){var i=e[n];t&&!xn(0,this[i],i,t,!0)||(delete this[i],r=!0)}return r}},{key:"normalize",value:function(t){var e=this,n={};return Ye.forEach(this,(function(r,i){var o=Ye.findKey(n,i);if(o)return e[o]=kn(r),void delete e[i];var a=t?function(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(function(t,e,n){return e.toUpperCase()+n}))}(i):String(i).trim();a!==i&&delete e[i],e[a]=kn(r),n[a]=!0})),this}},{key:"concat",value:function(){for(var t,e=arguments.length,n=new Array(e),r=0;r1?n-1:0),i=1;i2&&void 0!==arguments[2]?arguments[2]:3,r=0,i=function(t,e){t=t||10;var n,r=new Array(t),i=new Array(t),o=0,a=0;return e=void 0!==e?e:1e3,function(u){var s=Date.now(),c=i[a];n||(n=s),r[o]=u,i[o]=s;for(var l=a,h=0;l!==o;)h+=r[l++],l%=t;if((o=(o+1)%t)===a&&(a=(a+1)%t),!(s-n1&&void 0!==arguments[1]?arguments[1]:Date.now();i=o,n=null,r&&(clearTimeout(r),r=null),t.apply(null,e)};return[function(){for(var t=Date.now(),e=t-i,u=arguments.length,s=new Array(u),c=0;c=o?a(s,t):(n=s,r||(r=setTimeout((function(){r=null,a(n)}),o-e)))},function(){return n&&a(n)}]}((function(n){var o=n.loaded,a=n.lengthComputable?n.total:void 0,u=o-r,s=i(u);r=o;var c=M({loaded:o,total:a,progress:a?o/a:void 0,bytes:u,rate:s||void 0,estimated:s&&a&&o<=a?(a-o)/s:void 0,event:n,lengthComputable:null!=a},e?"download":"upload",!0);t(c)}),n)},Pn=function(t,e){var n=null!=t;return[function(r){return e[0]({lengthComputable:n,total:t,loaded:r})},e[1]]},jn=function(t){return function(){for(var e=arguments.length,n=new Array(e),r=0;r1?e-1:0),r=1;r1?"since :\n"+u.map(nr).join("\n"):" "+nr(u[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return n};function or(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new Sn(null,t)}function ar(t){return or(t),t.headers=En.from(t.headers),t.data=An.call(t,t.transformRequest),-1!==["post","put","patch"].indexOf(t.method)&&t.headers.setContentType("application/x-www-form-urlencoded",!1),ir(t.adapter||gn.adapter)(t).then((function(e){return or(t),e.data=An.call(t,t.transformResponse,e),e.headers=En.from(e.headers),e}),(function(e){return On(e)||(or(t),e&&e.response&&(e.response.data=An.call(t,t.transformResponse,e.response),e.response.headers=En.from(e.response.headers))),Promise.reject(e)}))}var ur={};["object","boolean","number","function","string","symbol"].forEach((function(t,e){ur[t]=function(n){return X(n)===t||"a"+(e<1?"n ":" ")+t}}));var sr={};ur.transitional=function(t,e,n){function r(t,e){return"[Axios v1.7.9] Transitional option '"+t+"'"+e+(n?". "+n:"")}return function(n,i,o){if(!1===t)throw new Ge(r(i," has been removed"+(e?" in "+e:"")),Ge.ERR_DEPRECATED);return e&&!sr[i]&&(sr[i]=!0,console.warn(r(i," has been deprecated since v"+e+" and will be removed in the near future"))),!t||t(n,i,o)}},ur.spelling=function(t){return function(e,n){return console.warn("".concat(n," is likely a misspelling of ").concat(t)),!0}};var cr={assertOptions:function(t,e,n){if("object"!==X(t))throw new Ge("options must be an object",Ge.ERR_BAD_OPTION_VALUE);for(var r=Object.keys(t),i=r.length;i-- >0;){var o=r[i],a=e[o];if(a){var u=t[o],s=void 0===u||a(u,o,t);if(!0!==s)throw new Ge("option "+o+" must be "+s,Ge.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new Ge("Unknown option "+o,Ge.ERR_BAD_OPTION)}},validators:ur},lr=cr.validators,hr=function(){return _((function t(e){D(this,t),this.defaults=e,this.interceptors={request:new un,response:new un}}),[{key:"request",value:(t=P(W().mark((function t(e,n){var r,i;return W().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,this._request(e,n);case 3:return t.abrupt("return",t.sent);case 6:if(t.prev=6,t.t0=t.catch(0),t.t0 instanceof Error){r={},Error.captureStackTrace?Error.captureStackTrace(r):r=new Error,i=r.stack?r.stack.replace(/^.+\n/,""):"";try{t.t0.stack?i&&!String(t.t0.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(t.t0.stack+="\n"+i):t.t0.stack=i}catch(t){}}throw t.t0;case 10:case"end":return t.stop()}}),t,this,[[0,6]])}))),function(e,n){return t.apply(this,arguments)})},{key:"_request",value:function(t,e){"string"==typeof t?(e=e||{}).url=t:e=t||{};var n=e=_n(this.defaults,e),r=n.transitional,i=n.paramsSerializer,o=n.headers;void 0!==r&&cr.assertOptions(r,{silentJSONParsing:lr.transitional(lr.boolean),forcedJSONParsing:lr.transitional(lr.boolean),clarifyTimeoutError:lr.transitional(lr.boolean)},!1),null!=i&&(Ye.isFunction(i)?e.paramsSerializer={serialize:i}:cr.assertOptions(i,{encode:lr.function,serialize:lr.function},!0)),cr.assertOptions(e,{baseUrl:lr.spelling("baseURL"),withXsrfToken:lr.spelling("withXSRFToken")},!0),e.method=(e.method||this.defaults.method||"get").toLowerCase();var a=o&&Ye.merge(o.common,o[e.method]);o&&Ye.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete o[t]})),e.headers=En.concat(a,o);var u=[],s=!0;this.interceptors.request.forEach((function(t){"function"==typeof t.runWhen&&!1===t.runWhen(e)||(s=s&&t.synchronous,u.unshift(t.fulfilled,t.rejected))}));var c,l=[];this.interceptors.response.forEach((function(t){l.push(t.fulfilled,t.rejected)}));var h,f=0;if(!s){var d=[ar.bind(this),void 0];for(d.unshift.apply(d,u),d.push.apply(d,l),h=d.length,c=Promise.resolve(e);f0;)r._listeners[e](t);r._listeners=null}})),this.promise.then=function(t){var e,n=new Promise((function(t){r.subscribe(t),e=t})).then(t);return n.cancel=function(){r.unsubscribe(e)},n},e((function(t,e,i){r.reason||(r.reason=new Sn(t,e,i),n(r.reason))}))}return _(t,[{key:"throwIfRequested",value:function(){if(this.reason)throw this.reason}},{key:"subscribe",value:function(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t]}},{key:"unsubscribe",value:function(t){if(this._listeners){var e=this._listeners.indexOf(t);-1!==e&&this._listeners.splice(e,1)}}},{key:"toAbortSignal",value:function(){var t=this,e=new AbortController,n=function(t){e.abort(t)};return this.subscribe(n),e.signal.unsubscribe=function(){return t.unsubscribe(n)},e.signal}}],[{key:"source",value:function(){var e;return{token:new t((function(t){e=t})),cancel:e}}}])}(),dr={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(dr).forEach((function(t){var e=G(t,2),n=e[0],r=e[1];dr[r]=n}));var vr=function t(e){var n=new hr(e),r=ee(hr.prototype.request,n);return Ye.extend(r,hr.prototype,n,{allOwnKeys:!0}),Ye.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return t(_n(e,n))},r}(gn);vr.Axios=hr,vr.CanceledError=Sn,vr.CancelToken=fr,vr.isCancel=On,vr.VERSION="1.7.9",vr.toFormData=tn,vr.AxiosError=Ge,vr.Cancel=vr.CanceledError,vr.all=function(t){return Promise.all(t)},vr.spread=function(t){return function(e){return t.apply(null,e)}},vr.isAxiosError=function(t){return Ye.isObject(t)&&!0===t.isAxiosError},vr.mergeConfig=_n,vr.AxiosHeaders=En,vr.formToJSON=function(t){return yn(Ye.isHTMLForm(t)?new FormData(t):t)},vr.getAdapter=ir,vr.HttpStatusCode=dr,vr.default=vr,vr.Axios,vr.AxiosError,vr.CanceledError,vr.isCancel,vr.CancelToken,vr.VERSION,vr.all,vr.Cancel,vr.isAxiosError,vr.spread,vr.toFormData,vr.AxiosHeaders,vr.HttpStatusCode,vr.formToJSON,vr.getAdapter,vr.mergeConfig;var pr=function(){function t(e){var n;return D(this,t),(n=L(this,t,[e])).axiosInstance=vr.create({baseURL:"".concat(n.host,"/").concat(n.namespace),headers:{Authorization:"Bearer ".concat(e.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;node"}}),n.axiosInstance.interceptors.response.use((function(t){return t.data}),(function(t){if(t.response){var e=t.response.data;if(lt(e.errors)&&e.errors.length)throw new Error(e.errors[0]);if(e.error)throw new Error(e.error)}throw t})),n}return H(t,Zt),_(t,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.axiosInstance.defaults.headers.common=U(U({},this.axiosInstance.defaults.headers.common),t),this}},{key:"request",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axiosInstance.request(U({method:t,url:e},n))}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request("GET",t,U({params:e},n))}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request("POST",t,U({data:e},n))}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request("PUT",t,U({data:e},n))}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request("DELETE",t,e)}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request("PATCH",t,U({data:e},n))}}])}();at("adapter","NodeAdapter",pr);var yr=function(){function t(){return D(this,t),L(this,t,arguments)}return H(t,Zt),_(t)}();at("adapter","EmberJsAdapter",yr),function(){function t(e){var n,r,i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(D(this,t),this.version=null!==(n=o.version)&&void 0!==n?n:"v1",this.options={version:this.version,host:null!==(r=o.host)&&void 0!==r?r:"https://api.fleetbase.io",namespace:null!==(i=o.namespace)&&void 0!==i?i:this.version,debug:a,publicKey:e},"string"!=typeof e||0===e.length)throw new Error("⚠️ Invalid public key given to Fleetbase SDK");if(!Et()&&e.toLowerCase().startsWith("$"))throw new Error("Secret key provided. You must use a public key with Fleetbase Javascript SDK!");this.adapter=o.adapter||At(this.options),this.orders=new Ct("order",this.adapter).extendActions(Nt),this.entities=new Ct("entity",this.adapter),this.places=new Ct("place",this.adapter),this.drivers=new Ct("driver",this.adapter).extendActions(Wt),this.vehicles=new Ct("vehicle",this.adapter),this.vendors=new Ct("vendor",this.adapter),this.contacts=new Ct("contact",this.adapter),this.organizations=new Ct("organization",this.adapter).extendActions(zt)}_(t,[{key:"setAdapter",value:function(t){this.adapter=t}},{key:"getAdapter",value:function(){return this.adapter}}],[{key:"newInstance",value:function(){return C(t,Array.prototype.slice.call(arguments))}}])}();var gr=function(t){function e(){return o(this,e),i(this,e,arguments)}return h(e,t),u(e,[{key:"extendActions",value:function(){return Pt(this,arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])}},{key:"serialize",value:function(t){return st("resource",it(this.resource),t,this.adapter)}}])}(Ct);function mr(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"USD",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"symbol";return new Intl.NumberFormat("en-US",{style:"currency",currency:e,currencyDisplay:n}).format(t)}function wr(t){var e=null==t;if(e)return e;if("number"==typeof t.size)return!t.size;var n=w(t);if("object"===n){var r=t.size;if("number"==typeof r)return!r}if("number"==typeof t.length&&"function"!==n)return!t.length;if("object"===n){var i=t.length;if("number"==typeof i)return!i}return!1}var br=Array.isArray,kr=function(t){function e(){return o(this,e),i(this,e,arguments)}return h(e,t),u(e,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new gr(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}}])}(Dt);at("resource","StorefrontResource",kr);var xr=new jt({count:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={};return t&&(n.store=t),this.adapter.get("".concat(this.namespace,"/count"),n,e)}}),Er=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return o(this,e),i(this,e,[t,n,"review",r])}return h(e,t),u(e,[{key:"getMedia",value:function(){}},{key:"getPhotos",value:function(){}},{key:"getVideos",value:function(){}}])}(kr);at("resource","Review",Er);var Ar=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return o(this,e),i(this,e,[t,n,"product",r])}return h(e,t),u(e,[{key:"variants",value:function(){return this.getAttribute("variants")}},{key:"addons",value:function(){return this.getAttribute("addon_categories")}},{key:"isOnSale",get:function(){return this.getAttribute("is_on_sale")}},{key:"isNotOnSale",get:function(){return!this.getAttribute("is_on_sale")}},{key:"formattedAmount",get:function(){var t=this.getAttributes(["price","sale_price","currency"]),e=t.price,n=t.sale_price,r=t.currency;return this.isOnSale?wr(n)||wr(r)?null:mr(n/100,r):wr(e)||wr(r)?null:mr(e/100,r)}},{key:"getReviews",value:function(){var t=this;return this.adapter.get("reviews",{store:this.id}).then((function(e){return new kt(e.map((function(e){return new Er(e,t.adapter)})))}))}}])}(kr);at("resource","Product",Ar);var Or=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return o(this,e),i(this,e,[t,n,"category",r])}return h(e,t),u(e,[{key:"getProducts",value:function(){var t=this;return this.adapter.get("products",{category:this.id}).then((function(e){return new kt(e.map((function(e){return new Ar(e,t.adapter)})))}))}}])}(kr);at("resource","Category",Or);var Sr=new jt({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(function(){return/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"")}(t))return this.adapter.post("customers/login-with-sms",{phone:t});if(!e)throw new Error("Login requires password!");return this.adapter.post("customers/login",v({identity:t,password:e},n)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("customers/verify-code",v({identity:t,code:e},n)).then(this.afterFetch.bind(this))},requestCreationCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"email";return this.adapter.post("customers/request-creation-code",{identity:t,mode:e})},create:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("customers",v({identity:t,code:e},n)).then(this.afterFetch.bind(this))},retrieve:function(t){return this.findRecord(t)}}),Tr=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return o(this,e),i(this,e,[t,n,"customer",v({actions:Sr},r)])}return h(e,t),u(e,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new gr(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"token",get:function(){return this.getAttribute("token")}},{key:"syncDevice",value:(c=r(p().mark((function t(e){var n=this;return p().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this.adapter.setHeaders({"Customer-Token":this.token}).post("customers/register-device",e).then((function(){return n})));case 1:case"end":return t.stop()}}),t,this)}))),function(t){return c.apply(this,arguments)})},{key:"performAuthorizedRequest",value:(s=r(p().mark((function t(e){var n,r,i,o,a=arguments;return p().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=a.length>1&&void 0!==a[1]?a[1]:{},r=a.length>2&&void 0!==a[2]?a[2]:"GET",t.prev=2,i={"Customer-Token":this.token},t.next=6,this.adapter.setHeaders(i)[r.toLowerCase()](e,n);case 6:return o=t.sent,t.abrupt("return",o);case 10:throw t.prev=10,t.t0=t.catch(2),console.error("Error in ".concat(r," request to ").concat(e,":"),t.t0),t.t0;case 14:case"end":return t.stop()}}),t,this,[[2,10]])}))),function(t){return s.apply(this,arguments)})},{key:"getSavedPlaces",value:(a=r(p().mark((function t(){var e,n=this;return p().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,this.performAuthorizedRequest("customers/places");case 3:return e=t.sent,t.abrupt("return",new kt(e.map((function(t){return new qt(t,n.adapter)}))));case 7:throw t.prev=7,t.t0=t.catch(0),console.error("Failed to retrieve saved places"),t.t0;case 11:case"end":return t.stop()}}),t,this,[[0,7]])}))),function(){return a.apply(this,arguments)})},{key:"getOrderHistory",value:(n=r(p().mark((function t(){var e,n,r=this,i=arguments;return p().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},t.prev=1,t.next=4,this.performAuthorizedRequest("customers/orders",e);case 4:return n=t.sent,t.abrupt("return",new kt(n.map((function(t){return new _t(t,r.adapter)}))));case 8:throw t.prev=8,t.t0=t.catch(1),console.error("Failed to retrieve order history"),t.t0;case 12:case"end":return t.stop()}}),t,this,[[1,8]])}))),function(){return n.apply(this,arguments)})},{key:"getStripeEphemeralKey",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.setHeaders({"Customer-Token":this.token}).post("customers/stripe-ephemeral-key",t)}},{key:"getStripeSetupIntent",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.setHeaders({"Customer-Token":this.token}).post("customers/stripe-setup-intent",t)}}]);var n,a,s,c}(kr);at("resource","Customer",Tr);var Rr=Array.isArray,Pr=new jt({create:void 0,findAll:void 0,query:void 0,queryRecord:void 0,add:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/").concat(e),v(v({},r),{},{quantity:n}),i).then(this.afterFetch.bind(this))},update:function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return this.adapter.put("".concat(this.namespace,"/").concat(t,"/").concat(e),v(v({},r),{},{quantity:n}),i).then(this.afterFetch.bind(this))},remove:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete("".concat(this.namespace,"/").concat(t,"/").concat(e),{},n).then(this.afterFetch.bind(this))},empty:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.put("".concat(this.namespace,"/").concat(t,"/empty"),{},e).then(this.afterFetch.bind(this))},retrieve:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return this.findRecord(t)}}),jr=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return o(this,e),i(this,e,[t,n,"cart",v({actions:Pr},r)])}return h(e,t),u(e,[{key:"add",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return t instanceof Ar&&(t=t.id),this.store.add(this.id,t,e,n,r)}},{key:"update",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.store.update(this.id,t,e,n,r)}},{key:"remove",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.remove(this.id,t,e)}},{key:"empty",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.store.empty(this.id,t)}},{key:"delete",value:function(){return this.destroy()}},{key:"refresh",value:function(){return this.store.retrieve(this.id)}},{key:"subtotal",value:function(){var t=0;return this.contents().forEach((function(e){t+=e.subtotal})),t}},{key:"contents",value:function(){return this.getAttribute("items",[])}},{key:"hasProduct",value:function(t){return-1!==this.contents().findIndex((function(e){return e.product_id===t}))}},{key:"isEmpty",get:function(){var t=this.contents();return!Rr(t)||0===t.length}},{key:"isNotEmpty",get:function(){return!this.isEmpty}}])}(kr);at("resource","Cart",jr);var Lr=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return o(this,e),i(this,e,[t,n,"payment-gateway",r])}return h(e,t),u(e,[{key:"type",get:function(){return this.getAttribute("type")}},{key:"code",get:function(){return this.getAttribute("code")}},{key:"isCashGateway",get:function(){return"cash"===this.type}},{key:"isStripeGateway",get:function(){return"stripe"===this.type}},{key:"setCheckoutToken",value:function(t){this.token=t}},{key:"getCheckoutToken",value:function(){return this.token}},{key:"findRecord",value:function(){throw new Error("There is no findRecord() method for payment gateways!")}},{key:"create",value:function(){throw new Error("There is no create() method for payment gateways!")}},{key:"update",value:function(){throw new Error("There is no update() method for payment gateways!")}},{key:"destroy",value:function(){throw new Error("There is no destroy() method for payment gateways!")}},{key:"reload",value:function(){throw new Error("There is no reload() method for payment gateways!")}}])}(kr);at("resource","PaymentGateway",Lr);var Dr=6048e5,Cr=Symbol.for("constructDateFrom");function Nr(t,e){return"function"==typeof t?t(e):t&&"object"===w(t)&&Cr in t?t[Cr](e):t instanceof Date?new t.constructor(e):new Date(e)}function _r(t,e){return Nr(e||t,t)}function Fr(t,e,n){var r=_r(t,null==n?void 0:n.in);return isNaN(e)?Nr((null==n?void 0:n.in)||t,NaN):e?(r.setDate(r.getDate()+e),r):r}var Mr={};function qr(){return Mr}function Hr(t,e){var n,r,i,o,a,u,s=qr(),c=null!==(n=null!==(r=null!==(i=null!==(o=null==e?void 0:e.weekStartsOn)&&void 0!==o?o:null==e||null===(a=e.locale)||void 0===a||null===(a=a.options)||void 0===a?void 0:a.weekStartsOn)&&void 0!==i?i:s.weekStartsOn)&&void 0!==r?r:null===(u=s.locale)||void 0===u||null===(u=u.options)||void 0===u?void 0:u.weekStartsOn)&&void 0!==n?n:0,l=_r(t,null==e?void 0:e.in),h=l.getDay(),f=(h=o.getTime()?r+1:n.getTime()>=u.getTime()?r:r-1}function zr(t){var e=_r(t),n=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return n.setUTCFullYear(e.getFullYear()),+t-+n}function $r(t,e){var n=_r(t,void 0);return n.setHours(0,0,0,0),n}function Ur(t,e,n){var r=function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r0&&void 0!==arguments[0]?arguments[0]:{},n=e.width?String(e.width):t.defaultWidth;return t.formats[n]||t.formats[t.defaultWidth]}}var Qr={date:Gr({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:Gr({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:Gr({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},Jr={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function Xr(t){return function(e,n){var r;if("formatting"===(null!=n&&n.context?String(n.context):"standalone")&&t.formattingValues){var i=t.defaultFormattingWidth||t.defaultWidth,o=null!=n&&n.width?String(n.width):i;r=t.formattingValues[o]||t.formattingValues[i]}else{var a=t.defaultWidth,u=null!=n&&n.width?String(n.width):t.defaultWidth;r=t.values[u]||t.values[a]}return r[t.argumentCallback?t.argumentCallback(e):e]}}var Kr={ordinalNumber:function(t,e){var n=Number(t),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:Xr({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:Xr({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(t){return t-1}}),month:Xr({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:Xr({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:Xr({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})};function Vr(t){return function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.width,i=r&&t.matchPatterns[r]||t.matchPatterns[t.defaultMatchWidth],o=e.match(i);if(!o)return null;var a,u=o[0],s=r&&t.parsePatterns[r]||t.parsePatterns[t.defaultParseWidth],c=Array.isArray(s)?function(t,e){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{},n=t.match(Zr.matchPattern);if(!n)return null;var r=n[0],i=t.match(Zr.parsePattern);if(!i)return null;var o=Zr.valueCallback?Zr.valueCallback(i[0]):i[0];return{value:o=e.valueCallback?e.valueCallback(o):o,rest:t.slice(r.length)}}),era:Vr({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:Vr({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:Vr({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:Vr({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:Vr({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},ei={code:"en-US",formatDistance:function(t,e,n){var r,i=Yr[t];return r="string"==typeof i?i:1===e?i.one:i.other.replace("{{count}}",e.toString()),null!=n&&n.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r},formatLong:Qr,formatRelative:function(t,e,n,r){return Jr[t]},localize:Kr,match:ti,options:{weekStartsOn:0,firstWeekContainsDate:1}};function ni(t,e){var n=_r(t,void 0),r=Ur(n,function(t){var e=_r(t,void 0);return e.setFullYear(e.getFullYear(),0,1),e.setHours(0,0,0,0),e}(n));return r+1}function ri(t,e){var n=_r(t,void 0),r=+Ir(n)-+function(t){var e=Br(t),n=Nr(t,0);return n.setFullYear(e,0,4),n.setHours(0,0,0,0),Ir(n)}(n);return Math.round(r/Dr)+1}function ii(t,e){var n,r,i,o,a,u,s=_r(t,null==e?void 0:e.in),c=s.getFullYear(),l=qr(),h=null!==(n=null!==(r=null!==(i=null!==(o=null==e?void 0:e.firstWeekContainsDate)&&void 0!==o?o:null==e||null===(a=e.locale)||void 0===a||null===(a=a.options)||void 0===a?void 0:a.firstWeekContainsDate)&&void 0!==i?i:l.firstWeekContainsDate)&&void 0!==r?r:null===(u=l.locale)||void 0===u||null===(u=u.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==n?n:1,f=Nr((null==e?void 0:e.in)||t,0);f.setFullYear(c+1,0,h),f.setHours(0,0,0,0);var d=Hr(f,e),v=Nr((null==e?void 0:e.in)||t,0);v.setFullYear(c,0,h),v.setHours(0,0,0,0);var p=Hr(v,e);return+s>=+d?c+1:+s>=+p?c:c-1}function oi(t,e){var n=_r(t,null==e?void 0:e.in),r=+Hr(n,e)-+function(t,e){var n,r,i,o,a,u,s=qr(),c=null!==(n=null!==(r=null!==(i=null!==(o=null==e?void 0:e.firstWeekContainsDate)&&void 0!==o?o:null==e||null===(a=e.locale)||void 0===a||null===(a=a.options)||void 0===a?void 0:a.firstWeekContainsDate)&&void 0!==i?i:s.firstWeekContainsDate)&&void 0!==r?r:null===(u=s.locale)||void 0===u||null===(u=u.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==n?n:1,l=ii(t,e),h=Nr((null==e?void 0:e.in)||t,0);return h.setFullYear(l,0,c),h.setHours(0,0,0,0),Hr(h,e)}(n,e);return Math.round(r/Dr)+1}function ai(t,e){return(t<0?"-":"")+Math.abs(t).toString().padStart(e,"0")}var ui=function(t,e){var n=t.getFullYear(),r=n>0?n:1-n;return ai("yy"===e?r%100:r,e.length)},si=function(t,e){var n=t.getMonth();return"M"===e?String(n+1):ai(n+1,2)},ci=function(t,e){return ai(t.getDate(),e.length)},li=function(t,e){return ai(t.getHours()%12||12,e.length)},hi=function(t,e){return ai(t.getHours(),e.length)},fi=function(t,e){return ai(t.getMinutes(),e.length)},di=function(t,e){return ai(t.getSeconds(),e.length)},vi=function(t,e){var n=e.length,r=t.getMilliseconds();return ai(Math.trunc(r*Math.pow(10,n-3)),e.length)},pi="midnight",yi="noon",gi="morning",mi="afternoon",wi="evening",bi="night",ki={G:function(t,e,n){var r=t.getFullYear()>0?1:0;switch(e){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});default:return n.era(r,{width:"wide"})}},y:function(t,e,n){if("yo"===e){var r=t.getFullYear(),i=r>0?r:1-r;return n.ordinalNumber(i,{unit:"year"})}return ui(t,e)},Y:function(t,e,n,r){var i=ii(t,r),o=i>0?i:1-i;return"YY"===e?ai(o%100,2):"Yo"===e?n.ordinalNumber(o,{unit:"year"}):ai(o,e.length)},R:function(t,e){return ai(Br(t),e.length)},u:function(t,e){return ai(t.getFullYear(),e.length)},Q:function(t,e,n){var r=Math.ceil((t.getMonth()+1)/3);switch(e){case"Q":return String(r);case"QQ":return ai(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(t,e,n){var r=Math.ceil((t.getMonth()+1)/3);switch(e){case"q":return String(r);case"qq":return ai(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(t,e,n){var r=t.getMonth();switch(e){case"M":case"MM":return si(t,e);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(t,e,n){var r=t.getMonth();switch(e){case"L":return String(r+1);case"LL":return ai(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(t,e,n,r){var i=oi(t,r);return"wo"===e?n.ordinalNumber(i,{unit:"week"}):ai(i,e.length)},I:function(t,e,n){var r=ri(t);return"Io"===e?n.ordinalNumber(r,{unit:"week"}):ai(r,e.length)},d:function(t,e,n){return"do"===e?n.ordinalNumber(t.getDate(),{unit:"date"}):ci(t,e)},D:function(t,e,n){var r=ni(t);return"Do"===e?n.ordinalNumber(r,{unit:"dayOfYear"}):ai(r,e.length)},E:function(t,e,n){var r=t.getDay();switch(e){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(t,e,n,r){var i=t.getDay(),o=(i-r.weekStartsOn+8)%7||7;switch(e){case"e":return String(o);case"ee":return ai(o,2);case"eo":return n.ordinalNumber(o,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(t,e,n,r){var i=t.getDay(),o=(i-r.weekStartsOn+8)%7||7;switch(e){case"c":return String(o);case"cc":return ai(o,e.length);case"co":return n.ordinalNumber(o,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(t,e,n){var r=t.getDay(),i=0===r?7:r;switch(e){case"i":return String(i);case"ii":return ai(i,e.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(t,e,n){var r=t.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},b:function(t,e,n){var r,i=t.getHours();switch(r=12===i?yi:0===i?pi:i/12>=1?"pm":"am",e){case"b":case"bb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},B:function(t,e,n){var r,i=t.getHours();switch(r=i>=17?wi:i>=12?mi:i>=4?gi:bi,e){case"B":case"BB":case"BBB":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},h:function(t,e,n){if("ho"===e){var r=t.getHours()%12;return 0===r&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return li(t,e)},H:function(t,e,n){return"Ho"===e?n.ordinalNumber(t.getHours(),{unit:"hour"}):hi(t,e)},K:function(t,e,n){var r=t.getHours()%12;return"Ko"===e?n.ordinalNumber(r,{unit:"hour"}):ai(r,e.length)},k:function(t,e,n){var r=t.getHours();return 0===r&&(r=24),"ko"===e?n.ordinalNumber(r,{unit:"hour"}):ai(r,e.length)},m:function(t,e,n){return"mo"===e?n.ordinalNumber(t.getMinutes(),{unit:"minute"}):fi(t,e)},s:function(t,e,n){return"so"===e?n.ordinalNumber(t.getSeconds(),{unit:"second"}):di(t,e)},S:function(t,e){return vi(t,e)},X:function(t,e,n){var r=t.getTimezoneOffset();if(0===r)return"Z";switch(e){case"X":return Ei(r);case"XXXX":case"XX":return Ai(r);default:return Ai(r,":")}},x:function(t,e,n){var r=t.getTimezoneOffset();switch(e){case"x":return Ei(r);case"xxxx":case"xx":return Ai(r);default:return Ai(r,":")}},O:function(t,e,n){var r=t.getTimezoneOffset();switch(e){case"O":case"OO":case"OOO":return"GMT"+xi(r,":");default:return"GMT"+Ai(r,":")}},z:function(t,e,n){var r=t.getTimezoneOffset();switch(e){case"z":case"zz":case"zzz":return"GMT"+xi(r,":");default:return"GMT"+Ai(r,":")}},t:function(t,e,n){return ai(Math.trunc(+t/1e3),e.length)},T:function(t,e,n){return ai(+t,e.length)}};function xi(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=t>0?"-":"+",r=Math.abs(t),i=Math.trunc(r/60),o=r%60;return 0===o?n+String(i):n+String(i)+e+ai(o,2)}function Ei(t,e){return t%60==0?(t>0?"-":"+")+ai(Math.abs(t)/60,2):Ai(t,e)}function Ai(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=t>0?"-":"+",r=Math.abs(t);return n+ai(Math.trunc(r/60),2)+e+ai(r%60,2)}var Oi=function(t,e){switch(t){case"P":return e.date({width:"short"});case"PP":return e.date({width:"medium"});case"PPP":return e.date({width:"long"});default:return e.date({width:"full"})}},Si=function(t,e){switch(t){case"p":return e.time({width:"short"});case"pp":return e.time({width:"medium"});case"ppp":return e.time({width:"long"});default:return e.time({width:"full"})}},Ti={p:Si,P:function(t,e){var n,r=t.match(/(P+)(p+)?/)||[],i=r[1],o=r[2];if(!o)return Oi(t,e);switch(i){case"P":n=e.dateTime({width:"short"});break;case"PP":n=e.dateTime({width:"medium"});break;case"PPP":n=e.dateTime({width:"long"});break;default:n=e.dateTime({width:"full"})}return n.replace("{{date}}",Oi(i,e)).replace("{{time}}",Si(o,e))}},Ri=/^D+$/,Pi=/^Y+$/,ji=["D","DD","YY","YYYY"];function Li(t){return Ri.test(t)}function Di(t){return Pi.test(t)}function Ci(t,e,n){var r=function(t,e,n){var r="Y"===t[0]?"years":"days of the month";return"Use `".concat(t.toLowerCase(),"` instead of `").concat(t,"` (in `").concat(e,"`) for formatting ").concat(r," to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md")}(t,e,n);if(console.warn(r),ji.includes(t))throw new RangeError(r)}var Ni=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,_i=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Fi=/^'([^]*?)'?$/,Mi=/''/g,qi=/[a-zA-Z]/;function Hi(t,e,n){var r,i,o,a,u,s,c,l,h,f=qr(),d=null!==(r=f.locale)&&void 0!==r?r:ei,v=null!==(i=null!==(o=null!==(a=void 0)&&void 0!==a?a:f.firstWeekContainsDate)&&void 0!==o?o:null===(u=f.locale)||void 0===u||null===(u=u.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==i?i:1,p=null!==(s=null!==(c=null!==(l=void 0)&&void 0!==l?l:f.weekStartsOn)&&void 0!==c?c:null===(h=f.locale)||void 0===h||null===(h=h.options)||void 0===h?void 0:h.weekStartsOn)&&void 0!==s?s:0,y=_r(t,void 0);if(!Wr(y))throw new RangeError("Invalid time value");var g=e.match(_i).map((function(t){var e=t[0];return"p"===e||"P"===e?(0,Ti[e])(t,d.formatLong):t})).join("").match(Ni).map((function(t){if("''"===t)return{isToken:!1,value:"'"};var e=t[0];if("'"===e)return{isToken:!1,value:Ii(t)};if(ki[e])return{isToken:!0,value:t};if(e.match(qi))throw new RangeError("Format string contains an unescaped latin alphabet character `"+e+"`");return{isToken:!1,value:t}}));d.localize.preprocessor&&(g=d.localize.preprocessor(y,g));var m={firstWeekContainsDate:v,weekStartsOn:p,locale:d};return g.map((function(n){if(!n.isToken)return n.value;var r=n.value;return(Di(r)||Li(r))&&Ci(r,e,String(t)),(0,ki[r[0]])(y,r,d.localize,m)})).join("")}function Ii(t){var e=t.match(Fi);return e?e[1].replace(Mi,"'"):t}var Bi=function(){return u((function t(){o(this,t),c(this,"subPriority",0)}),[{key:"validate",value:function(t,e){return!0}}])}(),zi=function(t){function e(t,n,r,a,u){var s;return o(this,e),(s=i(this,e)).value=t,s.validateValue=n,s.setValue=r,s.priority=a,u&&(s.subPriority=u),s}return h(e,t),u(e,[{key:"validate",value:function(t,e){return this.validateValue(t,this.value,e)}},{key:"set",value:function(t,e,n){return this.setValue(t,e,this.value,n)}}])}(Bi),$i=function(t){function e(t,n){var r;return o(this,e),c(r=i(this,e),"priority",10),c(r,"subPriority",-1),r.context=t||function(t){return Nr(n,t)},r}return h(e,t),u(e,[{key:"set",value:function(t,e){return e.timestampIsSet?t:Nr(t,function(t,e){var n=function(t){var e;return"function"==typeof t&&(null===(e=t.prototype)||void 0===e?void 0:e.constructor)===t}(e)?new e(0):Nr(e,0);return n.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),n.setHours(t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()),n}(t,this.context))}}])}(Bi),Ui=function(){return u((function t(){o(this,t)}),[{key:"run",value:function(t,e,n,r){var i=this.parse(t,e,n,r);return i?{setter:new zi(i.value,this.validate,this.set,this.priority,this.subPriority),rest:i.rest}:null}},{key:"validate",value:function(t,e,n){return!0}}])}(),Wi=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a0,i=r?e:1-e;if(i<=50)n=t||100;else{var o=i+50;n=t+100*Math.trunc(o/100)-(t>=o%100?100:0)}return r?n:1-n}function Oo(t){return t%400==0||t%4==0&&t%100!=0}var So=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a0}},{key:"set",value:function(t,e,n){var r=t.getFullYear();if(n.isTwoDigitYear){var i=Ao(n.year,r);return t.setFullYear(i,0,1),t.setHours(0,0,0,0),t}var o="era"in e&&1!==e.era?1-n.year:n.year;return t.setFullYear(o,0,1),t.setHours(0,0,0,0),t}}])}(Ui),To=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a0}},{key:"set",value:function(t,e,n,r){var i=ii(t,r);if(n.isTwoDigitYear){var o=Ao(n.year,i);return t.setFullYear(o,0,r.firstWeekContainsDate),t.setHours(0,0,0,0),Hr(t,r)}var a="era"in e&&1!==e.era?1-n.year:n.year;return t.setFullYear(a,0,r.firstWeekContainsDate),t.setHours(0,0,0,0),Hr(t,r)}}])}(Ui),Ro=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=1&&e<=4}},{key:"set",value:function(t,e,n){return t.setMonth(3*(n-1),1),t.setHours(0,0,0,0),t}}])}(Ui),Lo=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=1&&e<=4}},{key:"set",value:function(t,e,n){return t.setMonth(3*(n-1),1),t.setHours(0,0,0,0),t}}])}(Ui),Do=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=0&&e<=11}},{key:"set",value:function(t,e,n){return t.setMonth(n,1),t.setHours(0,0,0,0),t}}])}(Ui),Co=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=0&&e<=11}},{key:"set",value:function(t,e,n){return t.setMonth(n,1),t.setHours(0,0,0,0),t}}])}(Ui);var No=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=1&&e<=53}},{key:"set",value:function(t,e,n,r){return Hr(function(t,e,n){var r=_r(t,null==n?void 0:n.in),i=oi(r,n)-e;return r.setDate(r.getDate()-7*i),_r(r,null==n?void 0:n.in)}(t,n,r),r)}}])}(Ui);var _o=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=1&&e<=53}},{key:"set",value:function(t,e,n){return Ir(function(t,e){var n=_r(t,void 0),r=ri(n)-e;return n.setDate(n.getDate()-7*r),n}(t,n))}}])}(Ui),Fo=[31,28,31,30,31,30,31,31,30,31,30,31],Mo=[31,29,31,30,31,30,31,31,30,31,30,31],qo=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=1&&e<=Mo[r]:e>=1&&e<=Fo[r]}},{key:"set",value:function(t,e,n){return t.setDate(n),t.setHours(0,0,0,0),t}}])}(Ui),Ho=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=1&&e<=366:e>=1&&e<=365}},{key:"set",value:function(t,e,n){return t.setMonth(0,n),t.setHours(0,0,0,0),t}}])}(Ui);function Io(t,e,n){var r,i,o,a,u,s,c=qr(),l=null!==(r=null!==(i=null!==(o=null!==(a=null==n?void 0:n.weekStartsOn)&&void 0!==a?a:null==n||null===(u=n.locale)||void 0===u||null===(u=u.options)||void 0===u?void 0:u.weekStartsOn)&&void 0!==o?o:c.weekStartsOn)&&void 0!==i?i:null===(s=c.locale)||void 0===s||null===(s=s.options)||void 0===s?void 0:s.weekStartsOn)&&void 0!==r?r:0,h=_r(t,null==n?void 0:n.in),f=h.getDay(),d=7-l;return Fr(h,e<0||e>6?e-(f+d)%7:((e%7+7)%7+d)%7-(f+d)%7,n)}var Bo=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=0&&e<=6}},{key:"set",value:function(t,e,n,r){return(t=Io(t,n,r)).setHours(0,0,0,0),t}}])}(Ui),zo=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=0&&e<=6}},{key:"set",value:function(t,e,n,r){return(t=Io(t,n,r)).setHours(0,0,0,0),t}}])}(Ui),$o=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=0&&e<=6}},{key:"set",value:function(t,e,n,r){return(t=Io(t,n,r)).setHours(0,0,0,0),t}}])}(Ui);function Uo(t,e,n){var r=_r(t,void 0),i=function(t){var e=_r(t,void 0).getDay();return 0===e?7:e}(r);return Fr(r,e-i,n)}var Wo=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=1&&e<=7}},{key:"set",value:function(t,e,n){return(t=Uo(t,n)).setHours(0,0,0,0),t}}])}(Ui),Yo=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=1&&e<=12}},{key:"set",value:function(t,e,n){var r=t.getHours()>=12;return r&&n<12?t.setHours(n+12,0,0,0):r||12!==n?t.setHours(n,0,0,0):t.setHours(0,0,0,0),t}}])}(Ui),Xo=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=0&&e<=23}},{key:"set",value:function(t,e,n){return t.setHours(n,0,0,0),t}}])}(Ui),Ko=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=0&&e<=11}},{key:"set",value:function(t,e,n){return t.getHours()>=12&&n<12?t.setHours(n+12,0,0,0):t.setHours(n,0,0,0),t}}])}(Ui),Vo=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=1&&e<=24}},{key:"set",value:function(t,e,n){var r=n<=24?n%24:n;return t.setHours(r,0,0,0),t}}])}(Ui),Zo=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=0&&e<=59}},{key:"set",value:function(t,e,n){return t.setMinutes(n,0,0),t}}])}(Ui),ta=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=0&&e<=59}},{key:"set",value:function(t,e,n){return t.setSeconds(n,0),t}}])}(Ui),ea=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a0)throw new RangeError("The format string mustn't contain `".concat(n,"` and any other token at the same time"));E.push({token:i,fullToken:n});var s=o.run(t,n,y.match,b);if(!s)return{v:v()};k.push(s.setter),t=s.rest}else{if(i.match(fa))throw new RangeError("Format string contains an unescaped latin alphabet character `"+i+"`");if("''"===n?n="'":"'"===i&&(n=n.match(ca)[1].replace(la,"'")),0!==t.indexOf(n))return{v:v()};t=t.slice(n.length)}};for(A.s();!(w=A.n()).done;)if(O=S())return O.v}catch(t){A.e(t)}finally{A.f()}if(t.length>0&&ha.test(t))return v();var T=k.map((function(t){return t.priority})).sort((function(t,e){return e-t})).filter((function(t,e,n){return n.indexOf(t)===e})).map((function(t){return k.filter((function(e){return e.priority===t})).sort((function(t,e){return e.subPriority-t.subPriority}))})).map((function(t){return t[0]})),R=_r(n,void 0);if(isNaN(+R))return v();var P,j={},L=s(T);try{for(L.s();!(P=L.n()).done;){var D=P.value;if(!D.validate(R,b))return v();var C=D.set(R,j,b);Array.isArray(C)?(R=C[0],Object.assign(j,C[1])):R=C}}catch(t){L.e(t)}finally{L.f()}return R}var va=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return o(this,e),i(this,e,[t,n,"store-hour",r])}return h(e,t),u(e,[{key:"day",get:function(){return this.getAttribute("day")}},{key:"isClosed",get:function(){return null===this.getAttribute("start")&&null===this.getAttribute("end")}},{key:"is24Hours",get:function(){var t=this.startDateInstance,e=this.endDateInstance,n=Math.abs(t-e);return Math.floor(n/1e3/60)/60>23}},{key:"startDateInstance",get:function(){if(!this.hasAttribute("start"))return null;var t=this.getAttribute("start"),e=3===t.split(":").length;return da(t,e?"HH:mm:ss":"HH:mm",new Date)}},{key:"endDateInstance",get:function(){if(!this.hasAttribute("end"))return null;var t=this.getAttribute("end"),e=3===t.split(":").length;return da(t,e?"HH:mm:ss":"HH:mm",new Date)}},{key:"humanReadableHoursRange",get:function(){return Wr(this.startDateInstance)&&Wr(this.endDateInstance)?"".concat(Hi(this.startDateInstance,"p")," - ").concat(Hi(this.endDateInstance,"p")):"".concat(this.start," - ").concat(this.end)}},{key:"humanReadableHours",get:function(){return this.isClosed?"Closed":this.is24Hours?"24 Hours":this.humanReadableHoursRange}},{key:"create",value:function(){throw new Error("There is no create() method store location!")}},{key:"update",value:function(){throw new Error("There is no update() method store location!")}},{key:"destroy",value:function(){throw new Error("There is no destroy() method store location!")}},{key:"reload",value:function(){throw new Error("There is no reload() method store location!")}}])}(kr);at("resource","StoreHour",va);var pa=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return o(this,e),i(this,e,[t,n,"store-location",r])}return h(e,t),u(e,[{key:"latitude",get:function(){return this.getAttribute("place.location.coordinates.1")}},{key:"longitude",get:function(){return this.getAttribute("place.location.coordinates.0")}},{key:"hours",get:function(){return new kt(this.getAttribute("hours").map((function(t){return new va(t)})))}},{key:"isAlwaysOpen",get:function(){return this.hours.every((function(t){return null==t?void 0:t.is24Hours}))}},{key:"today",get:function(){var t=Hi(new Date,"EEEE");return this.schedule[t]}},{key:"schedule",get:function(){for(var t={},e=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],n=0;n0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return o(this,e),i(this,e,[t,n,"store",r])}return h(e,t),u(e,[{key:"getReviews",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("reviews",v({store:this.id},e)).then((function(e){return new kt(e.map((function(e){return new Er(e,t.adapter)})))}))}},{key:"getLocations",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("locations",v({store:this.id},e)).then((function(e){return new kt(e.map((function(e){return e.place&&(e.place=new qt(e.place)),new pa(e,t.adapter)})))}))}},{key:"getLocation",value:function(t){var e=this;return this.adapter.get("locations/".concat(t),{store:this.id}).then((function(t){return new pa(t,e.adapter)}))}},{key:"getPaymentGateways",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("gateways",e).then((function(e){return new kt(e.map((function(e){return new Lr(e,t.adapter)})))}))}},{key:"getPaymentGateway",value:function(t){var e=this;return this.adapter.get("gateways/".concat(t)).then((function(t){return new Lr(t,e.adapter)}))}}])}(kr);at("resource","Store",ya);var ga=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return o(this,e),i(this,e,[t,n,"network",r])}return h(e,t),u(e,[{key:"getTags",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("tags",t)}},{key:"getResourceCollection",value:(c=r(p().mark((function t(e,n){var r,i,o=this,a=arguments;return p().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=a.length>2&&void 0!==a[2]?a[2]:{},t.prev=1,t.next=4,this.adapter.get(e,r);case 4:return i=t.sent,t.abrupt("return",new kt(i.map((function(t){return new n(t,o.adapter)}))));case 8:throw t.prev=8,t.t0=t.catch(1),console.error("Error fetching ".concat(e,":"),t.t0),t.t0;case 12:case"end":return t.stop()}}),t,this,[[1,8]])}))),function(t,e){return c.apply(this,arguments)})},{key:"getStores",value:(s=r(p().mark((function t(){var e,n=arguments;return p().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=n.length>0&&void 0!==n[0]?n[0]:{},t.abrupt("return",this.getResourceCollection("stores",ya,e));case 2:case"end":return t.stop()}}),t,this)}))),function(){return s.apply(this,arguments)})},{key:"getStoreLocations",value:(a=r(p().mark((function t(){var e,n=arguments;return p().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=n.length>0&&void 0!==n[0]?n[0]:{},t.abrupt("return",this.getResourceCollection("store-locations",pa,e));case 2:case"end":return t.stop()}}),t,this)}))),function(){return a.apply(this,arguments)})},{key:"getPaymentGateways",value:(n=r(p().mark((function t(){return p().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this.getResourceCollection("gateways",Lr));case 1:case"end":return t.stop()}}),t,this)}))),function(){return n.apply(this,arguments)})}]);var n,a,s,c}(kr);at("resource","Network",ga);var ma=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};o(this,e);var a=t,u=n;return t instanceof Zt&&(a={},u=t),i(this,e,[a,u,"service-quote",r])}return h(e,t),u(e,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new gr(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"formattedAmount",get:function(){var t=this.getAttributes(["amount","currency"]),e=t.amount,n=t.currency;return wr(e)||wr(n)?null:mr(e/100,n)}},{key:"fetchServiceQuotesFromCart",value:(a=r(p().mark((function t(n,r,i){var o,a,u,s,c,l,h=this,f=arguments;return p().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return s=f.length>3&&void 0!==f[3]?f[3]:"storefront",c=f.length>4&&void 0!==f[4]&&f[4],null!==(o=n)&&void 0!==o&&o.id&&(n=n.id),null!==(a=r)&&void 0!==a&&a.id&&(r=r.id),null!==(u=i)&&void 0!==u&&u.id&&(i=i.id),t.prev=5,t.next=8,this.adapter.get("service-quotes/from-cart",{origin:n,destination:r,cart:i,config:s,all:c});case 8:if(l=t.sent,!br(l)){t.next=11;break}return t.abrupt("return",new kt(l.map((function(t){return new e(t,h.adapter)}))));case 11:return t.abrupt("return",new e(l,this.adapter));case 14:throw t.prev=14,t.t0=t.catch(5),console.error("Error fetching service quotes:",t.t0),t.t0;case 18:case"end":return t.stop()}}),t,this,[[5,14]])}))),function(t,e,n){return a.apply(this,arguments)})}],[{key:"getFromCart",value:(n=r(p().mark((function t(n,r,i,o){var a,u,s,c=arguments;return p().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=c.length>4&&void 0!==c[4]?c[4]:"storefront",u=c.length>5&&void 0!==c[5]&&c[5],s=new e(n),t.abrupt("return",s.fetchServiceQuotesFromCart(r,i,o,a,u));case 4:case"end":return t.stop()}}),t)}))),function(t,e,r,i){return n.apply(this,arguments)})}]);var n,a}(Vt);at("resource","DeliveryServiceQuote",ma);var wa=new jt({create:void 0,findAll:void 0,query:void 0,queryRecord:void 0,initialize:function(t,e,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return Lt(t)&&(t=t.id),Lt(e)&&(e=e.id),Lt(n)&&(n=n.id),Lt(r)&&(r=r.getAttribute("code")),this.adapter.get("".concat(this.namespace,"/before"),v(v({},i),{},{customer:t,cart:e,serviceQuote:n,gateway:r}),o)},captureOrder:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/capture"),{token:t,transactionDetails:e},n).then((function(t){return new _t(t)}))},createStripeSetupIntent:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Lt(t)&&(t=t.id),this.adapter.post("".concat(this.namespace,"/stripe-setup-intent"),{customer:t},e)},updateStripePaymentIntent:function(t,e,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return Lt(e)&&(e=e.id),Lt(n)&&(n=n.id),Lt(r)&&(r=r.id),this.adapter.put("".concat(this.namespace,"/stripe-update-payment-intent"),v({paymentIntent:t,customer:e,cart:n,serviceQuote:r},i),o)}}),ba=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return o(this,e),i(this,e,[t,n,"checkout",v({actions:wa},r)])}return h(e,t),u(e,[{key:"initialize",value:function(){var t;return(t=this.store).initialize.apply(t,arguments)}},{key:"captureOrder",value:function(){var t;return(t=this.store).captureOrder.apply(t,arguments)}}])}(kr);at("resource","Checkout",ba);var ka=function(){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(o(this,t),this.version=r.version||"v1",this.options={version:this.version,host:r.host||"https://api.fleetbase.io",namespace:r.namespace||"storefront/".concat(this.version),publicKey:e,debug:i},!("string"==typeof(n=e)&&n.length>30&&(n.startsWith("store_")||n.startsWith("network_"))))throw new Error("⚠️ Invalid Storefront key given to Storefront SDK");this.adapter=r.adapter||At(this.options),this.products=new gr("product",this.adapter),this.categories=new gr("category",this.adapter),this.reviews=new gr("review",this.adapter).extendActions(xr),this.customers=new gr("customer",this.adapter).extendActions(Sr),this.cart=new gr("cart",this.adapter).extendActions(Pr),this.checkout=new gr("checkout",this.adapter).extendActions(wa)}return u(t,[{key:"about",value:function(){return this.adapter.get("about")}},{key:"lookup",value:function(t){return this.adapter.get("lookup/".concat(t))}},{key:"search",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.get("search",v({query:t},e)).then((function(t){return new kt(t.map((function(t){return new Ar(t)})))}))}},{key:"setAdapter",value:function(t){this.adapter=t}},{key:"getAdapter",value:function(){return this.adapter}}],[{key:"newInstance",value:function(){return function(t,e,n){if(f())return Reflect.construct.apply(null,arguments);var r=[null];return r.push.apply(r,e),new(t.bind.apply(t,r))}(t,Array.prototype.slice.call(arguments))}}])}();t.Cart=jr,t.Category=Or,t.Checkout=ba,t.Customer=Tr,t.DeliveryServiceQuote=ma,t.Network=ga,t.PaymentGateway=Lr,t.Product=Ar,t.Review=Er,t.Store=ya,t.StoreHour=va,t.StoreLocation=pa,t.default=ka,t.lookup=st})); -//# sourceMappingURL=$storefront.min.js.map diff --git a/dist/$storefront.min.js.map b/dist/$storefront.min.js.map deleted file mode 100644 index fa9f61b..0000000 --- a/dist/$storefront.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"$storefront.min.js","sources":["../../fleetbase-js/dist/esm/fleetbase.js","../src/store.js","../src/utils/format-currency.js","../src/utils/is-empty.js","../src/utils/array.js","../src/resource.js","../src/resources/review.js","../src/resources/product.js","../src/resources/category.js","../src/resources/customer.js","../src/utils/is-phone.js","../src/resources/cart.js","../src/resources/payment-gateway.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constants.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constructFrom.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/toDate.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addDays.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/defaultOptions.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfWeek.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfISOWeek.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISOWeekYear.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfDay.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInCalendarDays.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/normalizeDates.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isValid.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isDate.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildFormatLongFn.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildLocalizeFn.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/localize.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchFn.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/match.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDayOfYear.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfYear.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISOWeek.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfISOWeekYear.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getWeekYear.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getWeek.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfWeekYear.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/addLeadingZeros.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/lightFormatters.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/formatters.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/longFormatters.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/protectedTokens.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/format.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/Setter.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/transpose.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/Parser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/EraParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/constants.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/utils.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/YearParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/QuarterParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/MonthParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setWeek.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setISOWeek.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DateParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setDay.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DayParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setISODay.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISODay.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISODayParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/AMPMParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/MinuteParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/SecondParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDefaultOptions.js","../src/resources/store-hour.js","../src/resources/store-location.js","../src/resources/store.js","../src/resources/network.js","../src/resources/delivery-service-quote.js","../src/resources/checkout.js","../src/storefront.js","../src/utils/is-key-valid.js"],"sourcesContent":["function t(t,e){this.v=t,this.k=e}function e(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,a=!0,s=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function g(t,e,n){return(e=j(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function y(t){return y=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},y(t)}function b(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,\"prototype\",{writable:!1}),e&&O(t,e)}function m(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(m=function(){return!!t})()}function w(t){if(\"undefined\"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t[\"@@iterator\"])return Array.from(t)}function k(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}function E(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function A(t){for(var e=1;e=0;--o){var a=this.tryEntries[o],s=a.completion;if(\"root\"===a.tryLoc)return i(\"end\");if(a.tryLoc<=this.prev){var u=r.call(a,\"catchLoc\"),c=r.call(a,\"finallyLoc\");if(u&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,\"finallyLoc\")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),_(n),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var i=r.arg;_(n)}return i}}throw Error(\"illegal catch attempt\")},delegateYield:function(e,n,r){return this.delegate={iterator:C(e),resultName:n,nextLoc:r},\"next\"===this.method&&(this.arg=t),g}},e}function O(t,e){return O=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},O(t,e)}function R(t,e){return n(t)||function(t,e){var n=null==t?null:\"undefined\"!=typeof Symbol&&t[Symbol.iterator]||t[\"@@iterator\"];if(null!=n){var r,i,o,a,s=[],u=!0,c=!1;try{if(o=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=o.call(n)).done)&&(s.push(r.value),s.length!==e);u=!0);}catch(t){c=!0,i=t}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw i}}return s}}(t,e)||_(t,e)||k()}function S(t){return function(t){if(Array.isArray(t))return e(t)}(t)||w(t)||_(t)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function j(t){var e=function(t,e){if(\"object\"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||\"default\");if(\"object\"!=typeof r)return r;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===e?String:Number)(t)}(t,\"string\");return\"symbol\"==typeof e?e:e+\"\"}function T(t){return T=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},T(t)}function _(t,n){if(t){if(\"string\"==typeof t)return e(t,n);var r={}.toString.call(t).slice(8,-1);return\"Object\"===r&&t.constructor&&(r=t.constructor.name),\"Map\"===r||\"Set\"===r?Array.from(t):\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?e(t,n):void 0}}function P(t){return function(){return new C(t.apply(this,arguments))}}function C(e){var n,r;function i(n,r){try{var a=e[n](r),s=a.value,u=s instanceof t;Promise.resolve(u?s.v:s).then((function(t){if(u){var r=\"return\"===n?\"return\":\"next\";if(!s.k||t.done)return i(r,t);t=e[r](t).value}o(a.done?\"return\":\"normal\",t)}),(function(t){i(\"throw\",t)}))}catch(t){o(\"throw\",t)}}function o(t,e){switch(t){case\"return\":n.resolve({value:e,done:!0});break;case\"throw\":n.reject(e);break;default:n.resolve({value:e,done:!1})}(n=n.next)?i(n.key,n.arg):r=null}this._invoke=function(t,e){return new Promise((function(o,a){var s={key:t,arg:e,resolve:o,reject:a,next:null};r?r=r.next=s:(n=r=s,i(t,e))}))},\"function\"!=typeof e.return&&(this.return=void 0)}function L(t){var e=\"function\"==typeof Map?new Map:void 0;return L=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf(\"[native code]\")}catch(e){return\"function\"==typeof t}}(t))return t;if(\"function\"!=typeof t)throw new TypeError(\"Super expression must either be null or a function\");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return f(t,arguments,y(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),O(n,t)},L(t)}C.prototype[\"function\"==typeof Symbol&&Symbol.asyncIterator||\"@@asyncIterator\"]=function(){return this},C.prototype.next=function(t){return this._invoke(\"next\",t)},C.prototype.throw=function(t){return this._invoke(\"throw\",t)},C.prototype.return=function(t){return this._invoke(\"return\",t)};var N=function(){function t(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];h(this,t),g(this,\"uncountableWords\",[\"equipment\",\"information\",\"rice\",\"money\",\"species\",\"series\",\"fish\",\"sheep\",\"moose\",\"deer\",\"news\"]),g(this,\"pluralRules\",[[new RegExp(\"(m)an$\",\"gi\"),\"$1en\"],[new RegExp(\"(pe)rson$\",\"gi\"),\"$1ople\"],[new RegExp(\"(child)$\",\"gi\"),\"$1ren\"],[new RegExp(\"^(ox)$\",\"gi\"),\"$1en\"],[new RegExp(\"(ax|test)is$\",\"gi\"),\"$1es\"],[new RegExp(\"(octop|vir)us$\",\"gi\"),\"$1i\"],[new RegExp(\"(alias|status)$\",\"gi\"),\"$1es\"],[new RegExp(\"(bu)s$\",\"gi\"),\"$1ses\"],[new RegExp(\"(buffal|tomat|potat)o$\",\"gi\"),\"$1oes\"],[new RegExp(\"([ti])um$\",\"gi\"),\"$1a\"],[new RegExp(\"sis$\",\"gi\"),\"ses\"],[new RegExp(\"(?:([^f])fe|([lr])f)$\",\"gi\"),\"$1$2ves\"],[new RegExp(\"(hive)$\",\"gi\"),\"$1s\"],[new RegExp(\"([^aeiouy]|qu)y$\",\"gi\"),\"$1ies\"],[new RegExp(\"(x|ch|ss|sh)$\",\"gi\"),\"$1es\"],[new RegExp(\"(matr|vert|ind)ix|ex$\",\"gi\"),\"$1ices\"],[new RegExp(\"([m|l])ouse$\",\"gi\"),\"$1ice\"],[new RegExp(\"(quiz)$\",\"gi\"),\"$1zes\"],[new RegExp(\"s$\",\"gi\"),\"s\"],[new RegExp(\"$\",\"gi\"),\"s\"]]),g(this,\"singularRules\",[[new RegExp(\"(m)en$\",\"gi\"),\"$1an\"],[new RegExp(\"(pe)ople$\",\"gi\"),\"$1rson\"],[new RegExp(\"(child)ren$\",\"gi\"),\"$1\"],[new RegExp(\"([ti])a$\",\"gi\"),\"$1um\"],[new RegExp(\"((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$\",\"gi\"),\"$1$2sis\"],[new RegExp(\"(hive)s$\",\"gi\"),\"$1\"],[new RegExp(\"(tive)s$\",\"gi\"),\"$1\"],[new RegExp(\"(curve)s$\",\"gi\"),\"$1\"],[new RegExp(\"([lr])ves$\",\"gi\"),\"$1f\"],[new RegExp(\"([^fo])ves$\",\"gi\"),\"$1fe\"],[new RegExp(\"([^aeiouy]|qu)ies$\",\"gi\"),\"$1y\"],[new RegExp(\"(s)eries$\",\"gi\"),\"$1eries\"],[new RegExp(\"(m)ovies$\",\"gi\"),\"$1ovie\"],[new RegExp(\"(x|ch|ss|sh)es$\",\"gi\"),\"$1\"],[new RegExp(\"([m|l])ice$\",\"gi\"),\"$1ouse\"],[new RegExp(\"(bus)es$\",\"gi\"),\"$1\"],[new RegExp(\"(o)es$\",\"gi\"),\"$1\"],[new RegExp(\"(shoe)s$\",\"gi\"),\"$1\"],[new RegExp(\"(cris|ax|test)es$\",\"gi\"),\"$1is\"],[new RegExp(\"(octop|vir)i$\",\"gi\"),\"$1us\"],[new RegExp(\"(alias|status)es$\",\"gi\"),\"$1\"],[new RegExp(\"^(ox)en\",\"gi\"),\"$1\"],[new RegExp(\"(vert|ind)ices$\",\"gi\"),\"$1ex\"],[new RegExp(\"(matr)ices$\",\"gi\"),\"$1ix\"],[new RegExp(\"(quiz)zes$\",\"gi\"),\"$1\"],[new RegExp(\"s$\",\"gi\"),\"\"]]),g(this,\"nonTitlecasedWords\",[\"and\",\"or\",\"nor\",\"a\",\"an\",\"the\",\"so\",\"but\",\"to\",\"of\",\"at\",\"by\",\"from\",\"into\",\"on\",\"onto\",\"off\",\"out\",\"in\",\"over\",\"with\",\"for\"]),g(this,\"idSuffix\",new RegExp(\"(_ids|_id)$\",\"g\")),g(this,\"underbar\",new RegExp(\"_\",\"g\")),g(this,\"spaceOrUnderbar\",new RegExp(\"[ _]\",\"g\")),g(this,\"uppercase\",new RegExp(\"([A-Z])\",\"g\")),g(this,\"underbarPrefix\",new RegExp(\"^_\")),this.str=e,this.chain=n}return v(t,[{key:\"get\",value:function(){return this.str}},{key:\"applyRules\",value:function(t,e,n,r){if(r)t=r;else if(!(n.indexOf(t.toLowerCase())>-1))for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:null;return t=t||this.str,this.applyRules(t,this.pluralRules,this.uncountableWords,e)}},{key:\"singularize\",value:function(t,e){return t=t||this.str,this.applyRules(t,this.singularRules,this.uncountableWords,e)}},{key:\"camelize\",value:function(t,e){for(var n=(t=t||this.str).split(\"/\"),r=0;r1&&void 0!==arguments[1]&&arguments[1];return t=t||this.str,t=this.underscore(this.demodulize(t))+(e?\"\":\"_\")+\"id\",this.str=t,!0===this.chain?this:t}},{key:\"ordinalize\",value:function(t){for(var e=(t=t||this.str).split(\" \"),n=0;n2?i-2:0),a=2;a2?n-2:0),i=2;i2?n-2:0),i=2;i2?n-2:0),i=2;i1?e-1:0),r=1;r3&&void 0!==arguments[3]?arguments[3]:[];if(V(t))if(r.length<=X)t.splice.apply(t,[e,n].concat(S(r)));else{t.splice(e,n);for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:0,r=t.length,i=n;i2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3?arguments[3]:void 0,i=t.length;return n<0&&(n+=i),nt(t,r&&e!=e?function(t){return t!=t}:function(t){return t===e},n)}function it(t,e,n){return Q(t,e,0,[n]),n}function ot(){return f(at,Array.prototype.slice.call(arguments))}var at=function(){function t(){return h(this,t),r(V(arguments[0])?l(this,t,S(arguments[0])):l(this,t,arguments))}return b(t,L(Array)),v(t,[{key:\"notEmpty\",get:function(){return this.length>0}},{key:\"empty\",get:function(){return 0===this.length}},{key:\"first\",get:function(){return tt(this,0)}},{key:\"last\",get:function(){return tt(this,this.length-1)}},{key:\"replace\",value:function(t,e){return Q(this,t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:[]),this}},{key:\"objectsAt\",value:function(t){var e=this;return t.map((function(t){return tt(e,t)}))}},{key:\"objectAt\",value:function(t){return tt(this,t)}},{key:\"indexOf\",value:function(t,e){return rt(this,t,e,!1)}},{key:\"lastIndexOf\",value:function(t,e){var n=this.length;(void 0===e||e>=n)&&(e=n-1),e<0&&(e+=n);for(var r=e;r>=0;r--)if(tt(this,r)===t)return r;return-1}},{key:\"includes\",value:function(t,e){return-1!==rt(this,t,e,!0)}},{key:\"findBy\",value:function(){return t=this,e=et.apply(void 0,arguments),-1===(r=nt(t,e.bind(n),0))?void 0:tt(t,r);var t,e,n,r}},{key:\"findIndexBy\",value:function(){return nt(this,et.apply(void 0,arguments))}},{key:\"isEvery\",value:function(){return t=this,e=et.apply(void 0,arguments),r=e.bind(n),-1===nt(t,(function(t,e,n){return!r(t,e,n)}),0);var t,e,n,r}},{key:\"isAny\",value:function(){return t=this,e=et.apply(void 0,arguments),-1!==nt(t,e.bind(n),0);var t,e,n}},{key:\"invoke\",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:Y,n=[],r=new Set,i=\"function\"==typeof e?e:function(t){return get(t,e)};return t.forEach((function(t){var e=i(t);r.has(e)||(r.add(e),n.push(t))})),n}(this,t)}},{key:\"without\",value:function(t){if(!this.includes(t))return this;var e=t==t?function(e){return e!==t}:function(t){return t==t};return this.filter(e)}},{key:\"clear\",value:function(){var t=this.length;return 0===t||this.replace(0,t,[]),this}},{key:\"insertAt\",value:function(t,e){return it(this,t,e),this}},{key:\"replaceAt\",value:function(t,e){return this.replace(t,1,[e])}},{key:\"removeAt\",value:function(t,e){return function(t,e){return Q(t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,[]),t}(this,t,e)}},{key:\"pushObject\",value:function(t){return this.insertAt(this.length,t)}},{key:\"pushObjects\",value:function(t){return this.replace(this.length,0,t),this}},{key:\"popObject\",value:function(){var t=this.length;if(0===t)return null;var e=tt(this,t-1);return this.removeAt(t-1,1),e}},{key:\"shiftObject\",value:function(){if(0===this.length)return null;var t=tt(this,0);return this.removeAt(0),t}},{key:\"unshiftObject\",value:function(t){return it(this,0,t)}},{key:\"unshiftObjects\",value:function(t){return this.replace(0,0,t),this}},{key:\"reverseObjects\",value:function(){var t=this.length;if(0===t)return this;var e=this.toArray().reverse();return this.replace(0,t,e),this}},{key:\"setObjects\",value:function(t){if(0===t.length)return this.clear();var e=this.length;return this.replace(0,e,t),this}},{key:\"removeObject\",value:function(t){for(var e=this.length||0;--e>=0;){tt(this,e)===t&&this.removeAt(e)}return this}},{key:\"removeObjects\",value:function(t){for(var e=t.length-1;e>=0;e--)this.removeObject(t[e]);return this}},{key:\"addObject\",value:function(t){return this.includes(t)||this.pushObject(t),this}},{key:\"addObjects\",value:function(t){var e=this;return t.forEach((function(t){return e.addObject(t)})),this}}])}();function st(t){var e=null==t;if(e)return e;if(\"number\"==typeof t.size)return!t.size;var n=T(t);if(\"object\"===n){var r=t.size;if(\"number\"==typeof r)return!r}if(\"number\"==typeof t.length&&\"function\"!==n)return!t.length;if(\"object\"===n){var i=t.length;if(\"number\"==typeof i)return!i}return!1}function ut(t){return isFinite(t)&&Math.abs(t)<=90}function ct(t){return isFinite(t)&&Math.abs(t)<=180&&Math.abs(t)>=90}function lt(){var t,e,n;return!(\"undefined\"==typeof process||\"object\"!==T(null===(t=process)||void 0===t?void 0:t.env)&&-1===(null===(e=process.release)||void 0===e||null===(e=e.name)||void 0===e?void 0:e.search(/node|io.js/))||\"undefined\"!=typeof window&&\"ReactNative\"!==(null===(n=window)||void 0===n||null===(n=n.navigator)||void 0===n?void 0:n.product))}function ht(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return lt()?W(\"adapter\",\"NodeAdapter\",t):W(\"adapter\",\"BrowserAdapter\",t)}var ft=function(){return v((function t(e){h(this,t),this.place=e,this.geometry=null==e?void 0:e.geometry,this.components=this.parseComponents(),this.attributes=this.parseProperties()}),[{key:\"parse\",value:function(){this.parseComponents(),this.parseProperties()}},{key:\"parseComponents\",value:function(){var t;return((null===(t=this.place)||void 0===t?void 0:t.address_components)||[]).reduce((function(t,e){return e.types.forEach((function(n){t[n]=e})),t}),{})}},{key:\"parseProperties\",value:function(){var t,e={streetNumber:this.get(\"street_number\"),streetName:this.get(\"route\"),coordinates:null!==(t=this.geometry)&&void 0!==t&&t.location?Object.values(this.geometry.location):[0,0],city:this.or([\"locality\",\"sublocality\",\"sublocality_level_1\",\"neighborhood\",\"administrative_area_level_3\",\"administrative_area_level_2\"]),county:this.get(\"administrative_area_level_2\"),stateShort:this.get(\"administrative_area_level_1\",!0),stateLong:this.get(\"administrative_area_level_1\"),countryShort:this.get(\"country\",!0),country:this.get(\"country\",!0),countryLong:this.get(\"country\"),postalCode:this.get(\"postal_code\")};return e.address=[e.streetNumber,e.streetName].filter(Boolean).join(\" \"),e}},{key:\"all\",value:function(){return this.attributes}},{key:\"or\",value:function(){var t,e=p(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]);try{for(e.s();!(t=e.n()).done;){var n=t.value;if(V(n)){var r=n[0],i=n[1];if(this.has(r))return this.get(r,i)}else if(this.has(n))return this.get(n)}}catch(t){e.e(t)}finally{e.f()}return null}},{key:\"has\",value:function(t){return t in this.components}},{key:\"get\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t in this.components?e?this.components[t].short_name:this.components[t].long_name:null}},{key:\"setAttributes\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.attributes=A(A({},this.attributes),t),this}},{key:\"setAttribute\",value:function(t,e){return this.attributes[t]=e,this}},{key:\"getAttribute\",value:function(t){return this.attributes[t]||null}}])}(),dt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;h(this,t),this.type=\"Point\",this.coordinates=[n,e]}return v(t,[{key:\"latitude\",get:function(){return this.coordinates[1]}},{key:\"longitude\",get:function(){return this.coordinates[0]}},{key:\"lat\",value:function(){return this.latitude}},{key:\"lng\",value:function(){return this.longitude}},{key:\"serialize\",value:function(){return{type:\"Point\",coorindates:[this.lat(),this.lng()]}}},{key:\"toJson\",value:function(){return this.serialize()}},{key:\"toString\",value:function(){return\"(\".concat(this.latitude,\", \").concat(this.longitude,\")\")}}],[{key:\"fromGeoJson\",value:function(e){var n=R(e.coordinates,2),r=n[0];return new t(n[1],r)}}])}();function vt(t,e){var n=t();return Array.isArray(n)||\"object\"===T(n)?pt(n,e):null}function pt(t,e){var n,r=t,i=T(t),o=\"object\"===i,a=\"function\"===i,s=Array.isArray(t),u=\"string\"===T(e)&&e.includes(\".\")?e.split(\".\"):[e];if(s||o){for(var c=0;c1&&void 0!==arguments[1]?arguments[1]:[];if(t.actions=V(e)?e:[e],!V(e))return e instanceof mt&&e.extend(t),t;var n,r=p(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;t.extendActions(i)}}catch(t){r.e(t)}finally{r.f()}}function bt(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;h(this,t),this.actions=e,this.bind=n}),[{key:\"extend\",value:function(){var t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||this.bind;if(!t)return this;if(null!=this&&this.actions&&\"object\"===T(this.actions))for(var e in this.actions){var n=this.actions[e];\"function\"==typeof n?gt(t,e,n.bind(t)):gt(t,e,n)}return this}}])}();function wt(t){return t instanceof kt}var kt=function(){return v((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};h(this,t),this.attributes=e,this.dirtyAttributes={},this.changes={},this.isLoading=!1,this.isSaving=!1,this.isDestroying=!1,this.isReloading=!1,this.resource=r,this.options=i,this.version=i.version||\"v1\",this.setAdapter(n)}),[{key:\"setAdapter\",value:function(t){var e;return this.adapter=t,this.store=M(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:\"id\",get:function(){return this.getAttribute(\"id\")}},{key:\"create\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.mergeAttributes(e);return this.setFlags([\"isLoading\",\"isSaving\"]),this.store.create(n).then((function(e){return t.setFlags([\"isLoading\",\"isSaving\"],!1),e}))}},{key:\"update\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setFlags([\"isLoading\",\"isSaving\"]),this.store.update(this.attributes.id,e).then((function(e){return t.setFlags([\"isLoading\",\"isSaving\"],!1),e}))}},{key:\"destroy\",value:function(){var t=this;return this.setFlags([\"isLoading\",\"isDestroying\"]),this.store.destroy(this.attributes.id).then((function(e){return t.setFlags([\"isLoading\",\"isDestroying\"],!1),e}))}},{key:\"reload\",value:function(){var t=this;return this.setFlags([\"isLoading\",\"isReloading\"]),this.store.findRecord(this.attributes.id).then((function(e){return t.reset(),e}))}},{key:\"setFlags\",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=[\"isLoading\",\"isSaving\",\"isReloading\",\"isDestroying\"],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=this.getAttributes();return st(this.id)?this.create(e):!0===t.onlyDirty?this.savedirty():this.update(e)}},{key:\"saveDirty\",value:function(){for(var t=Object.keys(this.dirtyAttributes),e={},n=0;n0}},{key:\"mutate\",value:function(t,e){this.attributes[t]=e}},{key:\"setAttribute\",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null===n&&\"object\"===T(t))return this.setAttributes(t);var r=null!==(e=null==this?void 0:this.attributes[t])&&void 0!==e?e:null;return gt(this.attributes,t,n),gt(this.dirtyAttributes,t,r),V(null==this?void 0:this.changes[t])||(this.changes[t]=[]),this.changes[t].push({property:t,previousValue:r,value:n,changedAt:new Date}),this}},{key:\"setAttributes\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var e in t)this.setAttribute(e,t[e]);return this}},{key:\"getAttribute\",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=pt(null!==(e=null==this?void 0:this.attributes)&&void 0!==e?e:{},t);return void 0===r?n:r}},{key:\"hasAttribute\",value:function(t){if(V(t)){var e,n=t,r=Object.keys(null!==(e=this.attributes)&&void 0!==e?e:{});return n.every((function(t){return r.includes(t)}))}return!(null==this||!this.attributes)&&t in this.attributes}},{key:\"hasAttributes\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.hasAttribute(t)}},{key:\"isAttributeFilled\",value:function(t){var e=this;return V(t)?this.hasAttribute(t)&&t.every((function(t){return!st(e.getAttribute(t))})):this.hasAttribute(t)&&!st(this.getAttribute(t))}},{key:\"getAttributes\",value:function(t){var e={};if(null==t)return this.getAttributes(Object.keys(this.attributes));if(\"string\"==typeof t)return this.getAttribute(Array.prototype.slice.call(arguments));if(!V(t))throw new Error(\"No attribute properties provided!\");var n,r=p(t);try{for(r.s();!(n=r.n()).done;){var i,o,a=n.value;if(\"string\"==typeof a){var s=this.getAttribute(a);\"object\"!==T(null===(i=s)||void 0===i?void 0:i.attributes)||V(null===(o=s)||void 0===o?void 0:o.attributes)||(s=s.attributes),e[a]=s}}}catch(t){r.e(t)}finally{r.f()}return e}},{key:\"serialize\",value:function(){return this.getAttributes()}},{key:\"mergeAttributes\",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=null!==(t=null==this?void 0:this.attributes)&&void 0!==t?t:{};return this.attributes=A(A({},n),e),this.attributes}},{key:\"syncAttributes\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attributes=t}}])}();q(\"resource\",\"Resource\",kt);var Et=function(){return v((function t(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};h(this,t),this.resource=e,this.adapter=n||ht(),this.namespace=F(e),this.storage=ot(),this.options=r,this.extendActions(r.actions)}),[{key:\"extendActions\",value:function(){return yt(this,arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])}},{key:\"deposit\",value:function(t){return t}},{key:\"serialize\",value:function(t){return W(\"resource\",B(this.resource),t,this.adapter)}},{key:\"afterFetch\",value:function(t){return function(t,e){if(\"function\"==typeof t.options.onAfterFetch&&t.options.onAfterFetch(e),V(e)){var n,r=[],i=p(e);try{for(i.s();!(n=i.n()).done;){var o=n.value;r.push(t.afterFetch(o))}}catch(t){i.e(t)}finally{i.f()}return ot.apply(void 0,r)}var a=t.serialize(e);return t.deposit(a)}(this,t)}},{key:\"create\",value:(a=u(x().mark((function t(){var e,n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=4,this.adapter.post(\"\".concat(this.namespace),e,n);case 4:return r=t.sent,t.abrupt(\"return\",this.afterFetch(r));case 6:case\"end\":return t.stop()}}),t,this)}))),function(){return a.apply(this,arguments)})},{key:\"update\",value:(o=u(x().mark((function t(e){var n,r,i,o=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=o.length>1&&void 0!==o[1]?o[1]:{},r=o.length>2&&void 0!==o[2]?o[2]:{},t.next=4,this.adapter.put(\"\".concat(this.namespace,\"/\").concat(e),n,r);case 4:return i=t.sent,t.abrupt(\"return\",this.afterFetch(i));case 6:case\"end\":return t.stop()}}),t,this)}))),function(t){return o.apply(this,arguments)})},{key:\"findRecord\",value:(i=u(x().mark((function t(e){var n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=3,this.adapter.get(\"\".concat(this.namespace,\"/\").concat(e),{},n);case 3:return r=t.sent,t.abrupt(\"return\",this.afterFetch(r));case 5:case\"end\":return t.stop()}}),t,this)}))),function(t){return i.apply(this,arguments)})},{key:\"findAll\",value:(r=u(x().mark((function t(){var e,n,r=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=r.length>0&&void 0!==r[0]?r[0]:{},t.next=3,this.adapter.get(\"\".concat(this.namespace),{},e);case 3:return n=t.sent,t.abrupt(\"return\",this.afterFetch(n));case 5:case\"end\":return t.stop()}}),t,this)}))),function(){return r.apply(this,arguments)})},{key:\"query\",value:(n=u(x().mark((function t(){var e,n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=4,this.adapter.get(\"\".concat(this.namespace),e,n);case 4:return r=t.sent,t.abrupt(\"return\",this.afterFetch(r));case 6:case\"end\":return t.stop()}}),t,this)}))),function(){return n.apply(this,arguments)})},{key:\"queryRecord\",value:(e=u(x().mark((function t(){var e,n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},(e=i.length>0&&void 0!==i[0]?i[0]:{}).single=!0,t.next=5,this.adapter.get(\"\".concat(this.namespace),e,n);case 5:return r=t.sent,t.abrupt(\"return\",this.afterFetch(r));case 7:case\"end\":return t.stop()}}),t,this)}))),function(){return e.apply(this,arguments)})},{key:\"destroy\",value:(t=u(x().mark((function t(e){var n,r,i,o=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=o.length>1&&void 0!==o[1]?o[1]:{},r=wt(e)?e.getAttribute(\"id\"):e,t.next=4,this.adapter.delete(\"\".concat(this.namespace,\"/\").concat(r),{},n);case 4:return i=t.sent,t.abrupt(\"return\",this.afterFetch(i));case 6:case\"end\":return t.stop()}}),t,this)}))),function(e){return t.apply(this,arguments)})}]);var t,e,n,r,i,o,a}();q(\"store\",\"Store\",Et);var At=new mt({getDistanceAndTime:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get(\"\".concat(this.namespace,\"/\").concat(t,\"/distance-and-time\"),e,n)},getNextActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get(\"\".concat(this.namespace,\"/\").concat(t,\"/next-activity\"),e,n)},dispatch:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/dispatch\"),e,n).then(this.afterFetch.bind(this))},start:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/start\"),e,n).then(this.afterFetch.bind(this))},updateActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/update-activity\"),e,n).then(this.afterFetch.bind(this))},setDestination:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return wt(e)&&(e=e.id),this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/set-destination/\").concat(e),n,r).then(this.afterFetch.bind(this))},captureQrCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return wt(e)&&(e=e.id),this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/capture-qr\").concat(e?\"/\"+e:\"\"),n,r)},captureSignature:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return wt(e)&&(e=e.id),this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/capture-signature\").concat(e?\"/\"+e:\"\"),n,r)},complete:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/complete\"),e,n).then(this.afterFetch.bind(this))},cancel:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete(\"\".concat(this.namespace,\"/\").concat(t,\"/cancel\"),e,n).then(this.afterFetch.bind(this))}}),xt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"order\",A({actions:At},r)])}return b(t,kt),v(t,[{key:\"getDistanceAndTime\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getDistanceAndTime(this.id,t,e)}},{key:\"dispatch\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.dispatch(this.id,t,e)}},{key:\"start\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.start(this.id,t,e)}},{key:\"setDestination\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.setDestination(this.id,t,e,n)}},{key:\"captureQrCode\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureQrCode(this.id,t,e,n)}},{key:\"captureSignature\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureSignature(this.id,t,e,n)}},{key:\"getNextActivity\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getNextActivity(this.id,t,e)}},{key:\"updateActivity\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.updateActivity(this.id,t,e)}},{key:\"cancel\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.cancel(this.id,t,e)}},{key:\"complete\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.complete(this.id,t,e)}},{key:\"isDispatched\",get:function(){return null!==this.getAttribute(\"dispatched_at\")}},{key:\"isNotDispatched\",get:function(){return null==this.getAttribute(\"dispatched_at\")}},{key:\"isStarted\",get:function(){return null!==this.getAttribute(\"started_at\")}},{key:\"isNotStarted\",get:function(){return null==this.getAttribute(\"started_at\")}},{key:\"isCompleted\",get:function(){return\"completed\"==this.getAttribute(\"status\")}},{key:\"isCanceled\",get:function(){return\"canceled\"==this.getAttribute(\"status\")}},{key:\"isEnroute\",get:function(){return\"driver_enroute\"==this.getAttribute(\"status\")||\"enroute\"===this.getAttribute(\"status\")}},{key:\"isInProgress\",get:function(){return this.isStarted&&!this.isCanceled&&!this.isCompleted}},{key:\"scheduledAt\",get:function(){return this.isAttributeFilled(\"scheduled_at\")?new Date(this.getAttribute(\"scheduled_at\")):null}},{key:\"startedAt\",get:function(){return this.isAttributeFilled(\"started_at\")?new Date(this.getAttribute(\"started_at\")):null}},{key:\"dispatchedAt\",get:function(){return this.isAttributeFilled(\"dispatched_at\")?new Date(this.getAttribute(\"dispatched_at\")):null}},{key:\"status\",get:function(){return this.getAttribute(\"status\")}}])}();q(\"resource\",\"Order\",xt);var Ot=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"payload\",r])}return b(t,kt),v(t,[{key:\"attach\",value:function(t){}},{key:\"entities\",get:function(){var t=this;return new Collection(this.entities.map((function(e){return G(\"Entity\",e,t.adapter)})))}},{key:\"dropoff\",get:function(){return this.dropoff?G(\"Place\",this.dropoff,this.adapter):null}},{key:\"pickup\",get:function(){return this.pickup?G(\"Place\",this.pickup,this.adapter):null}},{key:\"waypoints\",get:function(){var t=this;return new Collection(this.waypoints.map((function(e){return G(\"Waypoint\",e,t.adapter)})))}}])}();q(\"resource\",\"Payload\",Ot);var Rt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"entity\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Entity\",Rt);var St=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"place\",r])}return b(t,kt),v(t,[{key:\"latitude\",get:function(){var t;return null===(t=this.getAttribute(\"location\",new dt))||void 0===t?void 0:t.coordinates[1]}},{key:\"longitude\",get:function(){var t;return null===(t=this.getAttribute(\"location\",new dt))||void 0===t?void 0:t.coordinates[0]}},{key:\"coordinates\",get:function(){return[this.latitude,this.longitude]}},{key:\"setOwner\",value:function(t){return wt(t)&&this.setAttribute(\"owner\",t.id),\"string\"==typeof t&&this.setAttribute(\"owner\",t),this}}],[{key:\"fromGoogleAddress\",value:function(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=R(e.getAttribute(\"coordinates\"),2),o=i[0],a=i[1];return new t({name:null,address:e.getAttribute(\"address\"),location:new dt(o,a),street1:e.getAttribute(\"address\"),street2:null,city:e.getAttribute(\"city\"),province:e.getAttribute(\"stateLong\"),postal_code:e.getAttribute(\"postalCode\"),neighborhood:e.get(\"neighborhood\"),district:e.getAttribute(\"county\"),building:e.get(\"building\"),country:e.getAttribute(\"countryShort\"),phone:null,security_access_code:null},n,r)}}])}();q(\"resource\",\"Place\",St);var jt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"waypoint\",r])}return b(t,St),v(t)}();q(\"resource\",\"Waypoint\",jt);var Tt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"tracking-status\",r])}return b(t,kt),v(t)}();q(\"resource\",\"TrackingStatus\",Tt);var _t=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"vehicle\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Vehicle\",_t);var Pt=new mt({current:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.get(\"\".concat(this.namespace,\"/current\"),t,e)}}),Ct=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"organization\",A({actions:Pt},r)])}return b(t,kt),v(t)}();q(\"resource\",\"Organization\",Ct);var Lt=function(t,e){return V(t)?t.map((function(t){return new Ct(t,e)})):new Ct(t,e)},Nt=new mt({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(function(){return/^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/g.test(arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\")}(t))return this.adapter.post(\"drivers/login-with-sms\",{phone:t});if(!e)throw new Error(\"Login requires password!\");return this.adapter.post(\"drivers/login\",A({identity:t,password:e},n)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"drivers/verify-code\",A({identity:t,code:e},n)).then(this.afterFetch.bind(this))},track:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"drivers/\".concat(t,\"/track\"),e,n).then(this.afterFetch.bind(this))},listOrganizations:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get(\"drivers/\".concat(t,\"/organizations\"),n,r).then((function(t){return Lt(t,e.adapter)}))},switchOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"drivers/\".concat(t,\"/switch-organization\"),n,r).then((function(t){return Lt(t,e.adapter)}))},currentOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get(\"drivers/\".concat(t,\"/current-organization\"),n,r).then((function(t){return Lt(t,e.adapter)}))},retrieve:function(t){return this.findRecord(t)},syncDevice:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"drivers/\".concat(t,\"/register-device\"),e,n)}}),Ft=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"driver\",A({actions:Nt},r)])}return b(t,kt),v(t,[{key:\"token\",get:function(){return this.getAttribute(\"token\")}},{key:\"isOnline\",get:function(){return!0===this.getAttribute(\"online\")}},{key:\"latitude\",get:function(){var t;return null===(t=this.getAttribute(\"location\",new dt))||void 0===t?void 0:t.coordinates[1]}},{key:\"longitude\",get:function(){var t;return null===(t=this.getAttribute(\"location\",new dt))||void 0===t?void 0:t.coordinates[0]}},{key:\"coordinates\",get:function(){return[this.latitude,this.longitude]}},{key:\"track\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.track(this.id,t,e)}},{key:\"syncDevice\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.syncDevice(this.id,t,e)}},{key:\"listOrganizations\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.listOrganizations(this.id,t,e)}},{key:\"switchOrganization\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.switchOrganization(this.id,{next:t},e)}},{key:\"currentOrganization\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.currentOrganization(this.id,t,e)}}])}();q(\"resource\",\"Driver\",Ft);var Dt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"vendor\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Vendor\",Dt);var $t=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"contact\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Contact\",$t);var Ut=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"zone\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Zone\",Ut);var Bt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"service-area\",r])}return b(t,kt),v(t)}();q(\"resource\",\"ServiceArea\",Bt);var zt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"service-rate\",r])}return b(t,kt),v(t)}();q(\"resource\",\"ServiceRate\",zt);var qt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"service-quote\",r])}return b(t,kt),v(t,[{key:\"fromPreliminary\",value:function(){}},{key:\"fromPayload\",value:function(){}}])}();q(\"resource\",\"ServiceQuote\",qt);var It=v((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};h(this,t),this.version=e.version||\"v1\",this.host=e.host||null,this.namespace=e.namespace||null,this.headers=e.headers||{}}));q(\"adapter\",\"Adapter\",It);var Mt=function(){function t(e){var n;return h(this,t),(n=l(this,t,[e])).setHeaders({Authorization:\"Bearer \".concat(e.publicKey),\"Content-Type\":\"application/json\",\"User-Agent\":\"@fleetbase/sdk;browser\"}),n}return b(t,It),v(t,[{key:\"setHeaders\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.headers=A(A({},this.headers),t),this}},{key:\"parseJSON\",value:function(t){return new Promise((function(e,n){t.json().then((function(n){e({statusText:t.statusText,status:t.status,ok:t.ok,json:n})})).catch((function(){n(new Error(\"Oops! Something went wrong when handling your request.\"))}))}))}},{key:\"request\",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"GET\",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new Promise((function(o,a){fetch(i.url||\"\".concat(e.host,\"/\").concat(e.namespace,\"/\").concat(t),A({method:n,mode:i.mode||\"cors\",headers:new Headers(A(A({},e.headers||{}),i.headers||{}))},r)).then(e.parseJSON).then((function(t){if(t.ok)return o(t.json);a(new Error(t.json.errors?t.json.errors[0]:t.statusText))})).catch((function(t){a(t)}))}))}},{key:\"get\",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=st(e=n)||\"string\"==typeof e&&!1===/\\S/.test(e)?\"\":new URLSearchParams(n).toString();return this.request(\"\".concat(t).concat(i?\"?\".concat(i):\"\"),\"GET\",{},r)}},{key:\"post\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,\"POST\",{body:JSON.stringify(e)},n)}},{key:\"put\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,\"PUT\",{body:JSON.stringify(e)},n)}},{key:\"delete\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(t,\"DELETE\",{},e)}},{key:\"patch\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,\"PATCH\",{body:JSON.stringify(e)},n)}}])}();function Ht(t,e){return function(){return t.apply(e,arguments)}}q(\"adapter\",\"BrowserAdapter\",Mt);var Jt,Wt=Object.prototype.toString,Kt=Object.getPrototypeOf,Gt=(Jt=Object.create(null),function(t){var e=Wt.call(t);return Jt[e]||(Jt[e]=e.slice(8,-1).toLowerCase())}),Vt=function(t){return t=t.toLowerCase(),function(e){return Gt(e)===t}},Xt=function(t){return function(e){return T(e)===t}},Qt=Array.isArray,Yt=Xt(\"undefined\");var Zt=Vt(\"ArrayBuffer\");var te=Xt(\"string\"),ee=Xt(\"function\"),ne=Xt(\"number\"),re=function(t){return null!==t&&\"object\"===T(t)},ie=function(t){if(\"object\"!==Gt(t))return!1;var e=Kt(t);return!(null!==e&&e!==Object.prototype&&null!==Object.getPrototypeOf(e)||Symbol.toStringTag in t||Symbol.iterator in t)},oe=Vt(\"Date\"),ae=Vt(\"File\"),se=Vt(\"Blob\"),ue=Vt(\"FileList\"),ce=Vt(\"URLSearchParams\"),le=R([\"ReadableStream\",\"Request\",\"Response\",\"Headers\"].map(Vt),4),he=le[0],fe=le[1],de=le[2],ve=le[3];function pe(t,e){var n,r,i=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).allOwnKeys,o=void 0!==i&&i;if(null!=t)if(\"object\"!==T(t)&&(t=[t]),Qt(t))for(n=0,r=t.length;n0;)if(e===(n=r[i]).toLowerCase())return n;return null}var ye=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:global,be=function(t){return!Yt(t)&&t!==ye};var me,we=(me=\"undefined\"!=typeof Uint8Array&&Kt(Uint8Array),function(t){return me&&t instanceof me}),ke=Vt(\"HTMLFormElement\"),Ee=function(){var t=Object.prototype.hasOwnProperty;return function(e,n){return t.call(e,n)}}(),Ae=Vt(\"RegExp\"),xe=function(t,e){var n=Object.getOwnPropertyDescriptors(t),r={};pe(n,(function(n,i){var o;!1!==(o=e(n,i,t))&&(r[i]=o||n)})),Object.defineProperties(t,r)},Oe=\"abcdefghijklmnopqrstuvwxyz\",Re=\"0123456789\",Se={DIGIT:Re,ALPHA:Oe,ALPHA_DIGIT:Oe+Oe.toUpperCase()+Re};var je,Te,_e,Pe,Ce=Vt(\"AsyncFunction\"),Le=(je=\"function\"==typeof setImmediate,Te=ee(ye.postMessage),je?setImmediate:Te?(_e=\"axios@\".concat(Math.random()),Pe=[],ye.addEventListener(\"message\",(function(t){var e=t.source,n=t.data;e===ye&&n===_e&&Pe.length&&Pe.shift()()}),!1),function(t){Pe.push(t),ye.postMessage(_e,\"*\")}):function(t){return setTimeout(t)}),Ne=\"undefined\"!=typeof queueMicrotask?queueMicrotask.bind(ye):\"undefined\"!=typeof process&&process.nextTick||Le,Fe={isArray:Qt,isArrayBuffer:Zt,isBuffer:function(t){return null!==t&&!Yt(t)&&null!==t.constructor&&!Yt(t.constructor)&&ee(t.constructor.isBuffer)&&t.constructor.isBuffer(t)},isFormData:function(t){var e;return t&&(\"function\"==typeof FormData&&t instanceof FormData||ee(t.append)&&(\"formdata\"===(e=Gt(t))||\"object\"===e&&ee(t.toString)&&\"[object FormData]\"===t.toString()))},isArrayBufferView:function(t){return\"undefined\"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&Zt(t.buffer)},isString:te,isNumber:ne,isBoolean:function(t){return!0===t||!1===t},isObject:re,isPlainObject:ie,isReadableStream:he,isRequest:fe,isResponse:de,isHeaders:ve,isUndefined:Yt,isDate:oe,isFile:ae,isBlob:se,isRegExp:Ae,isFunction:ee,isStream:function(t){return re(t)&&ee(t.pipe)},isURLSearchParams:ce,isTypedArray:we,isFileList:ue,forEach:pe,merge:function t(){for(var e=(be(this)&&this||{}).caseless,n={},r=function(r,i){var o=e&&ge(n,i)||i;ie(n[o])&&ie(r)?n[o]=t(n[o],r):ie(r)?n[o]=t({},r):Qt(r)?n[o]=r.slice():n[o]=r},i=0,o=arguments.length;i3&&void 0!==arguments[3]?arguments[3]:{}).allOwnKeys}),t},trim:function(t){return t.trim?t.trim():t.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\"\")},stripBOM:function(t){return 65279===t.charCodeAt(0)&&(t=t.slice(1)),t},inherits:function(t,e,n,r){t.prototype=Object.create(e.prototype,r),t.prototype.constructor=t,Object.defineProperty(t,\"super\",{value:e.prototype}),n&&Object.assign(t.prototype,n)},toFlatObject:function(t,e,n,r){var i,o,a,s={};if(e=e||{},null==t)return e;do{for(o=(i=Object.getOwnPropertyNames(t)).length;o-- >0;)a=i[o],r&&!r(a,t,e)||s[a]||(e[a]=t[a],s[a]=!0);t=!1!==n&&Kt(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},kindOf:Gt,kindOfTest:Vt,endsWith:function(t,e,n){t=String(t),(void 0===n||n>t.length)&&(n=t.length),n-=e.length;var r=t.indexOf(e,n);return-1!==r&&r===n},toArray:function(t){if(!t)return null;if(Qt(t))return t;var e=t.length;if(!ne(e))return null;for(var n=new Array(e);e-- >0;)n[e]=t[e];return n},forEachEntry:function(t,e){for(var n,r=(t&&t[Symbol.iterator]).call(t);(n=r.next())&&!n.done;){var i=n.value;e.call(t,i[0],i[1])}},matchAll:function(t,e){for(var n,r=[];null!==(n=t.exec(e));)r.push(n);return r},isHTMLForm:ke,hasOwnProperty:Ee,hasOwnProp:Ee,reduceDescriptors:xe,freezeMethods:function(t){xe(t,(function(e,n){if(ee(t)&&-1!==[\"arguments\",\"caller\",\"callee\"].indexOf(n))return!1;var r=t[n];ee(r)&&(e.enumerable=!1,\"writable\"in e?e.writable=!1:e.set||(e.set=function(){throw Error(\"Can not rewrite read-only method '\"+n+\"'\")}))}))},toObjectSet:function(t,e){var n={},r=function(t){t.forEach((function(t){n[t]=!0}))};return Qt(t)?r(t):r(String(t).split(e)),n},toCamelCase:function(t){return t.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,(function(t,e,n){return e.toUpperCase()+n}))},noop:function(){},toFiniteNumber:function(t,e){return null!=t&&Number.isFinite(t=+t)?t:e},findKey:ge,global:ye,isContextDefined:be,ALPHABET:Se,generateString:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Se.ALPHA_DIGIT,n=\"\",r=e.length;t--;)n+=e[Math.random()*r|0];return n},isSpecCompliantForm:function(t){return!!(t&&ee(t.append)&&\"FormData\"===t[Symbol.toStringTag]&&t[Symbol.iterator])},toJSONObject:function(t){var e=new Array(10),n=function(t,r){if(re(t)){if(e.indexOf(t)>=0)return;if(!(\"toJSON\"in t)){e[r]=t;var i=Qt(t)?[]:{};return pe(t,(function(t,e){var o=n(t,r+1);!Yt(o)&&(i[e]=o)})),e[r]=void 0,i}}return t};return n(t,0)},isAsyncFn:Ce,isThenable:function(t){return t&&(re(t)||ee(t))&&ee(t.then)&&ee(t.catch)},setImmediate:Le,asap:Ne};function De(t,e,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=t,this.name=\"AxiosError\",e&&(this.code=e),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status?i.status:null)}Fe.inherits(De,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Fe.toJSONObject(this.config),code:this.code,status:this.status}}});var $e=De.prototype,Ue={};[\"ERR_BAD_OPTION_VALUE\",\"ERR_BAD_OPTION\",\"ECONNABORTED\",\"ETIMEDOUT\",\"ERR_NETWORK\",\"ERR_FR_TOO_MANY_REDIRECTS\",\"ERR_DEPRECATED\",\"ERR_BAD_RESPONSE\",\"ERR_BAD_REQUEST\",\"ERR_CANCELED\",\"ERR_NOT_SUPPORT\",\"ERR_INVALID_URL\"].forEach((function(t){Ue[t]={value:t}})),Object.defineProperties(De,Ue),Object.defineProperty($e,\"isAxiosError\",{value:!0}),De.from=function(t,e,n,r,i,o){var a=Object.create($e);return Fe.toFlatObject(t,a,(function(t){return t!==Error.prototype}),(function(t){return\"isAxiosError\"!==t})),De.call(a,t.message,e,n,r,i),a.cause=t,a.name=t.name,o&&Object.assign(a,o),a};function Be(t){return Fe.isPlainObject(t)||Fe.isArray(t)}function ze(t){return Fe.endsWith(t,\"[]\")?t.slice(0,-2):t}function qe(t,e,n){return t?t.concat(e).map((function(t,e){return t=ze(t),!n&&e?\"[\"+t+\"]\":t})).join(n?\".\":\"\"):e}var Ie=Fe.toFlatObject(Fe,{},null,(function(t){return/^is[A-Z]/.test(t)}));function Me(t,e,n){if(!Fe.isObject(t))throw new TypeError(\"target must be an object\");e=e||new FormData;var r=(n=Fe.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(t,e){return!Fe.isUndefined(e[t])}))).metaTokens,i=n.visitor||c,o=n.dots,a=n.indexes,s=(n.Blob||\"undefined\"!=typeof Blob&&Blob)&&Fe.isSpecCompliantForm(e);if(!Fe.isFunction(i))throw new TypeError(\"visitor must be a function\");function u(t){if(null===t)return\"\";if(Fe.isDate(t))return t.toISOString();if(!s&&Fe.isBlob(t))throw new De(\"Blob is not supported. Use a Buffer instead.\");return Fe.isArrayBuffer(t)||Fe.isTypedArray(t)?s&&\"function\"==typeof Blob?new Blob([t]):Buffer.from(t):t}function c(t,n,i){var s=t;if(t&&!i&&\"object\"===T(t))if(Fe.endsWith(n,\"{}\"))n=r?n:n.slice(0,-2),t=JSON.stringify(t);else if(Fe.isArray(t)&&function(t){return Fe.isArray(t)&&!t.some(Be)}(t)||(Fe.isFileList(t)||Fe.endsWith(n,\"[]\"))&&(s=Fe.toArray(t)))return n=ze(n),s.forEach((function(t,r){!Fe.isUndefined(t)&&null!==t&&e.append(!0===a?qe([n],r,o):null===a?n:n+\"[]\",u(t))})),!1;return!!Be(t)||(e.append(qe(i,n,o),u(t)),!1)}var l=[],h=Object.assign(Ie,{defaultVisitor:c,convertValue:u,isVisitable:Be});if(!Fe.isObject(t))throw new TypeError(\"data must be an object\");return function t(n,r){if(!Fe.isUndefined(n)){if(-1!==l.indexOf(n))throw Error(\"Circular reference detected in \"+r.join(\".\"));l.push(n),Fe.forEach(n,(function(n,o){!0===(!(Fe.isUndefined(n)||null===n)&&i.call(e,n,Fe.isString(o)?o.trim():o,r,h))&&t(n,r?r.concat(o):[o])})),l.pop()}}(t),e}function He(t){var e={\"!\":\"%21\",\"'\":\"%27\",\"(\":\"%28\",\")\":\"%29\",\"~\":\"%7E\",\"%20\":\"+\",\"%00\":\"\\0\"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,(function(t){return e[t]}))}function Je(t,e){this._pairs=[],t&&Me(t,this,e)}var We=Je.prototype;function Ke(t){return encodeURIComponent(t).replace(/%3A/gi,\":\").replace(/%24/g,\"$\").replace(/%2C/gi,\",\").replace(/%20/g,\"+\").replace(/%5B/gi,\"[\").replace(/%5D/gi,\"]\")}function Ge(t,e,n){if(!e)return t;var r=n&&n.encode||Ke;Fe.isFunction(n)&&(n={serialize:n});var i,o=n&&n.serialize;if(i=o?o(e,n):Fe.isURLSearchParams(e)?e.toString():new Je(e,n).toString(r)){var a=t.indexOf(\"#\");-1!==a&&(t=t.slice(0,a)),t+=(-1===t.indexOf(\"?\")?\"?\":\"&\")+i}return t}We.append=function(t,e){this._pairs.push([t,e])},We.toString=function(t){var e=t?function(e){return t.call(this,e,He)}:He;return this._pairs.map((function(t){return e(t[0])+\"=\"+e(t[1])}),\"\").join(\"&\")};var Ve=function(){return v((function t(){h(this,t),this.handlers=[]}),[{key:\"use\",value:function(t,e,n){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}},{key:\"eject\",value:function(t){this.handlers[t]&&(this.handlers[t]=null)}},{key:\"clear\",value:function(){this.handlers&&(this.handlers=[])}},{key:\"forEach\",value:function(t){Fe.forEach(this.handlers,(function(e){null!==e&&t(e)}))}}])}(),Xe={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Qe={isBrowser:!0,classes:{URLSearchParams:\"undefined\"!=typeof URLSearchParams?URLSearchParams:Je,FormData:\"undefined\"!=typeof FormData?FormData:null,Blob:\"undefined\"!=typeof Blob?Blob:null},protocols:[\"http\",\"https\",\"file\",\"blob\",\"url\",\"data\"]},Ye=\"undefined\"!=typeof window&&\"undefined\"!=typeof document,Ze=\"object\"===(\"undefined\"==typeof navigator?\"undefined\":T(navigator))&&navigator||void 0,tn=Ye&&(!Ze||[\"ReactNative\",\"NativeScript\",\"NS\"].indexOf(Ze.product)<0),en=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&\"function\"==typeof self.importScripts,nn=Ye&&window.location.href||\"http://localhost\",rn=A(A({},Object.freeze({__proto__:null,hasBrowserEnv:Ye,hasStandardBrowserEnv:tn,hasStandardBrowserWebWorkerEnv:en,navigator:Ze,origin:nn})),Qe);function on(t){function e(t,n,r,i){var o=t[i++];if(\"__proto__\"===o)return!0;var a=Number.isFinite(+o),s=i>=t.length;return o=!o&&Fe.isArray(r)?r.length:o,s?(Fe.hasOwnProp(r,o)?r[o]=[r[o],n]:r[o]=n,!a):(r[o]&&Fe.isObject(r[o])||(r[o]=[]),e(t,n,r[o],i)&&Fe.isArray(r[o])&&(r[o]=function(t){var e,n,r={},i=Object.keys(t),o=i.length;for(e=0;e-1,o=Fe.isObject(t);if(o&&Fe.isHTMLForm(t)&&(t=new FormData(t)),Fe.isFormData(t))return i?JSON.stringify(on(t)):t;if(Fe.isArrayBuffer(t)||Fe.isBuffer(t)||Fe.isStream(t)||Fe.isFile(t)||Fe.isBlob(t)||Fe.isReadableStream(t))return t;if(Fe.isArrayBufferView(t))return t.buffer;if(Fe.isURLSearchParams(t))return e.setContentType(\"application/x-www-form-urlencoded;charset=utf-8\",!1),t.toString();if(o){if(r.indexOf(\"application/x-www-form-urlencoded\")>-1)return function(t,e){return Me(t,new rn.classes.URLSearchParams,Object.assign({visitor:function(t,e,n,r){return rn.isNode&&Fe.isBuffer(t)?(this.append(e,t.toString(\"base64\")),!1):r.defaultVisitor.apply(this,arguments)}},e))}(t,this.formSerializer).toString();if((n=Fe.isFileList(t))||r.indexOf(\"multipart/form-data\")>-1){var a=this.env&&this.env.FormData;return Me(n?{\"files[]\":t}:t,a&&new a,this.formSerializer)}}return o||i?(e.setContentType(\"application/json\",!1),function(t,e){if(Fe.isString(t))try{return(e||JSON.parse)(t),Fe.trim(t)}catch(t){if(\"SyntaxError\"!==t.name)throw t}return(0,JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){var e=this.transitional||an.transitional,n=e&&e.forcedJSONParsing,r=\"json\"===this.responseType;if(Fe.isResponse(t)||Fe.isReadableStream(t))return t;if(t&&Fe.isString(t)&&(n&&!this.responseType||r)){var i=!(e&&e.silentJSONParsing)&&r;try{return JSON.parse(t)}catch(t){if(i){if(\"SyntaxError\"===t.name)throw De.from(t,De.ERR_BAD_RESPONSE,this,null,this.response);throw t}}}return t}],timeout:0,xsrfCookieName:\"XSRF-TOKEN\",xsrfHeaderName:\"X-XSRF-TOKEN\",maxContentLength:-1,maxBodyLength:-1,env:{FormData:rn.classes.FormData,Blob:rn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:\"application/json, text/plain, */*\",\"Content-Type\":void 0}}};Fe.forEach([\"delete\",\"get\",\"head\",\"post\",\"put\",\"patch\"],(function(t){an.headers[t]={}}));var sn=Fe.toObjectSet([\"age\",\"authorization\",\"content-length\",\"content-type\",\"etag\",\"expires\",\"from\",\"host\",\"if-modified-since\",\"if-unmodified-since\",\"last-modified\",\"location\",\"max-forwards\",\"proxy-authorization\",\"referer\",\"retry-after\",\"user-agent\"]),un=Symbol(\"internals\");function cn(t){return t&&String(t).trim().toLowerCase()}function ln(t){return!1===t||null==t?t:Fe.isArray(t)?t.map(ln):String(t)}function hn(t,e,n,r,i){return Fe.isFunction(r)?r.call(this,e,n):(i&&(e=n),Fe.isString(e)?Fe.isString(r)?-1!==e.indexOf(r):Fe.isRegExp(r)?r.test(e):void 0:void 0)}var fn=function(){return v((function t(e){h(this,t),e&&this.set(e)}),[{key:\"set\",value:function(t,e,n){var r=this;function i(t,e,n){var i=cn(e);if(!i)throw new Error(\"header name must be a non-empty string\");var o=Fe.findKey(r,i);(!o||void 0===r[o]||!0===n||void 0===n&&!1!==r[o])&&(r[o||e]=ln(t))}var o=function(t,e){return Fe.forEach(t,(function(t,n){return i(t,n,e)}))};if(Fe.isPlainObject(t)||t instanceof this.constructor)o(t,e);else if(Fe.isString(t)&&(t=t.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim()))o(function(t){var e,n,r,i={};return t&&t.split(\"\\n\").forEach((function(t){r=t.indexOf(\":\"),e=t.substring(0,r).trim().toLowerCase(),n=t.substring(r+1).trim(),!e||i[e]&&sn[e]||(\"set-cookie\"===e?i[e]?i[e].push(n):i[e]=[n]:i[e]=i[e]?i[e]+\", \"+n:n)})),i}(t),e);else if(Fe.isHeaders(t)){var a,s=p(t.entries());try{for(s.s();!(a=s.n()).done;){var u=R(a.value,2),c=u[0];i(u[1],c,n)}}catch(t){s.e(t)}finally{s.f()}}else null!=t&&i(e,t,n);return this}},{key:\"get\",value:function(t,e){if(t=cn(t)){var n=Fe.findKey(this,t);if(n){var r=this[n];if(!e)return r;if(!0===e)return function(t){for(var e,n=Object.create(null),r=/([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;e=r.exec(t);)n[e[1]]=e[2];return n}(r);if(Fe.isFunction(e))return e.call(this,r,n);if(Fe.isRegExp(e))return e.exec(r);throw new TypeError(\"parser must be boolean|regexp|function\")}}}},{key:\"has\",value:function(t,e){if(t=cn(t)){var n=Fe.findKey(this,t);return!(!n||void 0===this[n]||e&&!hn(0,this[n],n,e))}return!1}},{key:\"delete\",value:function(t,e){var n=this,r=!1;function i(t){if(t=cn(t)){var i=Fe.findKey(n,t);!i||e&&!hn(0,n[i],i,e)||(delete n[i],r=!0)}}return Fe.isArray(t)?t.forEach(i):i(t),r}},{key:\"clear\",value:function(t){for(var e=Object.keys(this),n=e.length,r=!1;n--;){var i=e[n];t&&!hn(0,this[i],i,t,!0)||(delete this[i],r=!0)}return r}},{key:\"normalize\",value:function(t){var e=this,n={};return Fe.forEach(this,(function(r,i){var o=Fe.findKey(n,i);if(o)return e[o]=ln(r),void delete e[i];var a=t?function(t){return t.trim().toLowerCase().replace(/([a-z\\d])(\\w*)/g,(function(t,e,n){return e.toUpperCase()+n}))}(i):String(i).trim();a!==i&&delete e[i],e[a]=ln(r),n[a]=!0})),this}},{key:\"concat\",value:function(){for(var t,e=arguments.length,n=new Array(e),r=0;r1?n-1:0),i=1;i2&&void 0!==arguments[2]?arguments[2]:3,r=0,i=function(t,e){t=t||10;var n,r=new Array(t),i=new Array(t),o=0,a=0;return e=void 0!==e?e:1e3,function(s){var u=Date.now(),c=i[a];n||(n=u),r[o]=s,i[o]=u;for(var l=a,h=0;l!==o;)h+=r[l++],l%=t;if((o=(o+1)%t)===a&&(a=(a+1)%t),!(u-n1&&void 0!==arguments[1]?arguments[1]:Date.now();i=o,n=null,r&&(clearTimeout(r),r=null),t.apply(null,e)};return[function(){for(var t=Date.now(),e=t-i,s=arguments.length,u=new Array(s),c=0;c=o?a(u,t):(n=u,r||(r=setTimeout((function(){r=null,a(n)}),o-e)))},function(){return n&&a(n)}]}((function(n){var o=n.loaded,a=n.lengthComputable?n.total:void 0,s=o-r,u=i(s);r=o;var c=g({loaded:o,total:a,progress:a?o/a:void 0,bytes:s,rate:u||void 0,estimated:u&&a&&o<=a?(a-o)/u:void 0,event:n,lengthComputable:null!=a},e?\"download\":\"upload\",!0);t(c)}),n)},bn=function(t,e){var n=null!=t;return[function(r){return e[0]({lengthComputable:n,total:t,loaded:r})},e[1]]},mn=function(t){return function(){for(var e=arguments.length,n=new Array(e),r=0;r1?e-1:0),r=1;r1?\"since :\\n\"+s.map(Jn).join(\"\\n\"):\" \"+Jn(s[0]):\"as no adapter specified\"),\"ERR_NOT_SUPPORT\")}return n};function Gn(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new pn(null,t)}function Vn(t){return Gn(t),t.headers=fn.from(t.headers),t.data=dn.call(t,t.transformRequest),-1!==[\"post\",\"put\",\"patch\"].indexOf(t.method)&&t.headers.setContentType(\"application/x-www-form-urlencoded\",!1),Kn(t.adapter||an.adapter)(t).then((function(e){return Gn(t),e.data=dn.call(t,t.transformResponse,e),e.headers=fn.from(e.headers),e}),(function(e){return vn(e)||(Gn(t),e&&e.response&&(e.response.data=dn.call(t,t.transformResponse,e.response),e.response.headers=fn.from(e.response.headers))),Promise.reject(e)}))}var Xn=\"1.7.9\",Qn={};[\"object\",\"boolean\",\"number\",\"function\",\"string\",\"symbol\"].forEach((function(t,e){Qn[t]=function(n){return T(n)===t||\"a\"+(e<1?\"n \":\" \")+t}}));var Yn={};Qn.transitional=function(t,e,n){function r(t,e){return\"[Axios v1.7.9] Transitional option '\"+t+\"'\"+e+(n?\". \"+n:\"\")}return function(n,i,o){if(!1===t)throw new De(r(i,\" has been removed\"+(e?\" in \"+e:\"\")),De.ERR_DEPRECATED);return e&&!Yn[i]&&(Yn[i]=!0,console.warn(r(i,\" has been deprecated since v\"+e+\" and will be removed in the near future\"))),!t||t(n,i,o)}},Qn.spelling=function(t){return function(e,n){return console.warn(\"\".concat(n,\" is likely a misspelling of \").concat(t)),!0}};var Zn={assertOptions:function(t,e,n){if(\"object\"!==T(t))throw new De(\"options must be an object\",De.ERR_BAD_OPTION_VALUE);for(var r=Object.keys(t),i=r.length;i-- >0;){var o=r[i],a=e[o];if(a){var s=t[o],u=void 0===s||a(s,o,t);if(!0!==u)throw new De(\"option \"+o+\" must be \"+u,De.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new De(\"Unknown option \"+o,De.ERR_BAD_OPTION)}},validators:Qn},tr=Zn.validators,er=function(){return v((function t(e){h(this,t),this.defaults=e,this.interceptors={request:new Ve,response:new Ve}}),[{key:\"request\",value:(t=u(x().mark((function t(e,n){var r,i;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,this._request(e,n);case 3:return t.abrupt(\"return\",t.sent);case 6:if(t.prev=6,t.t0=t.catch(0),t.t0 instanceof Error){r={},Error.captureStackTrace?Error.captureStackTrace(r):r=new Error,i=r.stack?r.stack.replace(/^.+\\n/,\"\"):\"\";try{t.t0.stack?i&&!String(t.t0.stack).endsWith(i.replace(/^.+\\n.+\\n/,\"\"))&&(t.t0.stack+=\"\\n\"+i):t.t0.stack=i}catch(t){}}throw t.t0;case 10:case\"end\":return t.stop()}}),t,this,[[0,6]])}))),function(e,n){return t.apply(this,arguments)})},{key:\"_request\",value:function(t,e){\"string\"==typeof t?(e=e||{}).url=t:e=t||{};var n=e=xn(this.defaults,e),r=n.transitional,i=n.paramsSerializer,o=n.headers;void 0!==r&&Zn.assertOptions(r,{silentJSONParsing:tr.transitional(tr.boolean),forcedJSONParsing:tr.transitional(tr.boolean),clarifyTimeoutError:tr.transitional(tr.boolean)},!1),null!=i&&(Fe.isFunction(i)?e.paramsSerializer={serialize:i}:Zn.assertOptions(i,{encode:tr.function,serialize:tr.function},!0)),Zn.assertOptions(e,{baseUrl:tr.spelling(\"baseURL\"),withXsrfToken:tr.spelling(\"withXSRFToken\")},!0),e.method=(e.method||this.defaults.method||\"get\").toLowerCase();var a=o&&Fe.merge(o.common,o[e.method]);o&&Fe.forEach([\"delete\",\"get\",\"head\",\"post\",\"put\",\"patch\",\"common\"],(function(t){delete o[t]})),e.headers=fn.concat(a,o);var s=[],u=!0;this.interceptors.request.forEach((function(t){\"function\"==typeof t.runWhen&&!1===t.runWhen(e)||(u=u&&t.synchronous,s.unshift(t.fulfilled,t.rejected))}));var c,l=[];this.interceptors.response.forEach((function(t){l.push(t.fulfilled,t.rejected)}));var h,f=0;if(!u){var d=[Vn.bind(this),void 0];for(d.unshift.apply(d,s),d.push.apply(d,l),h=d.length,c=Promise.resolve(e);f0;)r._listeners[e](t);r._listeners=null}})),this.promise.then=function(t){var e,n=new Promise((function(t){r.subscribe(t),e=t})).then(t);return n.cancel=function(){r.unsubscribe(e)},n},e((function(t,e,i){r.reason||(r.reason=new pn(t,e,i),n(r.reason))}))}return v(t,[{key:\"throwIfRequested\",value:function(){if(this.reason)throw this.reason}},{key:\"subscribe\",value:function(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t]}},{key:\"unsubscribe\",value:function(t){if(this._listeners){var e=this._listeners.indexOf(t);-1!==e&&this._listeners.splice(e,1)}}},{key:\"toAbortSignal\",value:function(){var t=this,e=new AbortController,n=function(t){e.abort(t)};return this.subscribe(n),e.signal.unsubscribe=function(){return t.unsubscribe(n)},e.signal}}],[{key:\"source\",value:function(){var e;return{token:new t((function(t){e=t})),cancel:e}}}])}();var rr={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(rr).forEach((function(t){var e=R(t,2),n=e[0],r=e[1];rr[r]=n}));var ir=function t(e){var n=new er(e),r=Ht(er.prototype.request,n);return Fe.extend(r,er.prototype,n,{allOwnKeys:!0}),Fe.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return t(xn(e,n))},r}(an);ir.Axios=er,ir.CanceledError=pn,ir.CancelToken=nr,ir.isCancel=vn,ir.VERSION=Xn,ir.toFormData=Me,ir.AxiosError=De,ir.Cancel=ir.CanceledError,ir.all=function(t){return Promise.all(t)},ir.spread=function(t){return function(e){return t.apply(null,e)}},ir.isAxiosError=function(t){return Fe.isObject(t)&&!0===t.isAxiosError},ir.mergeConfig=xn,ir.AxiosHeaders=fn,ir.formToJSON=function(t){return on(Fe.isHTMLForm(t)?new FormData(t):t)},ir.getAdapter=Kn,ir.HttpStatusCode=rr,ir.default=ir,ir.Axios,ir.AxiosError,ir.CanceledError,ir.isCancel,ir.CancelToken,ir.VERSION,ir.all,ir.Cancel,ir.isAxiosError,ir.spread,ir.toFormData,ir.AxiosHeaders,ir.HttpStatusCode,ir.formToJSON,ir.getAdapter,ir.mergeConfig;var or=function(){function t(e){var n;return h(this,t),(n=l(this,t,[e])).axiosInstance=ir.create({baseURL:\"\".concat(n.host,\"/\").concat(n.namespace),headers:{Authorization:\"Bearer \".concat(e.publicKey),\"Content-Type\":\"application/json\",\"User-Agent\":\"@fleetbase/sdk;node\"}}),n.axiosInstance.interceptors.response.use((function(t){return t.data}),(function(t){if(t.response){var e=t.response.data;if(V(e.errors)&&e.errors.length)throw new Error(e.errors[0]);if(e.error)throw new Error(e.error)}throw t})),n}return b(t,It),v(t,[{key:\"setHeaders\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.axiosInstance.defaults.headers.common=A(A({},this.axiosInstance.defaults.headers.common),t),this}},{key:\"request\",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axiosInstance.request(A({method:t,url:e},n))}},{key:\"get\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(\"GET\",t,A({params:e},n))}},{key:\"post\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(\"POST\",t,A({data:e},n))}},{key:\"put\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(\"PUT\",t,A({data:e},n))}},{key:\"delete\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(\"DELETE\",t,e)}},{key:\"patch\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(\"PATCH\",t,A({data:e},n))}}])}();q(\"adapter\",\"NodeAdapter\",or);var ar=function(){function t(){return h(this,t),l(this,t,arguments)}return b(t,It),v(t)}();q(\"adapter\",\"EmberJsAdapter\",ar);var sr=function(){function t(e){var n,r,i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(h(this,t),this.version=null!==(n=o.version)&&void 0!==n?n:\"v1\",this.options={version:this.version,host:null!==(r=o.host)&&void 0!==r?r:\"https://api.fleetbase.io\",namespace:null!==(i=o.namespace)&&void 0!==i?i:this.version,debug:a,publicKey:e},\"string\"!=typeof e||0===e.length)throw new Error(\"⚠️ Invalid public key given to Fleetbase SDK\");if(!lt()&&e.toLowerCase().startsWith(\"$\"))throw new Error(\"Secret key provided. You must use a public key with Fleetbase Javascript SDK!\");this.adapter=o.adapter||ht(this.options),this.orders=new Et(\"order\",this.adapter).extendActions(At),this.entities=new Et(\"entity\",this.adapter),this.places=new Et(\"place\",this.adapter),this.drivers=new Et(\"driver\",this.adapter).extendActions(Nt),this.vehicles=new Et(\"vehicle\",this.adapter),this.vendors=new Et(\"vendor\",this.adapter),this.contacts=new Et(\"contact\",this.adapter),this.organizations=new Et(\"organization\",this.adapter).extendActions(Pt)}return v(t,[{key:\"setAdapter\",value:function(t){this.adapter=t}},{key:\"getAdapter\",value:function(){return this.adapter}}],[{key:\"newInstance\",value:function(){return f(t,Array.prototype.slice.call(arguments))}}])}();export{It as Adapter,Mt as BrowserAdapter,at as Collection,$t as Contact,Ft as Driver,ar as EmberJsAdapter,Rt as Entity,ft as GoogleAddress,or as NodeAdapter,xt as Order,Ct as Organization,Ot as Payload,St as Place,dt as Point,J as Resolver,kt as Resource,Bt as ServiceArea,qt as ServiceQuote,zt as ServiceRate,Et as Store,mt as StoreActions,Tt as TrackingStatus,_t as Vehicle,Dt as Vendor,jt as Waypoint,Ut as Zone,$ as camelize,B as classify,ot as createCollection,H as createResource,M as createStore,bt as createStoreActions,U as dasherize,sr as default,ht as detectAdapter,yt as extendStoreActions,ut as isLatitude,ct as isLongitude,lt as isNodeEnvironment,wt as isResource,W as lookup,F as pluralize,q as register,K as resolve,G as resolveResource,D as singularize};\n//# sourceMappingURL=fleetbase.js.map\n","import { Store, classify, extendStoreActions, lookup } from '@fleetbase/sdk';\n\nexport default class StorefrontStore extends Store {\n constructor() {\n super(...arguments);\n }\n\n extendActions(actions = []) {\n return extendStoreActions(this, actions);\n }\n\n serialize(json) {\n return lookup('resource', classify(this.resource), json, this.adapter);\n }\n}\n","export function formatCurrency(amount = 0, currency = 'USD', currencyDisplay = 'symbol') {\n return new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency,\n currencyDisplay,\n }).format(amount);\n}\n\nexport default formatCurrency;\n","export function isEmpty(obj) {\n const none = obj === null || obj === undefined;\n if (none) {\n return none;\n }\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n const objectType = typeof obj;\n\n if (objectType === 'object') {\n const { size } = obj;\n if (typeof size === 'number') {\n return !size;\n }\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\n }\n\n if (objectType === 'object') {\n const { length } = obj;\n if (typeof length === 'number') {\n return !length;\n }\n }\n\n return false;\n}\n\nexport default isEmpty;\n","const { isArray } = Array;\n\nexport { isArray };\n","import { Resource, register } from '@fleetbase/sdk';\nimport StorefrontStore from './store.js';\n\nexport default class StorefrontResource extends Resource {\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new StorefrontStore(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions,\n });\n\n return this;\n }\n}\n\nregister('resource', 'StorefrontResource', StorefrontResource);\n","import Resource from '../resource.js';\nimport { StoreActions, register } from '@fleetbase/sdk';\n\nexport const reviewActions = new StoreActions({\n count: function (storeId, options = {}) {\n const params = {};\n\n if (storeId) {\n params.store = storeId;\n }\n\n return this.adapter.get(`${this.namespace}/count`, params, options);\n },\n});\n\nexport default class Review extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'review', options);\n }\n\n getMedia() {\n // @todo\n }\n\n getPhotos() {\n // @todo\n }\n\n getVideos() {\n // @todo\n }\n}\n\nregister('resource', 'Review', Review);\n","import Resource from '../resource.js';\nimport Review from './review.js';\nimport { formatCurrency, isEmpty } from '../utils/index.js';\nimport { Collection, register } from '@fleetbase/sdk';\n\nexport default class Product extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'product', options);\n }\n\n variants() {\n return this.getAttribute('variants');\n }\n\n addons() {\n return this.getAttribute('addon_categories');\n }\n\n get isOnSale() {\n return this.getAttribute('is_on_sale');\n }\n\n get isNotOnSale() {\n return !this.getAttribute('is_on_sale');\n }\n\n get formattedAmount() {\n const { price, sale_price, currency } = this.getAttributes(['price', 'sale_price', 'currency']);\n\n if (this.isOnSale) {\n if (isEmpty(sale_price) || isEmpty(currency)) {\n return null;\n }\n\n return formatCurrency(sale_price / 100, currency);\n }\n\n if (isEmpty(price) || isEmpty(currency)) {\n return null;\n }\n\n return formatCurrency(price / 100, currency);\n }\n\n getReviews() {\n return this.adapter.get('reviews', { store: this.id }).then((reviews) => {\n return new Collection(reviews.map((attributes) => new Review(attributes, this.adapter)));\n });\n }\n}\n\nregister('resource', 'Product', Product);\n","import Resource from '../resource.js';\nimport Product from './product.js';\nimport { Collection, register } from '@fleetbase/sdk';\n\nexport default class Category extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'category', options);\n }\n\n getProducts() {\n return this.adapter.get('products', { category: this.id }).then((products) => {\n return new Collection(products.map((attributes) => new Product(attributes, this.adapter)));\n });\n }\n}\n\nregister('resource', 'Category', Category);\n","import Resource from '../resource.js';\nimport StorefrontStore from '../store.js';\nimport { Collection, Order, Place, StoreActions, register } from '@fleetbase/sdk';\nimport { isPhone } from '../utils/is-phone.js';\n\nexport const customerActions = new StoreActions({\n // const { error } = await storefront.customers.login('+1 111-1111');\n login: function (identity, password = null, attributes = {}) {\n // handle phone number authentication\n if (isPhone(identity)) {\n return this.adapter.post('customers/login-with-sms', { phone: identity });\n }\n\n if (!password) {\n throw new Error('Login requires password!');\n }\n\n return this.adapter.post('customers/login', { identity, password, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n verifyCode: function (identity, code, attributes = {}) {\n return this.adapter.post('customers/verify-code', { identity, code, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n requestCreationCode(identity, mode = 'email') {\n return this.adapter.post('customers/request-creation-code', {\n identity,\n mode,\n });\n },\n\n create(identity, code, attributes = {}) {\n return this.adapter.post('customers', { identity, code, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n retrieve: function (id) {\n return this.findRecord(id);\n },\n});\n\nexport default class Customer extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'customer', {\n actions: customerActions,\n ...options,\n });\n }\n\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new StorefrontStore(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions,\n });\n\n return this;\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n async syncDevice(token) {\n return this.adapter\n .setHeaders({ 'Customer-Token': this.token })\n .post('customers/register-device', token)\n .then(() => {\n return this;\n });\n }\n\n async performAuthorizedRequest(endpoint, params = {}, method = 'GET') {\n try {\n const headers = { 'Customer-Token': this.token };\n const response = await this.adapter.setHeaders(headers)[method.toLowerCase()](endpoint, params);\n return response;\n } catch (error) {\n console.error(`Error in ${method} request to ${endpoint}:`, error);\n throw error;\n }\n }\n\n async getSavedPlaces() {\n try {\n const places = await this.performAuthorizedRequest('customers/places');\n return new Collection(places.map((attributes) => new Place(attributes, this.adapter)));\n } catch (error) {\n console.error('Failed to retrieve saved places');\n throw error;\n }\n }\n\n async getOrderHistory(params = {}) {\n try {\n const orders = await this.performAuthorizedRequest('customers/orders', params);\n return new Collection(orders.map((attributes) => new Order(attributes, this.adapter)));\n } catch (error) {\n console.error('Failed to retrieve order history');\n throw error;\n }\n }\n\n getStripeEphemeralKey(params = {}) {\n return this.adapter.setHeaders({ 'Customer-Token': this.token }).post('customers/stripe-ephemeral-key', params);\n }\n\n getStripeSetupIntent(params = {}) {\n return this.adapter.setHeaders({ 'Customer-Token': this.token }).post('customers/stripe-setup-intent', params);\n }\n}\n\nregister('resource', 'Customer', Customer);\n","export function isPhone(phone = '') {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/g.test(phone);\n}\n\nexport default isPhone;\n","import Resource from '../resource.js';\nimport Product from './product.js';\nimport { StoreActions, register } from '@fleetbase/sdk';\n\nconst { isArray } = Array;\n\nexport const cartActions = new StoreActions({\n create: undefined,\n findAll: undefined,\n query: undefined,\n queryRecord: undefined,\n\n add: function (id, productId, quantity = 1, data = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/${productId}`, { ...data, quantity }, options).then(this.afterFetch.bind(this));\n },\n\n update: function (id, cartItemId, quantity, data = {}, options = {}) {\n return this.adapter.put(`${this.namespace}/${id}/${cartItemId}`, { ...data, quantity }, options).then(this.afterFetch.bind(this));\n },\n\n remove: function (id, cartItemId, options = {}) {\n return this.adapter.delete(`${this.namespace}/${id}/${cartItemId}`, {}, options).then(this.afterFetch.bind(this));\n },\n\n empty: function (id, options = {}) {\n return this.adapter.put(`${this.namespace}/${id}/empty`, {}, options).then(this.afterFetch.bind(this));\n },\n\n retrieve: function (id = '') {\n return this.findRecord(id);\n },\n});\n\nexport default class Cart extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'cart', { actions: cartActions, ...options });\n }\n\n add(productId, quantity = 1, data = {}, options = {}) {\n if (productId instanceof Product) {\n productId = productId.id;\n }\n\n return this.store.add(this.id, productId, quantity, data, options);\n }\n\n update(cartItemId, quantity, data = {}, options = {}) {\n return this.store.update(this.id, cartItemId, quantity, data, options);\n }\n\n remove(cartItemId, options = {}) {\n return this.store.remove(this.id, cartItemId, options);\n }\n\n empty(options = {}) {\n return this.store.empty(this.id, options);\n }\n\n delete() {\n return this.destroy();\n }\n\n refresh() {\n return this.store.retrieve(this.id);\n }\n\n subtotal() {\n let subtotal = 0;\n\n this.contents().forEach((cartItem) => {\n subtotal += cartItem.subtotal;\n });\n\n return subtotal;\n }\n\n contents() {\n return this.getAttribute('items', []);\n }\n\n hasProduct(productId) {\n return this.contents().findIndex((cartItem) => cartItem.product_id === productId) !== -1;\n }\n\n get isEmpty() {\n const contents = this.contents();\n\n if (!isArray(contents)) {\n return true;\n }\n\n return contents.length === 0;\n }\n\n get isNotEmpty() {\n return !this.isEmpty;\n }\n}\n\nregister('resource', 'Cart', Cart);\n","import Resource from '../resource.js';\nimport { register } from '@fleetbase/sdk';\n\nexport default class PaymentGateway extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'payment-gateway', options);\n }\n\n get type() {\n return this.getAttribute('type');\n }\n\n get code() {\n return this.getAttribute('code');\n }\n\n get isCashGateway() {\n return this.type === 'cash';\n }\n\n get isStripeGateway() {\n return this.type === 'stripe';\n }\n\n setCheckoutToken(token) {\n this.token = token;\n }\n\n getCheckoutToken() {\n return this.token;\n }\n\n // remove default resource methods\n findRecord() {\n throw new Error('There is no findRecord() method for payment gateways!');\n }\n\n // remove default resource methods\n create() {\n throw new Error('There is no create() method for payment gateways!');\n }\n\n // remove default resource methods\n update() {\n throw new Error('There is no update() method for payment gateways!');\n }\n\n // remove default resource methods\n destroy() {\n throw new Error('There is no destroy() method for payment gateways!');\n }\n\n // remove default resource methods\n reload() {\n throw new Error('There is no reload() method for payment gateways!');\n }\n}\n\nregister('resource', 'PaymentGateway', PaymentGateway);\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n\n/**\n * @constant\n * @name constructFromSymbol\n * @summary Symbol enabling Date extensions to inherit properties from the reference date.\n *\n * The symbol is used to enable the `constructFrom` function to construct a date\n * using a reference date and a value. It allows to transfer extra properties\n * from the reference date to the new date. It's useful for extensions like\n * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as\n * a constructor argument.\n */\nexport const constructFromSymbol = Symbol.for(\"constructDateFrom\");\n","import { constructFromSymbol } from \"./constants.js\";\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * Starting from v3.7.0, it allows to construct a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from \"./constructFrom/date-fns\";\n *\n * // A function that clones a date preserving the original type\n * function cloneDate(date: DateType): DateType {\n * return constructFrom(\n * date, // Use constructor from the given date\n * date.getTime() // Use the date value to create a new date\n * );\n * }\n */\nexport function constructFrom(date, value) {\n if (typeof date === \"function\") return date(value);\n\n if (date && typeof date === \"object\" && constructFromSymbol in date)\n return date[constructFromSymbol](value);\n\n if (date instanceof Date) return new date.constructor(value);\n\n return new Date(value);\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * Starting from v3.7.0, it clones a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument, context) {\n // [TODO] Get rid of `toDate` or `constructFrom`?\n return constructFrom(context || argument, argument);\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addDays} function options.\n */\n\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be added.\n * @param options - An object with options\n *\n * @returns The new date with the days added\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nexport function addDays(date, amount, options) {\n const _date = toDate(date, options?.in);\n if (isNaN(amount)) return constructFrom(options?.in || date, NaN);\n\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n if (!amount) return _date;\n\n _date.setDate(_date.getDate() + amount);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addDays;\n","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date, options?.in);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n","import { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfISOWeek} function options.\n */\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfISOWeek(date, options) {\n return startOfWeek(date, { ...options, weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeek;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeekYear} function options.\n */\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport function getISOWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const fourthOfJanuaryOfNextYear = constructFrom(_date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n\n const fourthOfJanuaryOfThisYear = constructFrom(_date, 0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getISOWeekYear;\n","import { toDate } from \"../toDate.js\";\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const _date = toDate(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfDay} function options.\n */\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport function startOfDay(date, options) {\n const _date = toDate(date, options?.in);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n","import { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { millisecondsInDay } from \"./constants.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link differenceInCalendarDays} function options.\n */\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - The options object\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport function differenceInCalendarDays(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n\n const laterStartOfDay = startOfDay(laterDate_);\n const earlierStartOfDay = startOfDay(earlierDate_);\n\n const laterTimestamp =\n +laterStartOfDay - getTimezoneOffsetInMilliseconds(laterStartOfDay);\n const earlierTimestamp =\n +earlierStartOfDay - getTimezoneOffsetInMilliseconds(earlierStartOfDay);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((laterTimestamp - earlierTimestamp) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n","import { constructFrom } from \"../constructFrom.js\";\n\nexport function normalizeDates(context, ...dates) {\n const normalize = constructFrom.bind(\n null,\n context || dates.find((date) => typeof date === \"object\"),\n );\n return dates.map(normalize);\n}\n","import { isDate } from \"./isDate.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertible into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport function isValid(date) {\n return !((!isDate(date) && typeof date !== \"number\") || isNaN(+toDate(date)));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n","/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport function isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // [TODO] -- I challenge you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // [TODO] -- I challenge you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // [TODO] I challenge you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","import { formatDistance } from \"./en-US/_lib/formatDistance.js\";\nimport { formatLong } from \"./en-US/_lib/formatLong.js\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.js\";\nimport { localize } from \"./en-US/_lib/localize.js\";\nimport { match } from \"./en-US/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","import { differenceInCalendarDays } from \"./differenceInCalendarDays.js\";\nimport { startOfYear } from \"./startOfYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDayOfYear} function options.\n */\n\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * const result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nexport function getDayOfYear(date, options) {\n const _date = toDate(date, options?.in);\n const diff = differenceInCalendarDays(_date, startOfYear(_date));\n const dayOfYear = diff + 1;\n return dayOfYear;\n}\n\n// Fallback for modularized imports:\nexport default getDayOfYear;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfYear} function options.\n */\n\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport function startOfYear(date, options) {\n const date_ = toDate(date, options?.in);\n date_.setFullYear(date_.getFullYear(), 0, 1);\n date_.setHours(0, 0, 0, 0);\n return date_;\n}\n\n// Fallback for modularized imports:\nexport default startOfYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { startOfISOWeekYear } from \"./startOfISOWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeek} function options.\n */\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport function getISOWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getISOWeek;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { getISOWeekYear } from \"./getISOWeekYear.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\n\n/**\n * The {@link startOfISOWeekYear} function options.\n */\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfISOWeekYear(date, options) {\n const year = getISOWeekYear(date, options);\n const fourthOfJanuary = constructFrom(options?.in || date, 0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n return startOfISOWeek(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeekYear;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport function getWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const firstWeekOfNextYear = constructFrom(options?.in || date, 0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n\n const firstWeekOfThisYear = constructFrom(options?.in || date, 0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n\n if (+_date >= +startOfNextYear) {\n return year + 1;\n } else if (+_date >= +startOfThisYear) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getWeekYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { startOfWeekYear } from \"./startOfWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\nexport function getWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeek;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getWeekYear } from \"./getWeekYear.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = getWeekYear(date, options);\n const firstWeek = constructFrom(options?.in || date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = startOfWeek(firstWeek, options);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n","export function addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? \"-\" : \"\";\n const output = Math.abs(number).toString().padStart(targetLength, \"0\");\n return sign + output;\n}\n","import { addLeadingZeros } from \"../addLeadingZeros.js\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nexport const lightFormatters = {\n // Year\n y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === \"yy\" ? year % 100 : year, token.length);\n },\n\n // Month\n M(date, token) {\n const month = date.getMonth();\n return token === \"M\" ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n\n // Day of the month\n d(date, token) {\n return addLeadingZeros(date.getDate(), token.length);\n },\n\n // AM or PM\n a(date, token) {\n const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return dayPeriodEnumValue.toUpperCase();\n case \"aaa\":\n return dayPeriodEnumValue;\n case \"aaaaa\":\n return dayPeriodEnumValue[0];\n case \"aaaa\":\n default:\n return dayPeriodEnumValue === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n\n // Hour [1-12]\n h(date, token) {\n return addLeadingZeros(date.getHours() % 12 || 12, token.length);\n },\n\n // Hour [0-23]\n H(date, token) {\n return addLeadingZeros(date.getHours(), token.length);\n },\n\n // Minute\n m(date, token) {\n return addLeadingZeros(date.getMinutes(), token.length);\n },\n\n // Second\n s(date, token) {\n return addLeadingZeros(date.getSeconds(), token.length);\n },\n\n // Fraction of second\n S(date, token) {\n const numberOfDigits = token.length;\n const milliseconds = date.getMilliseconds();\n const fractionalSeconds = Math.trunc(\n milliseconds * Math.pow(10, numberOfDigits - 3),\n );\n return addLeadingZeros(fractionalSeconds, token.length);\n },\n};\n","import { getDayOfYear } from \"../../getDayOfYear.js\";\nimport { getISOWeek } from \"../../getISOWeek.js\";\nimport { getISOWeekYear } from \"../../getISOWeekYear.js\";\nimport { getWeek } from \"../../getWeek.js\";\nimport { getWeekYear } from \"../../getWeekYear.js\";\n\nimport { addLeadingZeros } from \"../addLeadingZeros.js\";\nimport { lightFormatters } from \"./lightFormatters.js\";\n\nconst dayPeriodEnum = {\n am: \"am\",\n pm: \"pm\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nexport const formatters = {\n // Era\n G: function (date, token, localize) {\n const era = date.getFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return localize.era(era, { width: \"abbreviated\" });\n // A, B\n case \"GGGGG\":\n return localize.era(era, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return localize.era(era, { width: \"wide\" });\n }\n },\n\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === \"yo\") {\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, { unit: \"year\" });\n }\n\n return lightFormatters.y(date, token);\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n const signedWeekYear = getWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === \"YY\") {\n const twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === \"Yo\") {\n return localize.ordinalNumber(weekYear, { unit: \"year\" });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n\n // ISO week-numbering year\n R: function (date, token) {\n const isoWeekYear = getISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n const year = date.getFullYear();\n return addLeadingZeros(year, token.length);\n },\n\n // Quarter\n Q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"QQ\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"qq\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // Month\n M: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n case \"M\":\n case \"MM\":\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // J, F, ..., D\n case \"MMMMM\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return localize.month(month, { width: \"wide\", context: \"formatting\" });\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return String(month + 1);\n // 01, 02, ..., 12\n case \"LL\":\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // J, F, ..., D\n case \"LLLLL\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return localize.month(month, { width: \"wide\", context: \"standalone\" });\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n const week = getWeek(date, options);\n\n if (token === \"wo\") {\n return localize.ordinalNumber(week, { unit: \"week\" });\n }\n\n return addLeadingZeros(week, token.length);\n },\n\n // ISO week of year\n I: function (date, token, localize) {\n const isoWeek = getISOWeek(date);\n\n if (token === \"Io\") {\n return localize.ordinalNumber(isoWeek, { unit: \"week\" });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n\n // Day of the month\n d: function (date, token, localize) {\n if (token === \"do\") {\n return localize.ordinalNumber(date.getDate(), { unit: \"date\" });\n }\n\n return lightFormatters.d(date, token);\n },\n\n // Day of year\n D: function (date, token, localize) {\n const dayOfYear = getDayOfYear(date);\n\n if (token === \"Do\") {\n return localize.ordinalNumber(dayOfYear, { unit: \"dayOfYear\" });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n\n // Day of week\n E: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"EEEEE\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"EEEE\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case \"e\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"ee\":\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case \"eo\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"eee\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"eeeee\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"eeee\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case \"c\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"cc\":\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case \"co\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"ccc\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // T\n case \"ccccc\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"standalone\",\n });\n // Tuesday\n case \"cccc\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // ISO day of week\n i: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case \"i\":\n return String(isoDayOfWeek);\n // 02\n case \"ii\":\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case \"io\":\n return localize.ordinalNumber(isoDayOfWeek, { unit: \"day\" });\n // Tue\n case \"iii\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"iiiii\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"iiiiii\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"iiii\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n const hours = date.getHours();\n const dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"aaa\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"aaaaa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n }\n\n switch (token) {\n case \"b\":\n case \"bb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"bbb\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"bbbbb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"BBBBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === \"ho\") {\n let hours = date.getHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return lightFormatters.h(date, token);\n },\n\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === \"Ho\") {\n return localize.ordinalNumber(date.getHours(), { unit: \"hour\" });\n }\n\n return lightFormatters.H(date, token);\n },\n\n // Hour [0-11]\n K: function (date, token, localize) {\n const hours = date.getHours() % 12;\n\n if (token === \"Ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Hour [1-24]\n k: function (date, token, localize) {\n let hours = date.getHours();\n if (hours === 0) hours = 24;\n\n if (token === \"ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Minute\n m: function (date, token, localize) {\n if (token === \"mo\") {\n return localize.ordinalNumber(date.getMinutes(), { unit: \"minute\" });\n }\n\n return lightFormatters.m(date, token);\n },\n\n // Second\n s: function (date, token, localize) {\n if (token === \"so\") {\n return localize.ordinalNumber(date.getSeconds(), { unit: \"second\" });\n }\n\n return lightFormatters.s(date, token);\n },\n\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return \"Z\";\n }\n\n switch (token) {\n // Hours and optional minutes\n case \"X\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case \"XXXX\":\n case \"XX\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case \"XXXXX\":\n case \"XXX\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case \"x\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case \"xxxx\":\n case \"xx\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case \"xxxxx\":\n case \"xxx\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"O\":\n case \"OO\":\n case \"OOO\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"OOOO\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"zzzz\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Seconds timestamp\n t: function (date, token, _localize) {\n const timestamp = Math.trunc(+date / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n\n // Milliseconds timestamp\n T: function (date, token, _localize) {\n return addLeadingZeros(+date, token.length);\n },\n};\n\nfunction formatTimezoneShort(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = Math.trunc(absOffset / 60);\n const minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n if (offset % 60 === 0) {\n const sign = offset > 0 ? \"-\" : \"+\";\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, delimiter);\n}\n\nfunction formatTimezone(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2);\n const minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n","const dateLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"P\":\n return formatLong.date({ width: \"short\" });\n case \"PP\":\n return formatLong.date({ width: \"medium\" });\n case \"PPP\":\n return formatLong.date({ width: \"long\" });\n case \"PPPP\":\n default:\n return formatLong.date({ width: \"full\" });\n }\n};\n\nconst timeLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"p\":\n return formatLong.time({ width: \"short\" });\n case \"pp\":\n return formatLong.time({ width: \"medium\" });\n case \"ppp\":\n return formatLong.time({ width: \"long\" });\n case \"pppp\":\n default:\n return formatLong.time({ width: \"full\" });\n }\n};\n\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n const matchResult = pattern.match(/(P+)(p+)?/) || [];\n const datePattern = matchResult[1];\n const timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n let dateTimeFormat;\n\n switch (datePattern) {\n case \"P\":\n dateTimeFormat = formatLong.dateTime({ width: \"short\" });\n break;\n case \"PP\":\n dateTimeFormat = formatLong.dateTime({ width: \"medium\" });\n break;\n case \"PPP\":\n dateTimeFormat = formatLong.dateTime({ width: \"long\" });\n break;\n case \"PPPP\":\n default:\n dateTimeFormat = formatLong.dateTime({ width: \"full\" });\n break;\n }\n\n return dateTimeFormat\n .replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong))\n .replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\n\nexport const longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter,\n};\n","const dayOfYearTokenRE = /^D+$/;\nconst weekYearTokenRE = /^Y+$/;\n\nconst throwTokens = [\"D\", \"DD\", \"YY\", \"YYYY\"];\n\nexport function isProtectedDayOfYearToken(token) {\n return dayOfYearTokenRE.test(token);\n}\n\nexport function isProtectedWeekYearToken(token) {\n return weekYearTokenRE.test(token);\n}\n\nexport function warnOrThrowProtectedError(token, format, input) {\n const _message = message(token, format, input);\n console.warn(_message);\n if (throwTokens.includes(token)) throw new RangeError(_message);\n}\n\nfunction message(token, format, input) {\n const subject = token[0] === \"Y\" ? \"years\" : \"days of the month\";\n return `Use \\`${token.toLowerCase()}\\` instead of \\`${token}\\` (in \\`${format}\\`) for formatting ${subject} to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;\n}\n","import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { formatters } from \"./_lib/format/formatters.js\";\nimport { longFormatters } from \"./_lib/format/longFormatters.js\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.js\";\nimport { isValid } from \"./isValid.js\";\nimport { toDate } from \"./toDate.js\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { formatters, longFormatters };\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\nexport { format as formatDate };\n\n/**\n * The {@link format} function options.\n */\n\n/**\n * @name format\n * @alias formatDate\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)\n * and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nexport function format(date, formatStr, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const originalDate = toDate(date, options?.in);\n\n if (!isValid(originalDate)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let parts = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp)\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return { isToken: false, value: \"'\" };\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return { isToken: false, value: cleanEscapedString(substring) };\n }\n\n if (formatters[firstCharacter]) {\n return { isToken: true, value: substring };\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return { isToken: false, value: substring };\n });\n\n // invoke localize preprocessor (only for french locales at the moment)\n if (locale.localize.preprocessor) {\n parts = locale.localize.preprocessor(originalDate, parts);\n }\n\n const formatterOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n return parts\n .map((part) => {\n if (!part.isToken) return part.value;\n\n const token = part.value;\n\n if (\n (!options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)) ||\n (!options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token))\n ) {\n warnOrThrowProtectedError(token, formatStr, String(date));\n }\n\n const formatter = formatters[token[0]];\n return formatter(originalDate, token, locale.localize, formatterOptions);\n })\n .join(\"\");\n}\n\nfunction cleanEscapedString(input) {\n const matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default format;\n","import { constructFrom } from \"../../constructFrom.js\";\nimport { transpose } from \"../../transpose.js\";\n\nconst TIMEZONE_UNIT_PRIORITY = 10;\n\nexport class Setter {\n subPriority = 0;\n\n validate(_utcDate, _options) {\n return true;\n }\n}\n\nexport class ValueSetter extends Setter {\n constructor(\n value,\n\n validateValue,\n\n setValue,\n\n priority,\n subPriority,\n ) {\n super();\n this.value = value;\n this.validateValue = validateValue;\n this.setValue = setValue;\n this.priority = priority;\n if (subPriority) {\n this.subPriority = subPriority;\n }\n }\n\n validate(date, options) {\n return this.validateValue(date, this.value, options);\n }\n\n set(date, flags, options) {\n return this.setValue(date, flags, this.value, options);\n }\n}\n\nexport class DateTimezoneSetter extends Setter {\n priority = TIMEZONE_UNIT_PRIORITY;\n subPriority = -1;\n\n constructor(context, reference) {\n super();\n this.context = context || ((date) => constructFrom(reference, date));\n }\n\n set(date, flags) {\n if (flags.timestampIsSet) return date;\n return constructFrom(date, transpose(date, this.context));\n }\n}\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name transpose\n * @category Generic Helpers\n * @summary Transpose the date to the given constructor.\n *\n * @description\n * The function transposes the date to the given constructor. It helps you\n * to transpose the date in the system time zone to say `UTCDate` or any other\n * date extension.\n *\n * @typeParam InputDate - The input `Date` type derived from the passed argument.\n * @typeParam ResultDate - The result `Date` type derived from the passed constructor.\n *\n * @param date - The date to use values from\n * @param constructor - The date constructor to use\n *\n * @returns Date transposed to the given constructor\n *\n * @example\n * // Create July 10, 2022 00:00 in locale time zone\n * const date = new Date(2022, 6, 10)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0800 (Singapore Standard Time)'\n *\n * @example\n * // Transpose the date to July 10, 2022 00:00 in UTC\n * transpose(date, UTCDate)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0000 (Coordinated Universal Time)'\n */\nexport function transpose(date, constructor) {\n const date_ = isConstructor(constructor)\n ? new constructor(0)\n : constructFrom(constructor, 0);\n date_.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());\n date_.setHours(\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds(),\n );\n return date_;\n}\n\nfunction isConstructor(constructor) {\n return (\n typeof constructor === \"function\" &&\n constructor.prototype?.constructor === constructor\n );\n}\n\n// Fallback for modularized imports:\nexport default transpose;\n","import { ValueSetter } from \"./Setter.js\";\n\nexport class Parser {\n run(dateString, token, match, options) {\n const result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n\n return {\n setter: new ValueSetter(\n result.value,\n this.validate,\n this.set,\n this.priority,\n this.subPriority,\n ),\n rest: result.rest,\n };\n }\n\n validate(_utcDate, _value, _options) {\n return true;\n }\n}\n","import { Parser } from \"../Parser.js\";\n\nexport class EraParser extends Parser {\n priority = 140;\n\n parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return (\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n\n // A, B\n case \"GGGGG\":\n return match.era(dateString, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return (\n match.era(dateString, { width: \"wide\" }) ||\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n }\n }\n\n set(date, flags, value) {\n flags.era = value;\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"R\", \"u\", \"t\", \"T\"];\n}\n","export const numericPatterns = {\n month: /^(1[0-2]|0?\\d)/, // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/, // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/, // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/, // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/, // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/, // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/, // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/, // 0 to 12\n minute: /^[0-5]?\\d/, // 0 to 59\n second: /^[0-5]?\\d/, // 0 to 59\n\n singleDigit: /^\\d/, // 0 to 9\n twoDigits: /^\\d{1,2}/, // 0 to 99\n threeDigits: /^\\d{1,3}/, // 0 to 999\n fourDigits: /^\\d{1,4}/, // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/, // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/, // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/, // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/, // 0 to 9999, -0 to -9999\n};\n\nexport const timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/,\n};\n","import {\n millisecondsInHour,\n millisecondsInMinute,\n millisecondsInSecond,\n} from \"../../constants.js\";\n\nimport { numericPatterns } from \"./constants.js\";\n\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest,\n };\n}\n\nexport function parseNumericPattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseTimezonePattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === \"Z\") {\n return {\n value: 0,\n rest: dateString.slice(1),\n };\n }\n\n const sign = matchResult[1] === \"+\" ? 1 : -1;\n const hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n const minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n const seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n\n return {\n value:\n sign *\n (hours * millisecondsInHour +\n minutes * millisecondsInMinute +\n seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\n\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^-?\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case \"morning\":\n return 4;\n case \"evening\":\n return 17;\n case \"pm\":\n case \"noon\":\n case \"afternoon\":\n return 12;\n case \"am\":\n case \"midnight\":\n case \"night\":\n default:\n return 0;\n }\n}\n\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n const isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n const absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n\n let result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n const rangeEnd = absCurrentYear + 50;\n const rangeEndCentury = Math.trunc(rangeEnd / 100) * 100;\n const isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport class YearParser extends Parser {\n priority = 130;\n incompatibleTokens = [\"Y\", \"R\", \"u\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"yy\",\n });\n\n switch (token) {\n case \"y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value) {\n const currentYear = date.getFullYear();\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(normalizedTwoDigitYear, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { getWeekYear } from \"../../../getWeekYear.js\";\n\nimport { startOfWeek } from \"../../../startOfWeek.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n\n// Local week-numbering year\nexport class LocalWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"YY\",\n });\n\n switch (token) {\n case \"Y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"Yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value, options) {\n const currentYear = getWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(\n normalizedTwoDigitYear,\n 0,\n options.firstWeekContainsDate,\n );\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, options.firstWeekContainsDate);\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { startOfISOWeek } from \"../../../startOfISOWeek.js\";\nimport { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigitsSigned } from \"../utils.js\";\n\n// ISO week-numbering year\nexport class ISOWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"R\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n const firstWeekOfYear = constructFrom(date, 0);\n firstWeekOfYear.setFullYear(value, 0, 4);\n firstWeekOfYear.setHours(0, 0, 0, 0);\n return startOfISOWeek(firstWeekOfYear);\n }\n\n incompatibleTokens = [\n \"G\",\n \"y\",\n \"Y\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigitsSigned } from \"../utils.js\";\n\nexport class ExtendedYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"u\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"G\", \"y\", \"Y\", \"R\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigits } from \"../utils.js\";\n\nexport class QuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n case \"QQ\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigits } from \"../utils.js\";\n\nexport class StandAloneQuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n case \"qq\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class MonthParser extends Parser {\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"L\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"M\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"MM\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // J, F, ..., D\n case \"MMMMM\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class StandAloneMonthParser extends Parser {\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"LL\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // J, F, ..., D\n case \"LLLLL\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setWeek } from \"../../../setWeek.js\";\nimport { startOfWeek } from \"../../../startOfWeek.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\n// Local week of year\nexport class LocalWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"w\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"wo\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value, options) {\n return startOfWeek(setWeek(date, value, options), options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { getWeek } from \"./getWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setWeek} function options.\n */\n\n/**\n * @name setWeek\n * @category Week Helpers\n * @summary Set the local week to the given date.\n *\n * @description\n * Set the local week to the given date, saving the weekday number.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param week - The week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the local week set\n *\n * @example\n * // Set the 1st week to 2 January 2005 with default options:\n * const result = setWeek(new Date(2005, 0, 2), 1)\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // Set the 1st week to 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January:\n * const result = setWeek(new Date(2005, 0, 2), 1, {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Sun Jan 4 2004 00:00:00\n */\nexport function setWeek(date, week, options) {\n const date_ = toDate(date, options?.in);\n const diff = getWeek(date_, options) - week;\n date_.setDate(date_.getDate() - diff * 7);\n return toDate(date_, options?.in);\n}\n\n// Fallback for modularized imports:\nexport default setWeek;\n","import { setISOWeek } from \"../../../setISOWeek.js\";\nimport { startOfISOWeek } from \"../../../startOfISOWeek.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\n// ISO week of year\nexport class ISOWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"I\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"Io\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value) {\n return startOfISOWeek(setISOWeek(date, value));\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getISOWeek } from \"./getISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setISOWeek} function options.\n */\n\n/**\n * @name setISOWeek\n * @category ISO Week Helpers\n * @summary Set the ISO week to the given date.\n *\n * @description\n * Set the ISO week to the given date, saving the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The `Date` type of the context function.\n *\n * @param date - The date to be changed\n * @param week - The ISO week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the ISO week set\n *\n * @example\n * // Set the 53rd ISO week to 7 August 2004:\n * const result = setISOWeek(new Date(2004, 7, 7), 53)\n * //=> Sat Jan 01 2005 00:00:00\n */\nexport function setISOWeek(date, week, options) {\n const _date = toDate(date, options?.in);\n const diff = getISOWeek(_date, options) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setISOWeek;\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.js\";\n\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst DAYS_IN_MONTH_LEAP_YEAR = [\n 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,\n];\n\n// Day of the month\nexport class DateParser extends Parser {\n priority = 90;\n subPriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"d\":\n return parseNumericPattern(numericPatterns.date, dateString);\n case \"do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n const month = date.getMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n\n set(date, _flags, value) {\n date.setDate(value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.js\";\n\nexport class DayOfYearParser extends Parser {\n priority = 90;\n\n subpriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"D\":\n case \"DD\":\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case \"Do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n\n set(date, _flags, value) {\n date.setMonth(0, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"E\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { addDays } from \"./addDays.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setDay} function options.\n */\n\n/**\n * @name setDay\n * @category Weekday Helpers\n * @summary Set the day of the week to the given date.\n *\n * @description\n * Set the day of the week to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param day - The day of the week of the new date\n * @param options - An object with options.\n *\n * @returns The new date with the day of the week set\n *\n * @example\n * // Set week day to Sunday, with the default weekStartsOn of Sunday:\n * const result = setDay(new Date(2014, 8, 1), 0)\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Set week day to Sunday, with a weekStartsOn of Monday:\n * const result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setDay(date, day, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const date_ = toDate(date, options?.in);\n const currentDay = date_.getDay();\n\n const remainder = day % 7;\n const dayIndex = (remainder + 7) % 7;\n\n const delta = 7 - weekStartsOn;\n const diff =\n day < 0 || day > 6\n ? day - ((currentDay + delta) % 7)\n : ((dayIndex + delta) % 7) - ((currentDay + delta) % 7);\n return addDays(date_, diff, options);\n}\n\n// Fallback for modularized imports:\nexport default setDay;\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\n// Day of week\nexport class DayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"EEEEE\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"EEEE\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"D\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// Local day of week\nexport class LocalDayParser extends Parser {\n priority = 90;\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"e\":\n case \"ee\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"eo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"eee\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"eeeee\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"eeee\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// Stand-alone local day of week\nexport class StandAloneLocalDayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"c\":\n case \"cc\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"co\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"ccc\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // T\n case \"ccccc\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return (\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // Tuesday\n case \"cccc\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"e\",\n \"t\",\n \"T\",\n ];\n}\n","import { addDays } from \"./addDays.js\";\nimport { getISODay } from \"./getISODay.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setISODay} function options.\n */\n\n/**\n * @name setISODay\n * @category Weekday Helpers\n * @summary Set the day of the ISO week to the given date.\n *\n * @description\n * Set the day of the ISO week to the given date.\n * ISO week starts with Monday.\n * 7 is the index of Sunday, 1 is the index of Monday, etc.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param day - The day of the ISO week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the day of the ISO week set\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * const result = setISODay(new Date(2014, 8, 1), 7)\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setISODay(date, day, options) {\n const date_ = toDate(date, options?.in);\n const currentDay = getISODay(date_, options);\n const diff = day - currentDay;\n return addDays(date_, diff, options);\n}\n\n// Fallback for modularized imports:\nexport default setISODay;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISODay} function options.\n */\n\n/**\n * @name getISODay\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The day of ISO week\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * const result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\nexport function getISODay(date, options) {\n const day = toDate(date, options?.in).getDay();\n return day === 0 ? 7 : day;\n}\n\n// Fallback for modularized imports:\nexport default getISODay;\n","import { setISODay } from \"../../../setISODay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// ISO day of week\nexport class ISODayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n\n switch (token) {\n // 2\n case \"i\":\n case \"ii\": // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case \"io\":\n return match.ordinalNumber(dateString, { unit: \"day\" });\n // Tue\n case \"iii\":\n return mapValue(\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // T\n case \"iiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tu\n case \"iiiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tuesday\n case \"iiii\":\n default:\n return mapValue(\n match.day(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n\n set(date, _flags, value) {\n date = setISODay(date, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"E\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\nexport class AMPMParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"a\":\n case \"aa\":\n case \"aaa\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"aaaaa\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"b\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\nexport class AMPMMidnightParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"b\":\n case \"bb\":\n case \"bbb\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"bbbbb\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\n// in the morning, in the afternoon, in the evening, at night\nexport class DayPeriodParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"BBBBB\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour1to12Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"h\":\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case \"ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setHours(0, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"H\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour0to23Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"H\":\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case \"Ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n\n set(date, _flags, value) {\n date.setHours(value, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour0To11Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"K\":\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case \"Ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"h\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour1To24Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"k\":\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case \"ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n\n set(date, _flags, value) {\n const hours = value <= 24 ? value % 24 : value;\n date.setHours(hours, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"H\", \"K\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class MinuteParser extends Parser {\n priority = 60;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"m\":\n return parseNumericPattern(numericPatterns.minute, dateString);\n case \"mo\":\n return match.ordinalNumber(dateString, { unit: \"minute\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setMinutes(value, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class SecondParser extends Parser {\n priority = 50;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"s\":\n return parseNumericPattern(numericPatterns.second, dateString);\n case \"so\":\n return match.ordinalNumber(dateString, { unit: \"second\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setSeconds(value, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\nexport class FractionOfSecondParser extends Parser {\n priority = 30;\n\n parse(dateString, token) {\n const valueCallback = (value) =>\n Math.trunc(value * Math.pow(10, -token.length + 3));\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n\n set(date, _flags, value) {\n date.setMilliseconds(value);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseTimezonePattern } from \"../utils.js\";\n\n// Timezone (ISO-8601. +00:00 is `'Z'`)\nexport class ISOTimezoneWithZParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"X\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"XX\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"XXXX\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"XXXXX\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"XXX\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"x\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseTimezonePattern } from \"../utils.js\";\n\n// Timezone (ISO-8601)\nexport class ISOTimezoneParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"x\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"xx\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"xxxx\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"xxxxx\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"xxx\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"X\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseAnyDigitsSigned } from \"../utils.js\";\n\nexport class TimestampSecondsParser extends Parser {\n priority = 40;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value * 1000), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseAnyDigitsSigned } from \"../utils.js\";\n\nexport class TimestampMillisecondsParser extends Parser {\n priority = 20;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { EraParser } from \"./parsers/EraParser.js\";\nimport { YearParser } from \"./parsers/YearParser.js\";\nimport { LocalWeekYearParser } from \"./parsers/LocalWeekYearParser.js\";\nimport { ISOWeekYearParser } from \"./parsers/ISOWeekYearParser.js\";\nimport { ExtendedYearParser } from \"./parsers/ExtendedYearParser.js\";\nimport { QuarterParser } from \"./parsers/QuarterParser.js\";\nimport { StandAloneQuarterParser } from \"./parsers/StandAloneQuarterParser.js\";\nimport { MonthParser } from \"./parsers/MonthParser.js\";\nimport { StandAloneMonthParser } from \"./parsers/StandAloneMonthParser.js\";\nimport { LocalWeekParser } from \"./parsers/LocalWeekParser.js\";\nimport { ISOWeekParser } from \"./parsers/ISOWeekParser.js\";\nimport { DateParser } from \"./parsers/DateParser.js\";\nimport { DayOfYearParser } from \"./parsers/DayOfYearParser.js\";\nimport { DayParser } from \"./parsers/DayParser.js\";\nimport { LocalDayParser } from \"./parsers/LocalDayParser.js\";\nimport { StandAloneLocalDayParser } from \"./parsers/StandAloneLocalDayParser.js\";\nimport { ISODayParser } from \"./parsers/ISODayParser.js\";\nimport { AMPMParser } from \"./parsers/AMPMParser.js\";\nimport { AMPMMidnightParser } from \"./parsers/AMPMMidnightParser.js\";\nimport { DayPeriodParser } from \"./parsers/DayPeriodParser.js\";\nimport { Hour1to12Parser } from \"./parsers/Hour1to12Parser.js\";\nimport { Hour0to23Parser } from \"./parsers/Hour0to23Parser.js\";\nimport { Hour0To11Parser } from \"./parsers/Hour0To11Parser.js\";\nimport { Hour1To24Parser } from \"./parsers/Hour1To24Parser.js\";\nimport { MinuteParser } from \"./parsers/MinuteParser.js\";\nimport { SecondParser } from \"./parsers/SecondParser.js\";\nimport { FractionOfSecondParser } from \"./parsers/FractionOfSecondParser.js\";\nimport { ISOTimezoneWithZParser } from \"./parsers/ISOTimezoneWithZParser.js\";\nimport { ISOTimezoneParser } from \"./parsers/ISOTimezoneParser.js\";\nimport { TimestampSecondsParser } from \"./parsers/TimestampSecondsParser.js\";\nimport { TimestampMillisecondsParser } from \"./parsers/TimestampMillisecondsParser.js\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\nexport const parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser(),\n};\n","import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { longFormatters } from \"./_lib/format/longFormatters.js\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getDefaultOptions } from \"./getDefaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\nimport { DateTimezoneSetter } from \"./parse/_lib/Setter.js\";\nimport { parsers } from \"./parse/_lib/parsers.js\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { longFormatters, parsers };\n\n/**\n * The {@link parse} function options.\n */\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\n\nconst notWhitespaceRegExp = /\\S/;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangeably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear)\n * and [setWeekYear](https://date-fns.org/docs/setWeekYear)).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param dateStr - The string to parse\n * @param formatStr - The string of tokens\n * @param referenceDate - defines values missing from the parsed dateString\n * @param options - An object with options.\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @returns The parsed date\n *\n * @throws `options.locale` must contain `match` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport function parse(dateStr, formatStr, referenceDate, options) {\n const invalidDate = () => constructFrom(options?.in || referenceDate, NaN);\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n if (!formatStr)\n return dateStr ? invalidDate() : toDate(referenceDate, options?.in);\n\n const subFnOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n // If timezone isn't specified, it will try to use the context or\n // the reference date and fallback to the system time zone.\n const setters = [new DateTimezoneSetter(options?.in, referenceDate)];\n\n const tokens = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp);\n\n const usedTokens = [];\n\n for (let token of tokens) {\n if (\n !options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n if (\n !options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n\n const firstCharacter = token[0];\n const parser = parsers[firstCharacter];\n if (parser) {\n const { incompatibleTokens } = parser;\n if (Array.isArray(incompatibleTokens)) {\n const incompatibleToken = usedTokens.find(\n (usedToken) =>\n incompatibleTokens.includes(usedToken.token) ||\n usedToken.token === firstCharacter,\n );\n if (incompatibleToken) {\n throw new RangeError(\n `The format string mustn't contain \\`${incompatibleToken.fullToken}\\` and \\`${token}\\` at the same time`,\n );\n }\n } else if (parser.incompatibleTokens === \"*\" && usedTokens.length > 0) {\n throw new RangeError(\n `The format string mustn't contain \\`${token}\\` and any other token at the same time`,\n );\n }\n\n usedTokens.push({ token: firstCharacter, fullToken: token });\n\n const parseResult = parser.run(\n dateStr,\n token,\n locale.match,\n subFnOptions,\n );\n\n if (!parseResult) {\n return invalidDate();\n }\n\n setters.push(parseResult.setter);\n\n dateStr = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateStr.indexOf(token) === 0) {\n dateStr = dateStr.slice(token.length);\n } else {\n return invalidDate();\n }\n }\n }\n\n // Check if the remaining input contains something other than whitespace\n if (dateStr.length > 0 && notWhitespaceRegExp.test(dateStr)) {\n return invalidDate();\n }\n\n const uniquePrioritySetters = setters\n .map((setter) => setter.priority)\n .sort((a, b) => b - a)\n .filter((priority, index, array) => array.indexOf(priority) === index)\n .map((priority) =>\n setters\n .filter((setter) => setter.priority === priority)\n .sort((a, b) => b.subPriority - a.subPriority),\n )\n .map((setterArray) => setterArray[0]);\n\n let date = toDate(referenceDate, options?.in);\n\n if (isNaN(+date)) return invalidDate();\n\n const flags = {};\n for (const setter of uniquePrioritySetters) {\n if (!setter.validate(date, subFnOptions)) {\n return invalidDate();\n }\n\n const result = setter.set(date, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n date = result[0];\n Object.assign(flags, result[1]);\n // Result is date\n } else {\n date = result;\n }\n }\n\n return date;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default parse;\n","import { getDefaultOptions as getInternalDefaultOptions } from \"./_lib/defaultOptions.js\";\n\n/**\n * @name getDefaultOptions\n * @category Common Helpers\n * @summary Get default options.\n * @pure false\n *\n * @description\n * Returns an object that contains defaults for\n * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate`\n * arguments for all functions.\n *\n * You can change these with [setDefaultOptions](https://date-fns.org/docs/setDefaultOptions).\n *\n * @returns The default options\n *\n * @example\n * const result = getDefaultOptions()\n * //=> {}\n *\n * @example\n * setDefaultOptions({ weekStarsOn: 1, firstWeekContainsDate: 4 })\n * const result = getDefaultOptions()\n * //=> { weekStarsOn: 1, firstWeekContainsDate: 4 }\n */\nexport function getDefaultOptions() {\n return Object.assign({}, getInternalDefaultOptions());\n}\n\n// Fallback for modularized imports:\nexport default getDefaultOptions;\n","import Resource from '../resource.js';\nimport { format, parse, isValid } from 'date-fns';\nimport { register } from '@fleetbase/sdk';\n\nexport default class StoreHour extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'store-hour', options);\n }\n\n get day() {\n return this.getAttribute('day');\n }\n\n get isClosed() {\n return this.getAttribute('start') === null && this.getAttribute('end') === null;\n }\n\n get is24Hours() {\n const start = this.startDateInstance;\n const end = this.endDateInstance;\n const diff = Math.abs(start - end);\n const hours = Math.floor(diff / 1000 / 60) / 60;\n\n return hours > 23;\n }\n\n get startDateInstance() {\n if (!this.hasAttribute('start')) {\n return null;\n }\n\n const start = this.getAttribute('start');\n const includesSeconds = start.split(':').length === 3;\n const format = includesSeconds ? 'HH:mm:ss' : 'HH:mm';\n\n return parse(start, format, new Date());\n }\n\n get endDateInstance() {\n if (!this.hasAttribute('end')) {\n return null;\n }\n\n const end = this.getAttribute('end');\n const includesSeconds = end.split(':').length === 3;\n const format = includesSeconds ? 'HH:mm:ss' : 'HH:mm';\n\n return parse(end, format, new Date());\n }\n\n get humanReadableHoursRange() {\n if (!isValid(this.startDateInstance) || !isValid(this.endDateInstance)) {\n return `${this.start} - ${this.end}`;\n }\n\n return `${format(this.startDateInstance, 'p')} - ${format(this.endDateInstance, 'p')}`;\n }\n\n get humanReadableHours() {\n if (this.isClosed) {\n return 'Closed';\n }\n\n if (this.is24Hours) {\n return '24 Hours';\n }\n\n return this.humanReadableHoursRange;\n }\n\n // remove default resource methods\n create() {\n throw new Error('There is no create() method store location!');\n }\n\n // remove default resource methods\n update() {\n throw new Error('There is no update() method store location!');\n }\n\n // remove default resource methods\n destroy() {\n throw new Error('There is no destroy() method store location!');\n }\n\n // remove default resource methods\n reload() {\n throw new Error('There is no reload() method store location!');\n }\n}\n\nregister('resource', 'StoreHour', StoreHour);\n","import Resource from '../resource.js';\nimport StoreHour from './store-hour.js';\nimport { Collection, register } from '@fleetbase/sdk';\nimport { format } from 'date-fns';\n\nexport default class StoreLocation extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'store-location', options);\n }\n\n get latitude() {\n return this.getAttribute('place.location.coordinates.1');\n }\n\n get longitude() {\n return this.getAttribute('place.location.coordinates.0');\n }\n\n get hours() {\n return new Collection(this.getAttribute('hours').map((attributes) => new StoreHour(attributes)));\n }\n\n get isAlwaysOpen() {\n return this.hours.every((hour) => hour?.is24Hours);\n }\n\n get today() {\n const today = format(new Date(), 'EEEE');\n\n return this.schedule[today];\n }\n\n get schedule() {\n const schedule = {};\n const week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];\n\n for (let i = 0; i < week.length; i++) {\n const day = week[i];\n\n schedule[day] = new Collection();\n }\n\n for (let i = 0; i < this.hours.length; i++) {\n const hour = this.hours.objectAt(i);\n\n schedule[hour.day].pushObject(hour);\n }\n\n return schedule;\n }\n\n // remove default resource methods\n create() {\n throw new Error('There is no create() method store location!');\n }\n\n // remove default resource methods\n update() {\n throw new Error('There is no update() method store location!');\n }\n\n // remove default resource methods\n destroy() {\n throw new Error('There is no destroy() method store location!');\n }\n}\n\nregister('resource', 'StoreLocation', StoreLocation);\n","import Resource from '../resource.js';\nimport StoreLocation from './store-location.js';\nimport PaymentGateway from './payment-gateway.js';\nimport Review from './review.js';\nimport { Collection, Place, register } from '@fleetbase/sdk';\n\nexport default class Store extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'store', options);\n }\n\n getReviews(params = {}) {\n return this.adapter.get('reviews', { store: this.id, ...params }).then((reviews) => {\n return new Collection(reviews.map((attributes) => new Review(attributes, this.adapter)));\n });\n }\n\n getLocations(params = {}) {\n return this.adapter.get('locations', { store: this.id, ...params }).then((storeLocations) => {\n return new Collection(\n storeLocations.map((attributes) => {\n if (attributes.place) {\n attributes.place = new Place(attributes.place);\n }\n\n return new StoreLocation(attributes, this.adapter);\n })\n );\n });\n }\n\n getLocation(id) {\n return this.adapter.get(`locations/${id}`, { store: this.id }).then((attributes) => {\n return new StoreLocation(attributes, this.adapter);\n });\n }\n\n getPaymentGateways(params = {}) {\n return this.adapter.get('gateways', params).then((gateways) => {\n return new Collection(\n gateways.map((attributes) => {\n return new PaymentGateway(attributes, this.adapter);\n })\n );\n });\n }\n\n getPaymentGateway(id) {\n return this.adapter.get(`gateways/${id}`).then((attributes) => {\n return new PaymentGateway(attributes, this.adapter);\n });\n }\n}\n\nregister('resource', 'Store', Store);\n","import Resource from '../resource.js';\nimport PaymentGateway from './payment-gateway.js';\nimport Store from './store.js';\nimport StoreLocation from './store-location.js';\nimport { Collection, register } from '@fleetbase/sdk';\n\nexport default class Network extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'network', options);\n }\n\n getTags(params = {}) {\n return this.adapter.get('tags', params);\n }\n\n async getResourceCollection(endpoint, ResourceClass, params = {}) {\n try {\n const resources = await this.adapter.get(endpoint, params);\n return new Collection(resources.map((attributes) => new ResourceClass(attributes, this.adapter)));\n } catch (error) {\n console.error(`Error fetching ${endpoint}:`, error);\n throw error;\n }\n }\n\n async getStores(params = {}) {\n return this.getResourceCollection('stores', Store, params);\n }\n\n async getStoreLocations(params = {}) {\n return this.getResourceCollection('store-locations', StoreLocation, params);\n }\n\n async getPaymentGateways() {\n return this.getResourceCollection('gateways', PaymentGateway);\n }\n}\n\nregister('resource', 'Network', Network);\n","import StorefrontStore from '../store.js';\nimport { Adapter, Collection, ServiceQuote, register } from '@fleetbase/sdk';\nimport { formatCurrency, isEmpty, isArray } from '../utils/index.js';\n\nexport default class DeliveryServiceQuote extends ServiceQuote {\n constructor(attributes = {}, adapter, options = {}) {\n let finalAttributes = attributes;\n let finalAdapter = adapter;\n\n // If `attributes` is actually an Adapter, adjust the arguments accordingly.\n if (attributes instanceof Adapter) {\n finalAttributes = {};\n finalAdapter = attributes;\n }\n\n // Call `super()` exactly once with the resolved arguments.\n super(finalAttributes, finalAdapter, 'service-quote', options);\n }\n\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new StorefrontStore(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions,\n });\n\n return this;\n }\n\n get formattedAmount() {\n const { amount, currency } = this.getAttributes(['amount', 'currency']);\n\n if (isEmpty(amount) || isEmpty(currency)) {\n return null;\n }\n\n return formatCurrency(amount / 100, currency);\n }\n\n async fetchServiceQuotesFromCart(origin, destination, cart, config = 'storefront', all = false) {\n if (origin?.id) {\n origin = origin.id;\n }\n if (destination?.id) {\n destination = destination.id;\n }\n if (cart?.id) {\n cart = cart.id;\n }\n\n try {\n const serviceQuotes = await this.adapter.get('service-quotes/from-cart', {\n origin,\n destination,\n cart,\n config,\n all,\n });\n\n if (isArray(serviceQuotes)) {\n return new Collection(serviceQuotes.map((serviceQuote) => new DeliveryServiceQuote(serviceQuote, this.adapter)));\n }\n\n return new DeliveryServiceQuote(serviceQuotes, this.adapter);\n } catch (error) {\n console.error('Error fetching service quotes:', error);\n throw error;\n }\n }\n\n static async getFromCart(adapter, origin, destination, cart, config = 'storefront', all = false) {\n const quote = new DeliveryServiceQuote(adapter);\n return quote.fetchServiceQuotesFromCart(origin, destination, cart, config, all);\n }\n}\n\nregister('resource', 'DeliveryServiceQuote', DeliveryServiceQuote);\n","import Resource from '../resource.js';\nimport { Order, StoreActions, isResource, register } from '@fleetbase/sdk';\n\nexport const checkoutActions = new StoreActions({\n create: undefined,\n findAll: undefined,\n query: undefined,\n queryRecord: undefined,\n\n initialize: function (customer, cart, serviceQuote, gateway, orderOptions = {}, options = {}) {\n if (isResource(customer)) {\n customer = customer.id;\n }\n\n if (isResource(cart)) {\n cart = cart.id;\n }\n\n if (isResource(serviceQuote)) {\n serviceQuote = serviceQuote.id;\n }\n\n if (isResource(gateway)) {\n gateway = gateway.getAttribute('code');\n }\n\n return this.adapter.get(`${this.namespace}/before`, { ...orderOptions, customer, cart, serviceQuote, gateway }, options);\n },\n\n captureOrder: function (token, transactionDetails = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/capture`, { token, transactionDetails }, options).then((orderJson) => new Order(orderJson));\n },\n\n createStripeSetupIntent: function (customer, options = {}) {\n if (isResource(customer)) {\n customer = customer.id;\n }\n\n return this.adapter.post(`${this.namespace}/stripe-setup-intent`, { customer }, options);\n },\n\n updateStripePaymentIntent: function (paymentIntent, customer, cart, serviceQuote, orderOptions = {}, options = {}) {\n if (isResource(customer)) {\n customer = customer.id;\n }\n\n if (isResource(cart)) {\n cart = cart.id;\n }\n\n if (isResource(serviceQuote)) {\n serviceQuote = serviceQuote.id;\n }\n\n return this.adapter.put(`${this.namespace}/stripe-update-payment-intent`, { paymentIntent, customer, cart, serviceQuote, ...orderOptions }, options);\n },\n});\n\nexport default class Checkout extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'checkout', { actions: checkoutActions, ...options });\n }\n\n initialize() {\n return this.store.initialize(...arguments);\n }\n\n captureOrder() {\n return this.store.captureOrder(...arguments);\n }\n}\n\nregister('resource', 'Checkout', Checkout);\n","import StorefrontStore from './store.js';\nimport { isKeyValid } from './utils/index.js';\nimport { Product, Category, Customer, Cart, Store, StoreLocation, StoreHour, DeliveryServiceQuote, Checkout, PaymentGateway, Review, Network } from './resources.js';\nimport { cartActions } from './resources/cart.js';\nimport { customerActions } from './resources/customer.js';\nimport { checkoutActions } from './resources/checkout.js';\nimport { reviewActions } from './resources/review.js';\nimport { Collection, lookup, detectAdapter } from '@fleetbase/sdk';\n\n/**\n * // instance\n * const storefront = new Storefront();\n *\n */\nexport default class Storefront {\n /**\n * Builds an instance of the Fleetbase Storefront SDK\n *\n * @param {String} storeKey The access key for the storefront store\n * @param {Object} config The config object\n * @param {Boolean} debug Enable debug mode\n * @return {Storefront} Instance\n */\n constructor(storeKey, config = {}, debug = false) {\n this.version = config.version || 'v1';\n this.options = {\n version: this.version,\n host: config.host || 'https://api.fleetbase.io',\n namespace: config.namespace || `storefront/${this.version}`,\n publicKey: storeKey,\n debug,\n };\n\n if (!isKeyValid(storeKey)) {\n throw new Error('⚠️ Invalid Storefront key given to Storefront SDK');\n }\n\n this.adapter = config.adapter || detectAdapter(this.options);\n\n this.products = new StorefrontStore('product', this.adapter);\n this.categories = new StorefrontStore('category', this.adapter);\n this.reviews = new StorefrontStore('review', this.adapter).extendActions(reviewActions);\n this.customers = new StorefrontStore('customer', this.adapter).extendActions(customerActions);\n this.cart = new StorefrontStore('cart', this.adapter).extendActions(cartActions);\n this.checkout = new StorefrontStore('checkout', this.adapter).extendActions(checkoutActions);\n }\n\n /** loads information about this storefront */\n about() {\n return this.adapter.get('about');\n }\n\n /** lookup a specific store or network provided the ID */\n lookup(id) {\n return this.adapter.get(`lookup/${id}`);\n }\n\n /** search products in store or network */\n search(query, options = {}) {\n return this.adapter.get('search', { query, ...options }).then((products) => {\n return new Collection(products.map((product) => new Product(product)));\n });\n }\n\n static newInstance() {\n return new Storefront(...arguments);\n }\n\n setAdapter(adapter) {\n this.adapter = adapter;\n }\n\n getAdapter() {\n return this.adapter;\n }\n}\n\nexport { Product, Category, Customer, Cart, Store, StoreLocation, StoreHour, DeliveryServiceQuote, Checkout, PaymentGateway, Review, Network, lookup };\n","export function isKeyValid(key) {\n return typeof key === 'string' && key.length > 30 && (key.startsWith('store_') || key.startsWith('network_'));\n}\n\nexport default isKeyValid;\n"],"names":["N","t","e","n","arguments","length","h","this","g","RegExp","str","chain","v","key","value","r","indexOf","toLowerCase","i","match","replace","applyRules","pluralRules","uncountableWords","singularRules","split","o","charAt","toUpperCase","substring","join","a","s","slice","uppercase","underbarPrefix","idSuffix","underbar","capitalize","spaceOrUnderbar","camelize","underscore","nonTitlecasedWords","pluralize","singularize","demodulize","parseInt","isNaN","Object","values","shift","apply","F","concat","Array","prototype","call","invoke","S","D","B","StorefrontStore","_Store","_classCallCheck","_callSuper","_inherits","_createClass","extendStoreActions","undefined","json","lookup","classify","resource","adapter","Store","formatCurrency","amount","currency","currencyDisplay","Intl","NumberFormat","style","format","isEmpty","obj","none","size","objectType","_typeof","isArray","StorefrontResource","_Resource","_this$options","store","onAfterFetch","syncAttributes","bind","actions","options","Resource","register","reviewActions","StoreActions","count","storeId","params","get","namespace","Review","attributes","Product","getAttribute","_this$getAttributes","getAttributes","price","sale_price","isOnSale","_this","id","then","reviews","Collection","map","Category","category","products","customerActions","login","identity","password","test","isPhone","post","phone","Error","_objectSpread","afterFetch","verifyCode","code","requestCreationCode","mode","create","retrieve","findRecord","Customer","_syncDevice","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","wrap","_context","prev","next","abrupt","setHeaders","stop","_x","_performAuthorizedRequest","_callee2","endpoint","method","headers","response","_args2","_context2","sent","t0","console","error","_x2","_getSavedPlaces","_callee3","places","_this2","_context3","performAuthorizedRequest","Place","_getOrderHistory","_callee4","orders","_this3","_args4","_context4","Order","cartActions","findAll","query","queryRecord","add","productId","quantity","data","update","cartItemId","put","remove","empty","Cart","destroy","subtotal","contents","forEach","cartItem","findIndex","product_id","PaymentGateway","type","millisecondsInWeek","constructFromSymbol","Symbol","constructFrom","date","Date","constructor","toDate","argument","context","addDays","_date","NaN","setDate","getDate","defaultOptions","getDefaultOptions","startOfWeek","_ref","_ref2","_ref3","_options$weekStartsOn","_options$locale","_defaultOptions$local","weekStartsOn","locale","day","getDay","diff","setHours","startOfISOWeek","getISOWeekYear","year","getFullYear","fourthOfJanuaryOfNextYear","setFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","getTime","getTimezoneOffsetInMilliseconds","utcDate","UTC","getMonth","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","startOfDay","differenceInCalendarDays","laterDate","earlierDate","_normalizeDates","_len","dates","_key","normalize","find","normalizeDates","_normalizeDates2","_slicedToArray","laterDate_","earlierDate_","laterStartOfDay","earlierStartOfDay","laterTimestamp","earlierTimestamp","Math","round","isValid","toString","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","args","width","String","defaultWidth","formats","formatLong","full","long","medium","short","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","valuesArray","formattingValues","defaultFormattingWidth","argumentCallback","localize","ordinalNumber","dirtyNumber","_options","number","Number","rem100","era","narrow","abbreviated","wide","quarter","month","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","buildMatchFn","string","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","array","predicate","pattern","object","hasOwnProperty","findKey","valueCallback","rest","parsePattern","parseResult","any","index","enUS","formatDistance","result","tokenValue","addSuffix","comparison","formatRelative","_baseDate","firstWeekContainsDate","getDayOfYear","date_","startOfYear","getISOWeek","fourthOfJanuary","startOfISOWeekYear","getWeekYear","_options$firstWeekCon","firstWeekOfNextYear","firstWeekOfThisYear","getWeek","firstWeek","startOfWeekYear","addLeadingZeros","targetLength","abs","padStart","lightFormatters","signedYear","numberOfDigits","milliseconds","trunc","pow","dayPeriodEnum","formatters","G","y","unit","Y","signedWeekYear","weekYear","R","u","Q","ceil","q","M","L","w","week","I","isoWeek","d","dayOfYear","E","dayOfWeek","localDayOfWeek","c","isoDayOfWeek","dayPeriodEnumValue","b","hours","H","K","k","m","X","_localize","timezoneOffset","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","x","O","formatTimezoneShort","z","T","offset","delimiter","sign","absOffset","minutes","dateLongFormatter","timeLongFormatter","longFormatters","p","P","dateTimeFormat","datePattern","timePattern","dayOfYearTokenRE","weekYearTokenRE","throwTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","warnOrThrowProtectedError","input","_message","subject","message","warn","includes","RangeError","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","formatStr","_ref4","_ref5","_ref6","_ref7","_defaultOptions$local2","defaultLocale","_options$locale2","_options$locale3","originalDate","parts","firstCharacter","longFormatter","isToken","cleanEscapedString","preprocessor","formatterOptions","part","formatter","matched","Setter","_defineProperty","_utcDate","ValueSetter","_Setter2","validateValue","setValue","priority","subPriority","flags","DateTimezoneSetter","_Setter3","reference","timestampIsSet","_constructor$prototyp","isConstructor","transpose","Parser","dateString","parse","setter","validate","set","_value","EraParser","_Parser","numericPatterns","timezonePatterns","mapValue","parseFnResult","mapFn","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","isLeapYearIndex","YearParser","isTwoDigitYear","normalizedTwoDigitYear","LocalWeekYearParser","ISOWeekYearParser","_flags","firstWeekOfYear","ExtendedYearParser","QuarterParser","setMonth","StandAloneQuarterParser","MonthParser","StandAloneMonthParser","LocalWeekParser","setWeek","ISOWeekParser","setISOWeek","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","DateParser","isLeapYear","DayOfYearParser","setDay","currentDay","delta","DayParser","LocalDayParser","wholeWeekDays","floor","StandAloneLocalDayParser","setISODay","getISODay","ISODayParser","AMPMParser","AMPMMidnightParser","DayPeriodParser","Hour1to12Parser","isPM","Hour0to23Parser","Hour0To11Parser","Hour1To24Parser","MinuteParser","setMinutes","SecondParser","setSeconds","FractionOfSecondParser","setMilliseconds","ISOTimezoneWithZParser","ISOTimezoneParser","TimestampSecondsParser","TimestampMillisecondsParser","parsers","notWhitespaceRegExp","dateStr","referenceDate","invalidDate","assign","getInternalDefaultOptions","_step","subFnOptions","setters","tokens","usedTokens","_iterator","_createForOfIteratorHelper","_ret","_loop","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","parser","incompatibleTokens","incompatibleToken","usedToken","fullToken","push","run","done","err","f","uniquePrioritySetters","sort","filter","setterArray","_step2","_iterator2","StoreHour","start","startDateInstance","end","endDateInstance","hasAttribute","includesSeconds","isClosed","is24Hours","humanReadableHoursRange","StoreLocation","every","hour","schedule","objectAt","pushObject","storeLocations","place","_this4","gateways","_this5","Network","_getResourceCollection","ResourceClass","resources","_args","_getStores","getResourceCollection","_getStoreLocations","_args3","_getPaymentGateways","DeliveryServiceQuote","_ServiceQuote","finalAttributes","finalAdapter","Adapter","_fetchServiceQuotesFromCart","origin","destination","cart","_origin","_destination","_cart","config","all","serviceQuotes","serviceQuote","_x3","_getFromCart","quote","fetchServiceQuotesFromCart","_x4","_x5","_x6","_x7","ServiceQuote","checkoutActions","initialize","customer","gateway","orderOptions","isResource","captureOrder","transactionDetails","orderJson","createStripeSetupIntent","updateStripePaymentIntent","paymentIntent","Checkout","_this$store","_this$store2","Storefront","storeKey","debug","version","host","publicKey","startsWith","detectAdapter","categories","extendActions","customers","checkout","product","_construct"],"mappings":"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","x_google_ignoreList":[13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93]} \ No newline at end of file diff --git a/dist/@fleetbase/storefront.min.js b/dist/@fleetbase/storefront.min.js deleted file mode 100644 index acf3a88..0000000 --- a/dist/@fleetbase/storefront.min.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@fleetbase/sdk")):"function"==typeof define&&define.amd?define(["exports","@fleetbase/sdk"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["@fleetbase/storefront"]={},t.sdk)}(this,(function(t,e){"use strict";function r(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=0;--a){var i=this.tryEntries[a],s=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var u=n.call(i,"catchLoc"),c=n.call(i,"finallyLoc");if(u&&c){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),O(r),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;O(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:q(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),g}},e}function y(t,e){return y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},y(t,e)}function v(t){return function(t){if(Array.isArray(t))return r(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return r(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function b(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,e||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:e+""}function k(t){return k="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},k(t)}var x=function(t){function e(){return i(this,e),a(this,e,arguments)}return l(e,t),c(e,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new ze(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}}])}(e.Resource),T=new e.StoreActions({count:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={};return t&&(r.store=t),this.adapter.get("".concat(this.namespace,"/count"),r,e)}}),M=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,e),a(this,e,[t,r,"review",n])}return l(e,t),c(e,[{key:"getMedia",value:function(){}},{key:"getPhotos",value:function(){}},{key:"getVideos",value:function(){}}])}(x),S=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e.isNodeEnvironment()?Ge("adapter","NodeAdapter",t):Ge("adapter","BrowserAdapter",t)},P=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(t)};function E(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"USD",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"symbol";return new Intl.NumberFormat("en-US",{style:"currency",currency:e,currencyDisplay:r}).format(t)}var D=function(t){return"string"==typeof t&&t.length>30&&(t.startsWith("store_")||t.startsWith("network_"))},O=function(t){var e=null==t;if(e)return e;if("number"==typeof t.size)return!t.size;var r=k(t);if("object"===r){var n=t.size;if("number"==typeof n)return!n}if("number"==typeof t.length&&"function"!==r)return!t.length;if("object"===r){var o=t.length;if("number"==typeof o)return!o}return!1},A=function(t){function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,r),a(this,r,[t,e,"product",n])}return l(r,t),c(r,[{key:"variants",value:function(){return this.getAttribute("variants")}},{key:"addons",value:function(){return this.getAttribute("addon_categories")}},{key:"isOnSale",get:function(){return this.getAttribute("is_on_sale")}},{key:"isNotOnSale",get:function(){return!this.getAttribute("is_on_sale")}},{key:"formattedAmount",get:function(){var t=this.getAttributes(["price","sale_price","currency"]),e=t.price,r=t.sale_price,n=t.currency;return this.isOnSale?O(r)||O(n)?null:E(r/100,n):O(e)||O(n)?null:E(e/100,n)}},{key:"getReviews",value:function(){var t=this;return this.adapter.get("reviews",{store:this.id}).then((function(r){return new e.Collection(r.map((function(e){return new M(e,t.adapter)})))}))}}])}(x),q=function(t){function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,r),a(this,r,[t,e,"category",n])}return l(r,t),c(r,[{key:"getProducts",value:function(){var t=this;return this.adapter.get("products",{category:this.id}).then((function(r){return new e.Collection(r.map((function(e){return new A(e,t.adapter)})))}))}}])}(x),H=new e.StoreActions({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(P(t))return this.adapter.post("customers/login-with-sms",{phone:t});if(!e)throw new Error("Login requires password!");return this.adapter.post("customers/login",g({identity:t,password:e},r)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("customers/verify-code",g({identity:t,code:e},r)).then(this.afterFetch.bind(this))},requestCreationCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"email";return this.adapter.post("customers/request-creation-code",{identity:t,mode:e})},create:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("customers",g({identity:t,code:e},r)).then(this.afterFetch.bind(this))},retrieve:function(t){return this.findRecord(t)}}),N=function(t){function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,r),a(this,r,[t,e,"customer",g({actions:H},n)])}return l(r,t),c(r,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new ze(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"token",get:function(){return this.getAttribute("token")}},{key:"syncDevice",value:(d=o(w().mark((function t(e){var r=this;return w().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this.adapter.setHeaders({"Customer-Token":this.token}).post("customers/register-device",e).then((function(){return r})));case 1:case"end":return t.stop()}}),t,this)}))),function(t){return d.apply(this,arguments)})},{key:"performAuthorizedRequest",value:(u=o(w().mark((function t(e){var r,n,o,a,i=arguments;return w().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=i.length>1&&void 0!==i[1]?i[1]:{},n=i.length>2&&void 0!==i[2]?i[2]:"GET",t.prev=2,o={"Customer-Token":this.token},t.next=6,this.adapter.setHeaders(o)[n.toLowerCase()](e,r);case 6:return a=t.sent,t.abrupt("return",a);case 10:throw t.prev=10,t.t0=t.catch(2),console.error("Error in ".concat(n," request to ").concat(e,":"),t.t0),t.t0;case 14:case"end":return t.stop()}}),t,this,[[2,10]])}))),function(t){return u.apply(this,arguments)})},{key:"getSavedPlaces",value:(s=o(w().mark((function t(){var r,n=this;return w().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,this.performAuthorizedRequest("customers/places");case 3:return r=t.sent,t.abrupt("return",new e.Collection(r.map((function(t){return new e.Place(t,n.adapter)}))));case 7:throw t.prev=7,t.t0=t.catch(0),new Error("Failed to retrieve saved places");case 10:case"end":return t.stop()}}),t,this,[[0,7]])}))),function(){return s.apply(this,arguments)})},{key:"getOrderHistory",value:(n=o(w().mark((function t(){var r,n,o=this,a=arguments;return w().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=a.length>0&&void 0!==a[0]?a[0]:{},t.prev=1,t.next=4,this.performAuthorizedRequest("customers/orders",r);case 4:return n=t.sent,t.abrupt("return",new e.Collection(n.map((function(t){return new e.Order(t,o.adapter)}))));case 8:throw t.prev=8,t.t0=t.catch(1),new Error("Failed to retrieve order history");case 11:case"end":return t.stop()}}),t,this,[[1,8]])}))),function(){return n.apply(this,arguments)})},{key:"getStripeEphemeralKey",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.setHeaders({"Customer-Token":this.token}).post("customers/stripe-ephemeral-key",t)}},{key:"getStripeSetupIntent",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.setHeaders({"Customer-Token":this.token}).post("customers/stripe-setup-intent",t)}}]);var n,s,u,d}(x),C=Array.isArray,L=new e.StoreActions({create:void 0,findAll:void 0,query:void 0,queryRecord:void 0,add:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/").concat(e),g(g({},n),{},{quantity:r}),o).then(this.afterFetch.bind(this))},update:function(t,e,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return this.adapter.put("".concat(this.namespace,"/").concat(t,"/").concat(e),g(g({},n),{},{quantity:r}),o).then(this.afterFetch.bind(this))},remove:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete("".concat(this.namespace,"/").concat(t,"/").concat(e),{},r).then(this.afterFetch.bind(this))},empty:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.put("".concat(this.namespace,"/").concat(t,"/empty"),{},e).then(this.afterFetch.bind(this))},retrieve:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return this.findRecord(t)}}),j=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,e),a(this,e,[t,r,"cart",g({actions:L},n)])}return l(e,t),c(e,[{key:"add",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return t instanceof A&&(t=t.id),this.store.add(this.id,t,e,r,n)}},{key:"update",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.store.update(this.id,t,e,r,n)}},{key:"remove",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.remove(this.id,t,e)}},{key:"empty",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.store.empty(this.id,t)}},{key:"delete",value:function(){return this.destroy()}},{key:"refresh",value:function(){return this.store.retrieve(this.id)}},{key:"subtotal",value:function(){var t=0;return this.contents().forEach((function(e){t+=e.subtotal})),t}},{key:"contents",value:function(){return this.getAttribute("items",[])}},{key:"hasProduct",value:function(t){return-1!==this.contents().findIndex((function(e){return e.product_id===t}))}},{key:"isEmpty",get:function(){var t=this.contents();return!C(t)||0===t.length}},{key:"isNotEmpty",get:function(){return!this.isEmpty}}])}(x),Y=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,e),a(this,e,[t,r,"payment-gateway",n])}return l(e,t),c(e,[{key:"type",get:function(){return this.getAttribute("type")}},{key:"code",get:function(){return this.getAttribute("code")}},{key:"isCashGateway",get:function(){return"cash"===this.type}},{key:"isStripeGateway",get:function(){return"stripe"===this.type}},{key:"setCheckoutToken",value:function(t){this.token=t}},{key:"getCheckoutToken",value:function(){return this.token}},{key:"findRecord",value:function(){throw new Error("There is no findRecord() method for payment gateways!")}},{key:"create",value:function(){throw new Error("There is no create() method for payment gateways!")}},{key:"update",value:function(){throw new Error("There is no update() method for payment gateways!")}},{key:"destroy",value:function(){throw new Error("There is no destroy() method for payment gateways!")}},{key:"reload",value:function(){throw new Error("There is no reload() method for payment gateways!")}}])}(x);function F(t){const e=Object.prototype.toString.call(t);return t instanceof Date||"object"==typeof t&&"[object Date]"===e?new t.constructor(+t):"number"==typeof t||"[object Number]"===e||"string"==typeof t||"[object String]"===e?new Date(t):new Date(NaN)}function R(t,e){return t instanceof Date?new t.constructor(e):new Date(e)}function W(t,e){const r=F(t);return isNaN(e)?R(t,NaN):e?(r.setDate(r.getDate()+e),r):r}const I=6048e5;let Q={};function G(){return Q}function z(t,e){const r=G(),n=e?.weekStartsOn??e?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,o=F(t),a=o.getDay(),i=(a=o.getTime()?r+1:e.getTime()>=i.getTime()?r:r-1}function X(t){const e=F(t);return e.setHours(0,0,0,0),e}function $(t){const e=F(t),r=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return r.setUTCFullYear(e.getFullYear()),+t-+r}function K(t){if(!(e=t,e instanceof Date||"object"==typeof e&&"[object Date]"===Object.prototype.toString.call(e)||"number"==typeof t))return!1;var e;const r=F(t);return!isNaN(Number(r))}const Z={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function J(t){return(e={})=>{const r=e.width?String(e.width):t.defaultWidth;return t.formats[r]||t.formats[t.defaultWidth]}}const U={date:J({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:J({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:J({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},V={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function tt(t){return(e,r)=>{let n;if("formatting"===(r?.context?String(r.context):"standalone")&&t.formattingValues){const e=t.defaultFormattingWidth||t.defaultWidth,o=r?.width?String(r.width):e;n=t.formattingValues[o]||t.formattingValues[e]}else{const e=t.defaultWidth,o=r?.width?String(r.width):t.defaultWidth;n=t.values[o]||t.values[e]}return n[t.argumentCallback?t.argumentCallback(e):e]}}function et(t){return(e,r={})=>{const n=r.width,o=n&&t.matchPatterns[n]||t.matchPatterns[t.defaultMatchWidth],a=e.match(o);if(!a)return null;const i=a[0],s=n&&t.parsePatterns[n]||t.parsePatterns[t.defaultParseWidth],u=Array.isArray(s)?function(t,e){for(let r=0;rt.test(i))):function(t,e){for(const r in t)if(Object.prototype.hasOwnProperty.call(t,r)&&e(t[r]))return r;return}(s,(t=>t.test(i)));let c;c=t.valueCallback?t.valueCallback(u):u,c=r.valueCallback?r.valueCallback(c):c;return{value:c,rest:e.slice(i.length)}}}var rt;const nt={code:"en-US",formatDistance:(t,e,r)=>{let n;const o=Z[t];return n="string"==typeof o?o:1===e?o.one:o.other.replace("{{count}}",e.toString()),r?.addSuffix?r.comparison&&r.comparison>0?"in "+n:n+" ago":n},formatLong:U,formatRelative:(t,e,r,n)=>V[t],localize:{ordinalNumber:(t,e)=>{const r=Number(t),n=r%100;if(n>20||n<10)switch(n%10){case 1:return r+"st";case 2:return r+"nd";case 3:return r+"rd"}return r+"th"},era:tt({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:tt({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:t=>t-1}),month:tt({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:tt({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:tt({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(rt={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:t=>parseInt(t,10)},(t,e={})=>{const r=t.match(rt.matchPattern);if(!r)return null;const n=r[0],o=t.match(rt.parsePattern);if(!o)return null;let a=rt.valueCallback?rt.valueCallback(o[0]):o[0];return a=e.valueCallback?e.valueCallback(a):a,{value:a,rest:t.slice(n.length)}}),era:et({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:et({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:t=>t+1}),month:et({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:et({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:et({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function ot(t){const e=F(t),r=function(t,e){const r=X(t),n=X(e),o=+r-$(r),a=+n-$(n);return Math.round((o-a)/864e5)}(e,function(t){const e=F(t),r=R(t,0);return r.setFullYear(e.getFullYear(),0,1),r.setHours(0,0,0,0),r}(e));return r+1}function at(t){const e=F(t),r=+B(e)-+function(t){const e=_(t),r=R(t,0);return r.setFullYear(e,0,4),r.setHours(0,0,0,0),B(r)}(e);return Math.round(r/I)+1}function it(t,e){const r=F(t),n=r.getFullYear(),o=G(),a=e?.firstWeekContainsDate??e?.locale?.options?.firstWeekContainsDate??o.firstWeekContainsDate??o.locale?.options?.firstWeekContainsDate??1,i=R(t,0);i.setFullYear(n+1,0,a),i.setHours(0,0,0,0);const s=z(i,e),u=R(t,0);u.setFullYear(n,0,a),u.setHours(0,0,0,0);const c=z(u,e);return r.getTime()>=s.getTime()?n+1:r.getTime()>=c.getTime()?n:n-1}function st(t,e){const r=F(t),n=+z(r,e)-+function(t,e){const r=G(),n=e?.firstWeekContainsDate??e?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,o=it(t,e),a=R(t,0);return a.setFullYear(o,0,n),a.setHours(0,0,0,0),z(a,e)}(r,e);return Math.round(n/I)+1}function ut(t,e){return(t<0?"-":"")+Math.abs(t).toString().padStart(e,"0")}const ct={y(t,e){const r=t.getFullYear(),n=r>0?r:1-r;return ut("yy"===e?n%100:n,e.length)},M(t,e){const r=t.getMonth();return"M"===e?String(r+1):ut(r+1,2)},d:(t,e)=>ut(t.getDate(),e.length),a(t,e){const r=t.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return r.toUpperCase();case"aaa":return r;case"aaaaa":return r[0];default:return"am"===r?"a.m.":"p.m."}},h:(t,e)=>ut(t.getHours()%12||12,e.length),H:(t,e)=>ut(t.getHours(),e.length),m:(t,e)=>ut(t.getMinutes(),e.length),s:(t,e)=>ut(t.getSeconds(),e.length),S(t,e){const r=e.length,n=t.getMilliseconds();return ut(Math.trunc(n*Math.pow(10,r-3)),e.length)}},dt="midnight",ht="noon",lt="morning",ft="afternoon",pt="evening",gt="night",mt={G:function(t,e,r){const n=t.getFullYear()>0?1:0;switch(e){case"G":case"GG":case"GGG":return r.era(n,{width:"abbreviated"});case"GGGGG":return r.era(n,{width:"narrow"});default:return r.era(n,{width:"wide"})}},y:function(t,e,r){if("yo"===e){const e=t.getFullYear(),n=e>0?e:1-e;return r.ordinalNumber(n,{unit:"year"})}return ct.y(t,e)},Y:function(t,e,r,n){const o=it(t,n),a=o>0?o:1-o;if("YY"===e){return ut(a%100,2)}return"Yo"===e?r.ordinalNumber(a,{unit:"year"}):ut(a,e.length)},R:function(t,e){return ut(_(t),e.length)},u:function(t,e){return ut(t.getFullYear(),e.length)},Q:function(t,e,r){const n=Math.ceil((t.getMonth()+1)/3);switch(e){case"Q":return String(n);case"QQ":return ut(n,2);case"Qo":return r.ordinalNumber(n,{unit:"quarter"});case"QQQ":return r.quarter(n,{width:"abbreviated",context:"formatting"});case"QQQQQ":return r.quarter(n,{width:"narrow",context:"formatting"});default:return r.quarter(n,{width:"wide",context:"formatting"})}},q:function(t,e,r){const n=Math.ceil((t.getMonth()+1)/3);switch(e){case"q":return String(n);case"qq":return ut(n,2);case"qo":return r.ordinalNumber(n,{unit:"quarter"});case"qqq":return r.quarter(n,{width:"abbreviated",context:"standalone"});case"qqqqq":return r.quarter(n,{width:"narrow",context:"standalone"});default:return r.quarter(n,{width:"wide",context:"standalone"})}},M:function(t,e,r){const n=t.getMonth();switch(e){case"M":case"MM":return ct.M(t,e);case"Mo":return r.ordinalNumber(n+1,{unit:"month"});case"MMM":return r.month(n,{width:"abbreviated",context:"formatting"});case"MMMMM":return r.month(n,{width:"narrow",context:"formatting"});default:return r.month(n,{width:"wide",context:"formatting"})}},L:function(t,e,r){const n=t.getMonth();switch(e){case"L":return String(n+1);case"LL":return ut(n+1,2);case"Lo":return r.ordinalNumber(n+1,{unit:"month"});case"LLL":return r.month(n,{width:"abbreviated",context:"standalone"});case"LLLLL":return r.month(n,{width:"narrow",context:"standalone"});default:return r.month(n,{width:"wide",context:"standalone"})}},w:function(t,e,r,n){const o=st(t,n);return"wo"===e?r.ordinalNumber(o,{unit:"week"}):ut(o,e.length)},I:function(t,e,r){const n=at(t);return"Io"===e?r.ordinalNumber(n,{unit:"week"}):ut(n,e.length)},d:function(t,e,r){return"do"===e?r.ordinalNumber(t.getDate(),{unit:"date"}):ct.d(t,e)},D:function(t,e,r){const n=ot(t);return"Do"===e?r.ordinalNumber(n,{unit:"dayOfYear"}):ut(n,e.length)},E:function(t,e,r){const n=t.getDay();switch(e){case"E":case"EE":case"EEE":return r.day(n,{width:"abbreviated",context:"formatting"});case"EEEEE":return r.day(n,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(n,{width:"short",context:"formatting"});default:return r.day(n,{width:"wide",context:"formatting"})}},e:function(t,e,r,n){const o=t.getDay(),a=(o-n.weekStartsOn+8)%7||7;switch(e){case"e":return String(a);case"ee":return ut(a,2);case"eo":return r.ordinalNumber(a,{unit:"day"});case"eee":return r.day(o,{width:"abbreviated",context:"formatting"});case"eeeee":return r.day(o,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(o,{width:"short",context:"formatting"});default:return r.day(o,{width:"wide",context:"formatting"})}},c:function(t,e,r,n){const o=t.getDay(),a=(o-n.weekStartsOn+8)%7||7;switch(e){case"c":return String(a);case"cc":return ut(a,e.length);case"co":return r.ordinalNumber(a,{unit:"day"});case"ccc":return r.day(o,{width:"abbreviated",context:"standalone"});case"ccccc":return r.day(o,{width:"narrow",context:"standalone"});case"cccccc":return r.day(o,{width:"short",context:"standalone"});default:return r.day(o,{width:"wide",context:"standalone"})}},i:function(t,e,r){const n=t.getDay(),o=0===n?7:n;switch(e){case"i":return String(o);case"ii":return ut(o,e.length);case"io":return r.ordinalNumber(o,{unit:"day"});case"iii":return r.day(n,{width:"abbreviated",context:"formatting"});case"iiiii":return r.day(n,{width:"narrow",context:"formatting"});case"iiiiii":return r.day(n,{width:"short",context:"formatting"});default:return r.day(n,{width:"wide",context:"formatting"})}},a:function(t,e,r){const n=t.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return r.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"aaa":return r.dayPeriod(n,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return r.dayPeriod(n,{width:"narrow",context:"formatting"});default:return r.dayPeriod(n,{width:"wide",context:"formatting"})}},b:function(t,e,r){const n=t.getHours();let o;switch(o=12===n?ht:0===n?dt:n/12>=1?"pm":"am",e){case"b":case"bb":return r.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"bbb":return r.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return r.dayPeriod(o,{width:"narrow",context:"formatting"});default:return r.dayPeriod(o,{width:"wide",context:"formatting"})}},B:function(t,e,r){const n=t.getHours();let o;switch(o=n>=17?pt:n>=12?ft:n>=4?lt:gt,e){case"B":case"BB":case"BBB":return r.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"BBBBB":return r.dayPeriod(o,{width:"narrow",context:"formatting"});default:return r.dayPeriod(o,{width:"wide",context:"formatting"})}},h:function(t,e,r){if("ho"===e){let e=t.getHours()%12;return 0===e&&(e=12),r.ordinalNumber(e,{unit:"hour"})}return ct.h(t,e)},H:function(t,e,r){return"Ho"===e?r.ordinalNumber(t.getHours(),{unit:"hour"}):ct.H(t,e)},K:function(t,e,r){const n=t.getHours()%12;return"Ko"===e?r.ordinalNumber(n,{unit:"hour"}):ut(n,e.length)},k:function(t,e,r){let n=t.getHours();return 0===n&&(n=24),"ko"===e?r.ordinalNumber(n,{unit:"hour"}):ut(n,e.length)},m:function(t,e,r){return"mo"===e?r.ordinalNumber(t.getMinutes(),{unit:"minute"}):ct.m(t,e)},s:function(t,e,r){return"so"===e?r.ordinalNumber(t.getSeconds(),{unit:"second"}):ct.s(t,e)},S:function(t,e){return ct.S(t,e)},X:function(t,e,r){const n=t.getTimezoneOffset();if(0===n)return"Z";switch(e){case"X":return yt(n);case"XXXX":case"XX":return vt(n);default:return vt(n,":")}},x:function(t,e,r){const n=t.getTimezoneOffset();switch(e){case"x":return yt(n);case"xxxx":case"xx":return vt(n);default:return vt(n,":")}},O:function(t,e,r){const n=t.getTimezoneOffset();switch(e){case"O":case"OO":case"OOO":return"GMT"+wt(n,":");default:return"GMT"+vt(n,":")}},z:function(t,e,r){const n=t.getTimezoneOffset();switch(e){case"z":case"zz":case"zzz":return"GMT"+wt(n,":");default:return"GMT"+vt(n,":")}},t:function(t,e,r){return ut(Math.trunc(t.getTime()/1e3),e.length)},T:function(t,e,r){return ut(t.getTime(),e.length)}};function wt(t,e=""){const r=t>0?"-":"+",n=Math.abs(t),o=Math.trunc(n/60),a=n%60;return 0===a?r+String(o):r+String(o)+e+ut(a,2)}function yt(t,e){if(t%60==0){return(t>0?"-":"+")+ut(Math.abs(t)/60,2)}return vt(t,e)}function vt(t,e=""){const r=t>0?"-":"+",n=Math.abs(t);return r+ut(Math.trunc(n/60),2)+e+ut(n%60,2)}const bt=(t,e)=>{switch(t){case"P":return e.date({width:"short"});case"PP":return e.date({width:"medium"});case"PPP":return e.date({width:"long"});default:return e.date({width:"full"})}},kt=(t,e)=>{switch(t){case"p":return e.time({width:"short"});case"pp":return e.time({width:"medium"});case"ppp":return e.time({width:"long"});default:return e.time({width:"full"})}},xt={p:kt,P:(t,e)=>{const r=t.match(/(P+)(p+)?/)||[],n=r[1],o=r[2];if(!o)return bt(t,e);let a;switch(n){case"P":a=e.dateTime({width:"short"});break;case"PP":a=e.dateTime({width:"medium"});break;case"PPP":a=e.dateTime({width:"long"});break;default:a=e.dateTime({width:"full"})}return a.replace("{{date}}",bt(n,e)).replace("{{time}}",kt(o,e))}},Tt=/^D+$/,Mt=/^Y+$/,St=["D","DD","YY","YYYY"];function Pt(t){return Tt.test(t)}function Et(t){return Mt.test(t)}function Dt(t,e,r){const n=function(t,e,r){const n="Y"===t[0]?"years":"days of the month";return`Use \`${t.toLowerCase()}\` instead of \`${t}\` (in \`${e}\`) for formatting ${n} to the input \`${r}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}(t,e,r);if(console.warn(n),St.includes(t))throw new RangeError(n)}const Ot=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,At=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,qt=/^'([^]*?)'?$/,Ht=/''/g,Nt=/[a-zA-Z]/;function Ct(t,e,r){const n=G(),o=n.locale??nt,a=n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,i=n.weekStartsOn??n.locale?.options?.weekStartsOn??0,s=F(t);if(!K(s))throw new RangeError("Invalid time value");let u=e.match(At).map((t=>{const e=t[0];if("p"===e||"P"===e){return(0,xt[e])(t,o.formatLong)}return t})).join("").match(Ot).map((t=>{if("''"===t)return{isToken:!1,value:"'"};const e=t[0];if("'"===e)return{isToken:!1,value:Lt(t)};if(mt[e])return{isToken:!0,value:t};if(e.match(Nt))throw new RangeError("Format string contains an unescaped latin alphabet character `"+e+"`");return{isToken:!1,value:t}}));o.localize.preprocessor&&(u=o.localize.preprocessor(s,u));const c={firstWeekContainsDate:a,weekStartsOn:i,locale:o};return u.map((r=>{if(!r.isToken)return r.value;const n=r.value;(Et(n)||Pt(n))&&Dt(n,e,String(t));return(0,mt[n[0]])(s,n,o.localize,c)})).join("")}function Lt(t){const e=t.match(qt);return e?e[1].replace(Ht,"'"):t}class jt{subPriority=0;validate(t,e){return!0}}class Yt extends jt{constructor(t,e,r,n,o){super(),this.value=t,this.validateValue=e,this.setValue=r,this.priority=n,o&&(this.subPriority=o)}validate(t,e){return this.validateValue(t,this.value,e)}set(t,e,r){return this.setValue(t,e,this.value,r)}}class Ft extends jt{priority=10;subPriority=-1;set(t,e){return e.timestampIsSet?t:R(t,function(t,e){const r=e instanceof Date?R(e,0):new e(0);return r.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),r.setHours(t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()),r}(t,Date))}}class Rt{run(t,e,r,n){const o=this.parse(t,e,r,n);return o?{setter:new Yt(o.value,this.validate,this.set,this.priority,this.subPriority),rest:o.rest}:null}validate(t,e,r){return!0}}const Wt=/^(1[0-2]|0?\d)/,It=/^(3[0-1]|[0-2]?\d)/,Qt=/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,Gt=/^(5[0-3]|[0-4]?\d)/,zt=/^(2[0-3]|[0-1]?\d)/,Bt=/^(2[0-4]|[0-1]?\d)/,_t=/^(1[0-1]|0?\d)/,Xt=/^(1[0-2]|0?\d)/,$t=/^[0-5]?\d/,Kt=/^[0-5]?\d/,Zt=/^\d/,Jt=/^\d{1,2}/,Ut=/^\d{1,3}/,Vt=/^\d{1,4}/,te=/^-?\d+/,ee=/^-?\d/,re=/^-?\d{1,2}/,ne=/^-?\d{1,3}/,oe=/^-?\d{1,4}/,ae=/^([+-])(\d{2})(\d{2})?|Z/,ie=/^([+-])(\d{2})(\d{2})|Z/,se=/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,ue=/^([+-])(\d{2}):(\d{2})|Z/,ce=/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/;function de(t,e){return t?{value:e(t.value),rest:t.rest}:t}function he(t,e){const r=e.match(t);return r?{value:parseInt(r[0],10),rest:e.slice(r[0].length)}:null}function le(t,e){const r=e.match(t);if(!r)return null;if("Z"===r[0])return{value:0,rest:e.slice(1)};return{value:("+"===r[1]?1:-1)*(36e5*(r[2]?parseInt(r[2],10):0)+6e4*(r[3]?parseInt(r[3],10):0)+1e3*(r[5]?parseInt(r[5],10):0)),rest:e.slice(r[0].length)}}function fe(t){return he(te,t)}function pe(t,e){switch(t){case 1:return he(Zt,e);case 2:return he(Jt,e);case 3:return he(Ut,e);case 4:return he(Vt,e);default:return he(new RegExp("^\\d{1,"+t+"}"),e)}}function ge(t,e){switch(t){case 1:return he(ee,e);case 2:return he(re,e);case 3:return he(ne,e);case 4:return he(oe,e);default:return he(new RegExp("^-?\\d{1,"+t+"}"),e)}}function me(t){switch(t){case"morning":return 4;case"evening":return 17;case"pm":case"noon":case"afternoon":return 12;default:return 0}}function we(t,e){const r=e>0,n=r?e:1-e;let o;if(n<=50)o=t||100;else{const e=n+50;o=t+100*Math.trunc(e/100)-(t>=e%100?100:0)}return r?o:1-o}function ye(t){return t%400==0||t%4==0&&t%100!=0}const ve=[31,28,31,30,31,30,31,31,30,31,30,31],be=[31,29,31,30,31,30,31,31,30,31,30,31];function ke(t,e,r){const n=G(),o=r?.weekStartsOn??r?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=F(t),i=a.getDay(),s=7-o;return W(a,e<0||e>6?e-(i+s)%7:((e%7+7)%7+s)%7-(i+s)%7)}function xe(t,e){const r=F(t),n=function(t){let e=F(t).getDay();return 0===e&&(e=7),e}(r);return W(r,e-n)}const Te={G:new class extends Rt{priority=140;parse(t,e,r){switch(e){case"G":case"GG":case"GGG":return r.era(t,{width:"abbreviated"})||r.era(t,{width:"narrow"});case"GGGGG":return r.era(t,{width:"narrow"});default:return r.era(t,{width:"wide"})||r.era(t,{width:"abbreviated"})||r.era(t,{width:"narrow"})}}set(t,e,r){return e.era=r,t.setFullYear(r,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["R","u","t","T"]},y:new class extends Rt{priority=130;incompatibleTokens=["Y","R","u","w","I","i","e","c","t","T"];parse(t,e,r){const n=t=>({year:t,isTwoDigitYear:"yy"===e});switch(e){case"y":return de(pe(4,t),n);case"yo":return de(r.ordinalNumber(t,{unit:"year"}),n);default:return de(pe(e.length,t),n)}}validate(t,e){return e.isTwoDigitYear||e.year>0}set(t,e,r){const n=t.getFullYear();if(r.isTwoDigitYear){const e=we(r.year,n);return t.setFullYear(e,0,1),t.setHours(0,0,0,0),t}const o="era"in e&&1!==e.era?1-r.year:r.year;return t.setFullYear(o,0,1),t.setHours(0,0,0,0),t}},Y:new class extends Rt{priority=130;parse(t,e,r){const n=t=>({year:t,isTwoDigitYear:"YY"===e});switch(e){case"Y":return de(pe(4,t),n);case"Yo":return de(r.ordinalNumber(t,{unit:"year"}),n);default:return de(pe(e.length,t),n)}}validate(t,e){return e.isTwoDigitYear||e.year>0}set(t,e,r,n){const o=it(t,n);if(r.isTwoDigitYear){const e=we(r.year,o);return t.setFullYear(e,0,n.firstWeekContainsDate),t.setHours(0,0,0,0),z(t,n)}const a="era"in e&&1!==e.era?1-r.year:r.year;return t.setFullYear(a,0,n.firstWeekContainsDate),t.setHours(0,0,0,0),z(t,n)}incompatibleTokens=["y","R","u","Q","q","M","L","I","d","D","i","t","T"]},R:new class extends Rt{priority=130;parse(t,e){return ge("R"===e?4:e.length,t)}set(t,e,r){const n=R(t,0);return n.setFullYear(r,0,4),n.setHours(0,0,0,0),B(n)}incompatibleTokens=["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"]},u:new class extends Rt{priority=130;parse(t,e){return ge("u"===e?4:e.length,t)}set(t,e,r){return t.setFullYear(r,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["G","y","Y","R","w","I","i","e","c","t","T"]},Q:new class extends Rt{priority=120;parse(t,e,r){switch(e){case"Q":case"QQ":return pe(e.length,t);case"Qo":return r.ordinalNumber(t,{unit:"quarter"});case"QQQ":return r.quarter(t,{width:"abbreviated",context:"formatting"})||r.quarter(t,{width:"narrow",context:"formatting"});case"QQQQQ":return r.quarter(t,{width:"narrow",context:"formatting"});default:return r.quarter(t,{width:"wide",context:"formatting"})||r.quarter(t,{width:"abbreviated",context:"formatting"})||r.quarter(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=1&&e<=4}set(t,e,r){return t.setMonth(3*(r-1),1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","M","L","w","I","d","D","i","e","c","t","T"]},q:new class extends Rt{priority=120;parse(t,e,r){switch(e){case"q":case"qq":return pe(e.length,t);case"qo":return r.ordinalNumber(t,{unit:"quarter"});case"qqq":return r.quarter(t,{width:"abbreviated",context:"standalone"})||r.quarter(t,{width:"narrow",context:"standalone"});case"qqqqq":return r.quarter(t,{width:"narrow",context:"standalone"});default:return r.quarter(t,{width:"wide",context:"standalone"})||r.quarter(t,{width:"abbreviated",context:"standalone"})||r.quarter(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=1&&e<=4}set(t,e,r){return t.setMonth(3*(r-1),1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","Q","M","L","w","I","d","D","i","e","c","t","T"]},M:new class extends Rt{incompatibleTokens=["Y","R","q","Q","L","w","I","D","i","e","c","t","T"];priority=110;parse(t,e,r){const n=t=>t-1;switch(e){case"M":return de(he(Wt,t),n);case"MM":return de(pe(2,t),n);case"Mo":return de(r.ordinalNumber(t,{unit:"month"}),n);case"MMM":return r.month(t,{width:"abbreviated",context:"formatting"})||r.month(t,{width:"narrow",context:"formatting"});case"MMMMM":return r.month(t,{width:"narrow",context:"formatting"});default:return r.month(t,{width:"wide",context:"formatting"})||r.month(t,{width:"abbreviated",context:"formatting"})||r.month(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.setMonth(r,1),t.setHours(0,0,0,0),t}},L:new class extends Rt{priority=110;parse(t,e,r){const n=t=>t-1;switch(e){case"L":return de(he(Wt,t),n);case"LL":return de(pe(2,t),n);case"Lo":return de(r.ordinalNumber(t,{unit:"month"}),n);case"LLL":return r.month(t,{width:"abbreviated",context:"standalone"})||r.month(t,{width:"narrow",context:"standalone"});case"LLLLL":return r.month(t,{width:"narrow",context:"standalone"});default:return r.month(t,{width:"wide",context:"standalone"})||r.month(t,{width:"abbreviated",context:"standalone"})||r.month(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.setMonth(r,1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","w","I","D","i","e","c","t","T"]},w:new class extends Rt{priority=100;parse(t,e,r){switch(e){case"w":return he(Gt,t);case"wo":return r.ordinalNumber(t,{unit:"week"});default:return pe(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,e,r,n){return z(function(t,e,r){const n=F(t),o=st(n,r)-e;return n.setDate(n.getDate()-7*o),n}(t,r,n),n)}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","i","t","T"]},I:new class extends Rt{priority=100;parse(t,e,r){switch(e){case"I":return he(Gt,t);case"Io":return r.ordinalNumber(t,{unit:"week"});default:return pe(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,e,r){return B(function(t,e){const r=F(t),n=at(r)-e;return r.setDate(r.getDate()-7*n),r}(t,r))}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","e","c","t","T"]},d:new class extends Rt{priority=90;subPriority=1;parse(t,e,r){switch(e){case"d":return he(It,t);case"do":return r.ordinalNumber(t,{unit:"date"});default:return pe(e.length,t)}}validate(t,e){const r=ye(t.getFullYear()),n=t.getMonth();return r?e>=1&&e<=be[n]:e>=1&&e<=ve[n]}set(t,e,r){return t.setDate(r),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","w","I","D","i","e","c","t","T"]},D:new class extends Rt{priority=90;subpriority=1;parse(t,e,r){switch(e){case"D":case"DD":return he(Qt,t);case"Do":return r.ordinalNumber(t,{unit:"date"});default:return pe(e.length,t)}}validate(t,e){return ye(t.getFullYear())?e>=1&&e<=366:e>=1&&e<=365}set(t,e,r){return t.setMonth(0,r),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","L","w","I","d","E","i","e","c","t","T"]},E:new class extends Rt{priority=90;parse(t,e,r){switch(e){case"E":case"EE":case"EEE":return r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});case"EEEEE":return r.day(t,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});default:return r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=ke(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["D","i","e","c","t","T"]},e:new class extends Rt{priority=90;parse(t,e,r,n){const o=t=>{const e=7*Math.floor((t-1)/7);return(t+n.weekStartsOn+6)%7+e};switch(e){case"e":case"ee":return de(pe(e.length,t),o);case"eo":return de(r.ordinalNumber(t,{unit:"day"}),o);case"eee":return r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});case"eeeee":return r.day(t,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});default:return r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=ke(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","c","t","T"]},c:new class extends Rt{priority=90;parse(t,e,r,n){const o=t=>{const e=7*Math.floor((t-1)/7);return(t+n.weekStartsOn+6)%7+e};switch(e){case"c":case"cc":return de(pe(e.length,t),o);case"co":return de(r.ordinalNumber(t,{unit:"day"}),o);case"ccc":return r.day(t,{width:"abbreviated",context:"standalone"})||r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"});case"ccccc":return r.day(t,{width:"narrow",context:"standalone"});case"cccccc":return r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"});default:return r.day(t,{width:"wide",context:"standalone"})||r.day(t,{width:"abbreviated",context:"standalone"})||r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=ke(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","e","t","T"]},i:new class extends Rt{priority=90;parse(t,e,r){const n=t=>0===t?7:t;switch(e){case"i":case"ii":return pe(e.length,t);case"io":return r.ordinalNumber(t,{unit:"day"});case"iii":return de(r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n);case"iiiii":return de(r.day(t,{width:"narrow",context:"formatting"}),n);case"iiiiii":return de(r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n);default:return de(r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n)}}validate(t,e){return e>=1&&e<=7}set(t,e,r){return(t=xe(t,r)).setHours(0,0,0,0),t}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","E","e","c","t","T"]},a:new class extends Rt{priority=80;parse(t,e,r){switch(e){case"a":case"aa":case"aaa":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"aaaaa":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(me(r),0,0,0),t}incompatibleTokens=["b","B","H","k","t","T"]},b:new class extends Rt{priority=80;parse(t,e,r){switch(e){case"b":case"bb":case"bbb":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"bbbbb":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(me(r),0,0,0),t}incompatibleTokens=["a","B","H","k","t","T"]},B:new class extends Rt{priority=80;parse(t,e,r){switch(e){case"B":case"BB":case"BBB":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"BBBBB":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(me(r),0,0,0),t}incompatibleTokens=["a","b","t","T"]},h:new class extends Rt{priority=70;parse(t,e,r){switch(e){case"h":return he(Xt,t);case"ho":return r.ordinalNumber(t,{unit:"hour"});default:return pe(e.length,t)}}validate(t,e){return e>=1&&e<=12}set(t,e,r){const n=t.getHours()>=12;return n&&r<12?t.setHours(r+12,0,0,0):n||12!==r?t.setHours(r,0,0,0):t.setHours(0,0,0,0),t}incompatibleTokens=["H","K","k","t","T"]},H:new class extends Rt{priority=70;parse(t,e,r){switch(e){case"H":return he(zt,t);case"Ho":return r.ordinalNumber(t,{unit:"hour"});default:return pe(e.length,t)}}validate(t,e){return e>=0&&e<=23}set(t,e,r){return t.setHours(r,0,0,0),t}incompatibleTokens=["a","b","h","K","k","t","T"]},K:new class extends Rt{priority=70;parse(t,e,r){switch(e){case"K":return he(_t,t);case"Ko":return r.ordinalNumber(t,{unit:"hour"});default:return pe(e.length,t)}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.getHours()>=12&&r<12?t.setHours(r+12,0,0,0):t.setHours(r,0,0,0),t}incompatibleTokens=["h","H","k","t","T"]},k:new class extends Rt{priority=70;parse(t,e,r){switch(e){case"k":return he(Bt,t);case"ko":return r.ordinalNumber(t,{unit:"hour"});default:return pe(e.length,t)}}validate(t,e){return e>=1&&e<=24}set(t,e,r){const n=r<=24?r%24:r;return t.setHours(n,0,0,0),t}incompatibleTokens=["a","b","h","H","K","t","T"]},m:new class extends Rt{priority=60;parse(t,e,r){switch(e){case"m":return he($t,t);case"mo":return r.ordinalNumber(t,{unit:"minute"});default:return pe(e.length,t)}}validate(t,e){return e>=0&&e<=59}set(t,e,r){return t.setMinutes(r,0,0),t}incompatibleTokens=["t","T"]},s:new class extends Rt{priority=50;parse(t,e,r){switch(e){case"s":return he(Kt,t);case"so":return r.ordinalNumber(t,{unit:"second"});default:return pe(e.length,t)}}validate(t,e){return e>=0&&e<=59}set(t,e,r){return t.setSeconds(r,0),t}incompatibleTokens=["t","T"]},S:new class extends Rt{priority=30;parse(t,e){return de(pe(e.length,t),(t=>Math.trunc(t*Math.pow(10,3-e.length))))}set(t,e,r){return t.setMilliseconds(r),t}incompatibleTokens=["t","T"]},X:new class extends Rt{priority=10;parse(t,e){switch(e){case"X":return le(ae,t);case"XX":return le(ie,t);case"XXXX":return le(se,t);case"XXXXX":return le(ce,t);default:return le(ue,t)}}set(t,e,r){return e.timestampIsSet?t:R(t,t.getTime()-$(t)-r)}incompatibleTokens=["t","T","x"]},x:new class extends Rt{priority=10;parse(t,e){switch(e){case"x":return le(ae,t);case"xx":return le(ie,t);case"xxxx":return le(se,t);case"xxxxx":return le(ce,t);default:return le(ue,t)}}set(t,e,r){return e.timestampIsSet?t:R(t,t.getTime()-$(t)-r)}incompatibleTokens=["t","T","X"]},t:new class extends Rt{priority=40;parse(t){return fe(t)}set(t,e,r){return[R(t,1e3*r),{timestampIsSet:!0}]}incompatibleTokens="*"},T:new class extends Rt{priority=20;parse(t){return fe(t)}set(t,e,r){return[R(t,r),{timestampIsSet:!0}]}incompatibleTokens="*"}},Me=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Se=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Pe=/^'([^]*?)'?$/,Ee=/''/g,De=/\S/,Oe=/[a-zA-Z]/;function Ae(t,e,r,n){const o=Object.assign({},G()),a=o.locale??nt,i=o.firstWeekContainsDate??o.locale?.options?.firstWeekContainsDate??1,s=o.weekStartsOn??o.locale?.options?.weekStartsOn??0;if(""===e)return""===t?F(r):R(r,NaN);const u={firstWeekContainsDate:i,weekStartsOn:s,locale:a},c=[new Ft],d=e.match(Se).map((t=>{const e=t[0];if(e in xt){return(0,xt[e])(t,a.formatLong)}return t})).join("").match(Me),h=[];for(let n of d){Et(n)&&Dt(n,e,t),Pt(n)&&Dt(n,e,t);const o=n[0],i=Te[o];if(i){const{incompatibleTokens:e}=i;if(Array.isArray(e)){const t=h.find((t=>e.includes(t.token)||t.token===o));if(t)throw new RangeError(`The format string mustn't contain \`${t.fullToken}\` and \`${n}\` at the same time`)}else if("*"===i.incompatibleTokens&&h.length>0)throw new RangeError(`The format string mustn't contain \`${n}\` and any other token at the same time`);h.push({token:o,fullToken:n});const s=i.run(t,n,a.match,u);if(!s)return R(r,NaN);c.push(s.setter),t=s.rest}else{if(o.match(Oe))throw new RangeError("Format string contains an unescaped latin alphabet character `"+o+"`");if("''"===n?n="'":"'"===o&&(n=n.match(Pe)[1].replace(Ee,"'")),0!==t.indexOf(n))return R(r,NaN);t=t.slice(n.length)}}if(t.length>0&&De.test(t))return R(r,NaN);const l=c.map((t=>t.priority)).sort(((t,e)=>e-t)).filter(((t,e,r)=>r.indexOf(t)===e)).map((t=>c.filter((e=>e.priority===t)).sort(((t,e)=>e.subPriority-t.subPriority)))).map((t=>t[0]));let f=F(r);if(isNaN(f.getTime()))return R(r,NaN);const p={};for(const t of l){if(!t.validate(f,u))return R(r,NaN);const e=t.set(f,p,u);Array.isArray(e)?(f=e[0],Object.assign(p,e[1])):f=e}return R(r,f)}var qe=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,e),a(this,e,[t,r,"store-hour",n])}return l(e,t),c(e,[{key:"day",get:function(){return this.getAttribute("day")}},{key:"isClosed",get:function(){return null===this.getAttribute("start")&&null===this.getAttribute("end")}},{key:"is24Hours",get:function(){var t=this.startDateInstance,e=this.endDateInstance,r=Math.abs(t-e);return Math.floor(r/1e3/60)/60>23}},{key:"startDateInstance",get:function(){if(!this.hasAttribute("start"))return null;var t=this.getAttribute("start"),e=3===t.split(":").length;return Ae(t,e?"HH:mm:ss":"HH:mm",new Date)}},{key:"endDateInstance",get:function(){if(!this.hasAttribute("end"))return null;var t=this.getAttribute("end"),e=3===t.split(":").length;return Ae(t,e?"HH:mm:ss":"HH:mm",new Date)}},{key:"humanReadableHoursRange",get:function(){return K(this.startDateInstance)&&K(this.endDateInstance)?"".concat(Ct(this.startDateInstance,"p")," - ").concat(Ct(this.endDateInstance,"p")):"".concat(this.start," - ").concat(this.end)}},{key:"humanReadableHours",get:function(){return this.isClosed?"Closed":this.is24Hours?"24 Hours":this.humanReadableHoursRange}},{key:"create",value:function(){throw new Error("There is no create() method store location!")}},{key:"update",value:function(){throw new Error("There is no update() method store location!")}},{key:"destroy",value:function(){throw new Error("There is no destroy() method store location!")}},{key:"reload",value:function(){throw new Error("There is no reload() method store location!")}}])}(x),He=function(t){function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,r),a(this,r,[t,e,"store-location",n])}return l(r,t),c(r,[{key:"latitude",get:function(){return this.getAttribute("place.location.coordinates.1")}},{key:"longitude",get:function(){return this.getAttribute("place.location.coordinates.0")}},{key:"hours",get:function(){return new e.Collection(this.getAttribute("hours").map((function(t){return new qe(t)})))}},{key:"isAlwaysOpen",get:function(){return this.hours.every((function(t){return null==t?void 0:t.is24Hours}))}},{key:"today",get:function(){var t=Ct(new Date,"EEEE");return this.schedule[t]}},{key:"schedule",get:function(){for(var t={},r=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],n=0;n0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,r),a(this,r,[t,e,"store",n])}return l(r,t),c(r,[{key:"getReviews",value:function(){var t=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("reviews",g({store:this.id},r)).then((function(r){return new e.Collection(r.map((function(e){return new M(e,t.adapter)})))}))}},{key:"getLocations",value:function(){var t=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("locations",g({store:this.id},r)).then((function(r){return new e.Collection(r.map((function(r){return r.place&&(r.place=new e.Place(r.place)),new He(r,t.adapter)})))}))}},{key:"getLocation",value:function(t){var e=this;return this.adapter.get("locations/".concat(t),{store:this.id}).then((function(t){return new He(t,e.adapter)}))}},{key:"getPaymentGateways",value:function(){var t=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("gateways",r).then((function(r){return new e.Collection(r.map((function(e){return new Y(e,t.adapter)})))}))}},{key:"getPaymentGateway",value:function(t){var e=this;return this.adapter.get("gateways/".concat(t)).then((function(t){return new Y(t,e.adapter)}))}}])}(x),Ce=function(t){function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,r),a(this,r,[t,e,"network",n])}return l(r,t),c(r,[{key:"getTags",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("tags",t)}},{key:"getResourceCollection",value:(d=o(w().mark((function t(r,n){var o,a,i=this,s=arguments;return w().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o=s.length>2&&void 0!==s[2]?s[2]:{},t.prev=1,t.next=4,this.adapter.get(r,o);case 4:return a=t.sent,t.abrupt("return",new e.Collection(a.map((function(t){return new n(t,i.adapter)}))));case 8:throw t.prev=8,t.t0=t.catch(1),console.error("Error fetching ".concat(r,":"),t.t0),t.t0;case 12:case"end":return t.stop()}}),t,this,[[1,8]])}))),function(t,e){return d.apply(this,arguments)})},{key:"getStores",value:(u=o(w().mark((function t(){var e,r=arguments;return w().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=r.length>0&&void 0!==r[0]?r[0]:{},t.abrupt("return",this.getResourceCollection("stores",Ne,e));case 2:case"end":return t.stop()}}),t,this)}))),function(){return u.apply(this,arguments)})},{key:"getStoreLocations",value:(s=o(w().mark((function t(){var e,r=arguments;return w().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=r.length>0&&void 0!==r[0]?r[0]:{},t.abrupt("return",this.getResourceCollection("store-locations",He,e));case 2:case"end":return t.stop()}}),t,this)}))),function(){return s.apply(this,arguments)})},{key:"getPaymentGateways",value:(n=o(w().mark((function t(){return w().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this.getResourceCollection("gateways",Y));case 1:case"end":return t.stop()}}),t,this)}))),function(){return n.apply(this,arguments)})}]);var n,s,u,d}(x),Le=Array.isArray,je=function(t){function r(){var t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,r),n instanceof e.Adapter?m(t,t=a(this,r,[{},n,"service-quote",s])):a(this,r,[n,o,"service-quote",s])}return l(r,t),c(r,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new ze(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"formattedAmount",get:function(){var t=this.getAttributes(["amount","currency"]),e=t.amount,r=t.currency;return O(e)||O(r)?null:E(e/100,r)}},{key:"fetchServiceQuotesFromCart",value:(s=o(w().mark((function t(n,o,a){var i,s,u,c,d,h,l=this,f=arguments;return w().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return c=f.length>3&&void 0!==f[3]?f[3]:"storefront",d=f.length>4&&void 0!==f[4]&&f[4],null!==(i=n)&&void 0!==i&&i.id&&(n=n.id),null!==(s=o)&&void 0!==s&&s.id&&(o=o.id),null!==(u=a)&&void 0!==u&&u.id&&(a=a.id),t.prev=5,t.next=8,this.adapter.get("service-quotes/from-cart",{origin:n,destination:o,cart:a,config:c,all:d});case 8:if(h=t.sent,!Le(h)){t.next=11;break}return t.abrupt("return",new e.Collection(h.map((function(t){return new r(t,l.adapter)}))));case 11:return t.abrupt("return",new r(h,this.adapter));case 14:throw t.prev=14,t.t0=t.catch(5),console.error("Error fetching service quotes:",t.t0),t.t0;case 18:case"end":return t.stop()}}),t,this,[[5,14]])}))),function(t,e,r){return s.apply(this,arguments)})}],[{key:"getFromCart",value:(n=o(w().mark((function t(e,n,o,a){var i,s,u,c=arguments;return w().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=c.length>4&&void 0!==c[4]?c[4]:"storefront",s=c.length>5&&void 0!==c[5]&&c[5],u=new r(e),t.abrupt("return",u.fetchServiceQuotesFromCart(n,o,a,i,s));case 4:case"end":return t.stop()}}),t)}))),function(t,e,r,o){return n.apply(this,arguments)})}]);var n,s}(e.ServiceQuote),Ye=new e.StoreActions({create:void 0,findAll:void 0,query:void 0,queryRecord:void 0,initialize:function(t,r,n,o){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return e.isResource(t)&&(t=t.id),e.isResource(r)&&(r=r.id),e.isResource(n)&&(n=n.id),e.isResource(o)&&(o=o.getAttribute("code")),this.adapter.get("".concat(this.namespace,"/before"),g(g({},a),{},{customer:t,cart:r,serviceQuote:n,gateway:o}),i)},captureOrder:function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/capture"),{token:t,transactionDetails:r},n).then((function(t){return new e.Order(t)}))},createStripeSetupIntent:function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.isResource(t)&&(t=t.id),this.adapter.post("".concat(this.namespace,"/stripe-setup-intent"),{customer:t},r)},updateStripePaymentIntent:function(t,r,n,o){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return e.isResource(r)&&(r=r.id),e.isResource(n)&&(n=n.id),e.isResource(o)&&(o=o.id),this.adapter.put("".concat(this.namespace,"/stripe-update-payment-intent"),g({paymentIntent:t,customer:r,cart:n,serviceQuote:o},a),i)}}),Fe=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,e),a(this,e,[t,r,"checkout",n])}return l(e,t),c(e,[{key:"initialize",value:function(){var t;return(t=this.store).initialize.apply(t,arguments)}},{key:"captureOrder",value:function(){var t;return(t=this.store).captureOrder.apply(t,arguments)}}])}(x),Re={Product:A,Category:q,Customer:N,Cart:j,DeliveryServiceQuote:je,Store:Ne,StoreLocation:He,StoreHour:qe,Checkout:Fe,Review:M},We={BrowserAdapter:e.BrowserAdapter,NodeAdapter:e.NodeAdapter};function Ie(t){return t.split(/[^a-zA-Z0-9]/).filter(Boolean).map((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})).join("")}var Qe=function(){return c((function t(){return i(this,t),this.resources=Re,this.adapters=We,this.lookup.apply(this,arguments)}),[{key:"lookup",value:function(t,r){var n=e.pluralize(t),o=Ie(r),a=Array.prototype.slice.call(arguments).slice(2);if(!this[n])throw new Error("Attempted to resolve invalid type");if(!this[n][o])throw new Error("No ".concat(e.singularize(t)," named ").concat(r," (").concat(o,") to resolve"));return s(this[n][o],v(a))}}])}(),Ge=function(){return s(Qe,Array.prototype.slice.call(arguments))},ze=function(t){function r(){return i(this,r),a(this,r,arguments)}return l(r,t),c(r,[{key:"extendActions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return e.extendStoreActions(this,t)}},{key:"serialize",value:function(t){return Ge("resource",e.classify(this.resource),t,this.adapter)}}])}(e.Store),Be=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(i(this,t),this.version=r.version||"v1",this.options={version:this.version,host:r.host||"https://api.fleetbase.io",namespace:"storefront/".concat(this.version)||r.namespace,publicKey:e,debug:n},!D(e))throw new Error("⚠️ Invalid Storefront key given to Storefront SDK");this.adapter=r.adapter||S(this.options),this.products=new ze("product",this.adapter),this.categories=new ze("category",this.adapter),this.reviews=new ze("review",this.adapter).extendActions(T),this.customers=new ze("customer",this.adapter).extendActions(H),this.cart=new ze("cart",this.adapter).extendActions(L),this.checkout=new ze("checkout",this.adapter).extendActions(Ye)}return c(t,[{key:"about",value:function(){return this.adapter.get("about")}},{key:"lookup",value:function(t){return this.adapter.get("lookup/".concat(t))}},{key:"search",value:function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.get("search",g({query:t},r)).then((function(t){return new e.Collection(t.map((function(t){return new A(t)})))}))}},{key:"setAdapter",value:function(t){this.adapter=t}},{key:"getAdapter",value:function(){return this.adapter}}],[{key:"newInstance",value:function(){return s(t,Array.prototype.slice.call(arguments))}}])}();t.Cart=j,t.Category=q,t.Checkout=Fe,t.Customer=N,t.DeliveryServiceQuote=je,t.Network=Ce,t.PaymentGateway=Y,t.Product=A,t.Review=M,t.Store=Ne,t.StoreHour=qe,t.StoreLocation=He,t.default=Be,t.lookup=Ge})); -//# sourceMappingURL=storefront.min.js.map diff --git a/dist/@fleetbase/storefront.min.js.map b/dist/@fleetbase/storefront.min.js.map deleted file mode 100644 index ea8e8c8..0000000 --- a/dist/@fleetbase/storefront.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"storefront.min.js","sources":["../../src/resource.js","../../src/resources/review.js","../../src/utils/detect-adapter.js","../../src/utils/is-phone.js","../../src/utils/format-currency.js","../../src/utils/is-key-valid.js","../../src/utils/is-empty.js","../../src/resources/product.js","../../src/resources/category.js","../../src/resources/customer.js","../../src/resources/cart.js","../../src/resources/payment-gateway.js","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/toDate.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/constructFrom.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/addDays.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/constants.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/_lib/defaultOptions.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/startOfWeek.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/startOfISOWeek.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/getISOWeekYear.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/startOfDay.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/isValid.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/isDate.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/en-US/_lib/formatDistance.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/_lib/buildFormatLongFn.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/en-US/_lib/formatLong.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/en-US/_lib/formatRelative.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/_lib/buildMatchFn.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/_lib/buildMatchPatternFn.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/en-US.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/en-US/_lib/localize.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/en-US/_lib/match.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/getDayOfYear.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/differenceInCalendarDays.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/startOfYear.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/getISOWeek.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/startOfISOWeekYear.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/getWeekYear.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/getWeek.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/startOfWeekYear.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/_lib/addLeadingZeros.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/_lib/format/lightFormatters.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/_lib/format/formatters.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/_lib/format/longFormatters.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/_lib/protectedTokens.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/format.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/Setter.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/transpose.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/Parser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/constants.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/utils.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/DateParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/setDay.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/setISODay.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/getISODay.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/EraParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/YearParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/QuarterParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/MonthParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/setWeek.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/setISOWeek.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/DayParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/ISODayParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/AMPMParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/MinuteParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/SecondParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/getDefaultOptions.mjs","../../src/resources/store-hour.js","../../src/resources/store-location.js","../../src/resources/store.js","../../src/resources/network.js","../../src/resources/delivery-service-quote.js","../../src/resources/checkout.js","../../src/resolver.js","../../src/store.js","../../src/storefront.js"],"sourcesContent":["import { Resource } from '@fleetbase/sdk';\nimport StorefrontStore from './store';\n\nexport default class StorefrontResource extends Resource {\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new StorefrontStore(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions,\n });\n\n return this;\n }\n}\n","import Resource from '../resource';\nimport { StoreActions } from '@fleetbase/sdk';\n\nconst reviewActions = new StoreActions({\n count: function (storeId, options = {}) {\n const params = {};\n\n if (storeId) {\n params.store = storeId;\n }\n\n return this.adapter.get(`${this.namespace}/count`, params, options);\n },\n});\n\nexport default class Review extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'review', options);\n }\n\n getMedia() {\n // @todo\n }\n\n getPhotos() {\n // @todo\n }\n\n getVideos() {\n // @todo\n }\n}\n\nexport { reviewActions };\n","import { lookup } from '../resolver';\nimport { isNodeEnvironment } from '@fleetbase/sdk';\n\nconst detectAdapter = (options = {}) => {\n if (isNodeEnvironment()) {\n return lookup('adapter', 'NodeAdapter', options);\n }\n\n return lookup('adapter', 'BrowserAdapter', options);\n};\n\nexport default detectAdapter;\n","const isPhone = (phone = '') => {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/g.test(phone);\n};\n\nexport default isPhone;\n","export default function formatCurrency(amount = 0, currency = 'USD', currencyDisplay = 'symbol') {\n return new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency,\n currencyDisplay,\n }).format(amount);\n}\n","const isKeyValid = (key) => {\n return typeof key === 'string' && key.length > 30 && (key.startsWith('store_') || key.startsWith('network_'));\n};\n\nexport default isKeyValid;\n","const isEmpty = (obj) => {\n const none = obj === null || obj === undefined;\n if (none) {\n return none;\n }\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n const objectType = typeof obj;\n\n if (objectType === 'object') {\n const { size } = obj;\n if (typeof size === 'number') {\n return !size;\n }\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\n }\n\n if (objectType === 'object') {\n const { length } = obj;\n if (typeof length === 'number') {\n return !length;\n }\n }\n\n return false;\n};\n\nexport default isEmpty;\n","import Resource from '../resource';\nimport Review from './review';\nimport { formatCurrency, isEmpty } from '../utils';\nimport { Collection } from '@fleetbase/sdk';\n\nexport default class Product extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'product', options);\n }\n\n variants() {\n return this.getAttribute('variants');\n }\n\n addons() {\n return this.getAttribute('addon_categories');\n }\n\n get isOnSale() {\n return this.getAttribute('is_on_sale');\n }\n\n get isNotOnSale() {\n return !this.getAttribute('is_on_sale');\n }\n\n get formattedAmount() {\n const { price, sale_price, currency } = this.getAttributes(['price', 'sale_price', 'currency']);\n\n if (this.isOnSale) {\n if (isEmpty(sale_price) || isEmpty(currency)) {\n return null;\n }\n\n return formatCurrency(sale_price / 100, currency);\n }\n\n if (isEmpty(price) || isEmpty(currency)) {\n return null;\n }\n\n return formatCurrency(price / 100, currency);\n }\n\n getReviews() {\n return this.adapter.get('reviews', { store: this.id }).then((reviews) => {\n return new Collection(reviews.map((attributes) => new Review(attributes, this.adapter)));\n });\n }\n}\n","import Resource from '../resource';\nimport Product from './product';\nimport { Collection } from '@fleetbase/sdk';\n\nexport default class Category extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'category', options);\n }\n\n getProducts() {\n return this.adapter.get('products', { category: this.id }).then((products) => {\n return new Collection(products.map((attributes) => new Product(attributes, this.adapter)));\n });\n }\n}\n","import { Collection, Order, Place, StoreActions } from '@fleetbase/sdk';\nimport Resource from '../resource';\nimport StorefrontStore from '../store';\nimport { isPhone } from '../utils';\n\nconst customerActions = new StoreActions({\n // const { error } = await storefront.customers.login('+1 111-1111');\n login: function (identity, password = null, attributes = {}) {\n // handle phone number authentication\n if (isPhone(identity)) {\n return this.adapter.post('customers/login-with-sms', { phone: identity });\n }\n\n if (!password) {\n throw new Error('Login requires password!');\n }\n\n return this.adapter.post('customers/login', { identity, password, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n verifyCode: function (identity, code, attributes = {}) {\n return this.adapter.post('customers/verify-code', { identity, code, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n requestCreationCode(identity, mode = 'email') {\n return this.adapter.post('customers/request-creation-code', {\n identity,\n mode,\n });\n },\n\n create(identity, code, attributes = {}) {\n return this.adapter.post('customers', { identity, code, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n retrieve: function (id) {\n return this.findRecord(id);\n },\n});\n\nexport default class Customer extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'customer', {\n actions: customerActions,\n ...options,\n });\n }\n\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new StorefrontStore(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions,\n });\n\n return this;\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n async syncDevice(token) {\n return this.adapter\n .setHeaders({ 'Customer-Token': this.token })\n .post('customers/register-device', token)\n .then(() => {\n return this;\n });\n }\n\n async performAuthorizedRequest(endpoint, params = {}, method = 'GET') {\n try {\n const headers = { 'Customer-Token': this.token };\n const response = await this.adapter.setHeaders(headers)[method.toLowerCase()](endpoint, params);\n return response;\n } catch (error) {\n console.error(`Error in ${method} request to ${endpoint}:`, error);\n throw error;\n }\n }\n\n async getSavedPlaces() {\n try {\n const places = await this.performAuthorizedRequest('customers/places');\n return new Collection(places.map((attributes) => new Place(attributes, this.adapter)));\n } catch (error) {\n throw new Error('Failed to retrieve saved places');\n }\n }\n\n async getOrderHistory(params = {}) {\n try {\n const orders = await this.performAuthorizedRequest('customers/orders', params);\n return new Collection(orders.map((attributes) => new Order(attributes, this.adapter)));\n } catch (error) {\n throw new Error('Failed to retrieve order history');\n }\n }\n\n getStripeEphemeralKey(params = {}) {\n return this.adapter\n .setHeaders({ 'Customer-Token': this.token })\n .post('customers/stripe-ephemeral-key', params);\n }\n\n getStripeSetupIntent(params = {}) {\n return this.adapter\n .setHeaders({ 'Customer-Token': this.token })\n .post('customers/stripe-setup-intent', params);\n }\n}\n\nexport { customerActions };\n","import Resource from '../resource';\nimport Product from './product';\nimport { StoreActions } from '@fleetbase/sdk';\n\nconst { isArray } = Array;\n\nconst cartActions = new StoreActions({\n create: undefined,\n findAll: undefined,\n query: undefined,\n queryRecord: undefined,\n\n add: function (id, productId, quantity = 1, data = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/${productId}`, { ...data, quantity }, options).then(this.afterFetch.bind(this));\n },\n\n update: function (id, cartItemId, quantity, data = {}, options = {}) {\n return this.adapter.put(`${this.namespace}/${id}/${cartItemId}`, { ...data, quantity }, options).then(this.afterFetch.bind(this));\n },\n\n remove: function (id, cartItemId, options = {}) {\n return this.adapter.delete(`${this.namespace}/${id}/${cartItemId}`, {}, options).then(this.afterFetch.bind(this));\n },\n\n empty: function (id, options = {}) {\n return this.adapter.put(`${this.namespace}/${id}/empty`, {}, options).then(this.afterFetch.bind(this));\n },\n\n retrieve: function (id = '') {\n return this.findRecord(id);\n },\n});\n\nexport default class Cart extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'cart', { actions: cartActions, ...options });\n }\n\n add(productId, quantity = 1, data = {}, options = {}) {\n if (productId instanceof Product) {\n productId = productId.id;\n }\n\n return this.store.add(this.id, productId, quantity, data, options);\n }\n\n update(cartItemId, quantity, data = {}, options = {}) {\n return this.store.update(this.id, cartItemId, quantity, data, options);\n }\n\n remove(cartItemId, options = {}) {\n return this.store.remove(this.id, cartItemId, options);\n }\n\n empty(options = {}) {\n return this.store.empty(this.id, options);\n }\n\n delete() {\n return this.destroy();\n }\n\n refresh() {\n return this.store.retrieve(this.id);\n }\n\n subtotal() {\n let subtotal = 0;\n\n this.contents().forEach((cartItem) => {\n subtotal += cartItem.subtotal;\n });\n\n return subtotal;\n }\n\n contents() {\n return this.getAttribute('items', []);\n }\n\n hasProduct(productId) {\n return this.contents().findIndex((cartItem) => cartItem.product_id === productId) !== -1;\n }\n\n get isEmpty() {\n const contents = this.contents();\n\n if (!isArray(contents)) {\n return true;\n }\n\n return contents.length === 0;\n }\n\n get isNotEmpty() {\n return !this.isEmpty;\n }\n}\n\nexport { cartActions };\n","import Resource from '../resource';\n\nexport default class PaymentGateway extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'payment-gateway', options);\n }\n\n get type() {\n return this.getAttribute('type');\n }\n\n get code() {\n return this.getAttribute('code');\n }\n\n get isCashGateway() {\n return this.type === 'cash';\n }\n\n get isStripeGateway() {\n return this.type === 'stripe';\n }\n\n setCheckoutToken(token) {\n this.token = token;\n }\n\n getCheckoutToken() {\n return this.token;\n }\n\n // remove default resource methods\n findRecord() {\n throw new Error('There is no findRecord() method for payment gateways!');\n }\n\n // remove default resource methods\n create() {\n throw new Error('There is no create() method for payment gateways!');\n }\n\n // remove default resource methods\n update() {\n throw new Error('There is no update() method for payment gateways!');\n }\n\n // remove default resource methods\n destroy() {\n throw new Error('There is no destroy() method for payment gateways!');\n }\n\n // remove default resource methods\n reload() {\n throw new Error('There is no reload() method for payment gateways!');\n }\n}\n","/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument) {\n const argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (\n argument instanceof Date ||\n (typeof argument === \"object\" && argStr === \"[object Date]\")\n ) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new argument.constructor(+argument);\n } else if (\n typeof argument === \"number\" ||\n argStr === \"[object Number]\" ||\n typeof argument === \"string\" ||\n argStr === \"[object String]\"\n ) {\n // TODO: Can we get rid of as?\n return new Date(argument);\n } else {\n // TODO: Can we get rid of as?\n return new Date(NaN);\n }\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from 'date-fns'\n *\n * // A function that clones a date preserving the original type\n * function cloneDate Thu Sep 11 2014 00:00:00\n */\nexport function addDays(date, amount) {\n const _date = toDate(date);\n if (isNaN(amount)) return constructFrom(date, NaN);\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return _date;\n }\n _date.setDate(_date.getDate() + amount);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addDays;\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","import { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n","import { startOfWeek } from \"./startOfWeek.mjs\";\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfISOWeek(date) {\n return startOfWeek(date, { weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeek;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport function getISOWeekYear(date) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n\n const fourthOfJanuaryOfNextYear = constructFrom(date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n\n const fourthOfJanuaryOfThisYear = constructFrom(date, 0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getISOWeekYear;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport function startOfDay(date) {\n const _date = toDate(date);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n","import { toDate } from \"../toDate.mjs\";\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const _date = toDate(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n","import { isDate } from \"./isDate.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport function isValid(date) {\n if (!isDate(date) && typeof date !== \"number\") {\n return false;\n }\n const _date = toDate(date);\n return !isNaN(Number(_date));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n","/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport function isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.mjs\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","/* eslint-disable no-unused-vars */\n\n/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","import { formatDistance } from \"./en-US/_lib/formatDistance.mjs\";\nimport { formatLong } from \"./en-US/_lib/formatLong.mjs\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.mjs\";\nimport { localize } from \"./en-US/_lib/localize.mjs\";\nimport { match } from \"./en-US/_lib/match.mjs\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.mjs\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.mjs\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.mjs\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { differenceInCalendarDays } from \"./differenceInCalendarDays.mjs\";\nimport { startOfYear } from \"./startOfYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * const result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nexport function getDayOfYear(date) {\n const _date = toDate(date);\n const diff = differenceInCalendarDays(_date, startOfYear(_date));\n const dayOfYear = diff + 1;\n return dayOfYear;\n}\n\n// Fallback for modularized imports:\nexport default getDayOfYear;\n","import { millisecondsInDay } from \"./constants.mjs\";\nimport { startOfDay } from \"./startOfDay.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.mjs\";\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport function differenceInCalendarDays(dateLeft, dateRight) {\n const startOfDayLeft = startOfDay(dateLeft);\n const startOfDayRight = startOfDay(dateRight);\n\n const timestampLeft =\n +startOfDayLeft - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n const timestampRight =\n +startOfDayRight - getTimezoneOffsetInMilliseconds(startOfDayRight);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((timestampLeft - timestampRight) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n","import { toDate } from \"./toDate.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport function startOfYear(date) {\n const cleanDate = toDate(date);\n const _date = constructFrom(date, 0);\n _date.setFullYear(cleanDate.getFullYear(), 0, 1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfYear;\n","import { millisecondsInWeek } from \"./constants.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { startOfISOWeekYear } from \"./startOfISOWeekYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport function getISOWeek(date) {\n const _date = toDate(date);\n const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getISOWeek;\n","import { getISOWeekYear } from \"./getISOWeekYear.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfISOWeekYear(date) {\n const year = getISOWeekYear(date);\n const fourthOfJanuary = constructFrom(date, 0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n return startOfISOWeek(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeekYear;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport function getWeekYear(date, options) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const firstWeekOfNextYear = constructFrom(date, 0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n\n const firstWeekOfThisYear = constructFrom(date, 0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getWeekYear;\n","import { millisecondsInWeek } from \"./constants.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { startOfWeekYear } from \"./startOfWeekYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\n\nexport function getWeek(date, options) {\n const _date = toDate(date);\n const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeek;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { getWeekYear } from \"./getWeekYear.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = getWeekYear(date, options);\n const firstWeek = constructFrom(date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = startOfWeek(firstWeek, options);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n","export function addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? \"-\" : \"\";\n const output = Math.abs(number).toString().padStart(targetLength, \"0\");\n return sign + output;\n}\n","import { addLeadingZeros } from \"../addLeadingZeros.mjs\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nexport const lightFormatters = {\n // Year\n y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === \"yy\" ? year % 100 : year, token.length);\n },\n\n // Month\n M(date, token) {\n const month = date.getMonth();\n return token === \"M\" ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n\n // Day of the month\n d(date, token) {\n return addLeadingZeros(date.getDate(), token.length);\n },\n\n // AM or PM\n a(date, token) {\n const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return dayPeriodEnumValue.toUpperCase();\n case \"aaa\":\n return dayPeriodEnumValue;\n case \"aaaaa\":\n return dayPeriodEnumValue[0];\n case \"aaaa\":\n default:\n return dayPeriodEnumValue === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n\n // Hour [1-12]\n h(date, token) {\n return addLeadingZeros(date.getHours() % 12 || 12, token.length);\n },\n\n // Hour [0-23]\n H(date, token) {\n return addLeadingZeros(date.getHours(), token.length);\n },\n\n // Minute\n m(date, token) {\n return addLeadingZeros(date.getMinutes(), token.length);\n },\n\n // Second\n s(date, token) {\n return addLeadingZeros(date.getSeconds(), token.length);\n },\n\n // Fraction of second\n S(date, token) {\n const numberOfDigits = token.length;\n const milliseconds = date.getMilliseconds();\n const fractionalSeconds = Math.trunc(\n milliseconds * Math.pow(10, numberOfDigits - 3),\n );\n return addLeadingZeros(fractionalSeconds, token.length);\n },\n};\n","import { getDayOfYear } from \"../../getDayOfYear.mjs\";\nimport { getISOWeek } from \"../../getISOWeek.mjs\";\nimport { getISOWeekYear } from \"../../getISOWeekYear.mjs\";\nimport { getWeek } from \"../../getWeek.mjs\";\nimport { getWeekYear } from \"../../getWeekYear.mjs\";\nimport { addLeadingZeros } from \"../addLeadingZeros.mjs\";\nimport { lightFormatters } from \"./lightFormatters.mjs\";\n\nconst dayPeriodEnum = {\n am: \"am\",\n pm: \"pm\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nexport const formatters = {\n // Era\n G: function (date, token, localize) {\n const era = date.getFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return localize.era(era, { width: \"abbreviated\" });\n // A, B\n case \"GGGGG\":\n return localize.era(era, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return localize.era(era, { width: \"wide\" });\n }\n },\n\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === \"yo\") {\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, { unit: \"year\" });\n }\n\n return lightFormatters.y(date, token);\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n const signedWeekYear = getWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === \"YY\") {\n const twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === \"Yo\") {\n return localize.ordinalNumber(weekYear, { unit: \"year\" });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n\n // ISO week-numbering year\n R: function (date, token) {\n const isoWeekYear = getISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n const year = date.getFullYear();\n return addLeadingZeros(year, token.length);\n },\n\n // Quarter\n Q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"QQ\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"qq\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // Month\n M: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n case \"M\":\n case \"MM\":\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // J, F, ..., D\n case \"MMMMM\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return localize.month(month, { width: \"wide\", context: \"formatting\" });\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return String(month + 1);\n // 01, 02, ..., 12\n case \"LL\":\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // J, F, ..., D\n case \"LLLLL\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return localize.month(month, { width: \"wide\", context: \"standalone\" });\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n const week = getWeek(date, options);\n\n if (token === \"wo\") {\n return localize.ordinalNumber(week, { unit: \"week\" });\n }\n\n return addLeadingZeros(week, token.length);\n },\n\n // ISO week of year\n I: function (date, token, localize) {\n const isoWeek = getISOWeek(date);\n\n if (token === \"Io\") {\n return localize.ordinalNumber(isoWeek, { unit: \"week\" });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n\n // Day of the month\n d: function (date, token, localize) {\n if (token === \"do\") {\n return localize.ordinalNumber(date.getDate(), { unit: \"date\" });\n }\n\n return lightFormatters.d(date, token);\n },\n\n // Day of year\n D: function (date, token, localize) {\n const dayOfYear = getDayOfYear(date);\n\n if (token === \"Do\") {\n return localize.ordinalNumber(dayOfYear, { unit: \"dayOfYear\" });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n\n // Day of week\n E: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"EEEEE\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"EEEE\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case \"e\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"ee\":\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case \"eo\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"eee\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"eeeee\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"eeee\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case \"c\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"cc\":\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case \"co\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"ccc\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // T\n case \"ccccc\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"standalone\",\n });\n // Tuesday\n case \"cccc\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // ISO day of week\n i: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case \"i\":\n return String(isoDayOfWeek);\n // 02\n case \"ii\":\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case \"io\":\n return localize.ordinalNumber(isoDayOfWeek, { unit: \"day\" });\n // Tue\n case \"iii\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"iiiii\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"iiiiii\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"iiii\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n const hours = date.getHours();\n const dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"aaa\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"aaaaa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n }\n\n switch (token) {\n case \"b\":\n case \"bb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"bbb\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"bbbbb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"BBBBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === \"ho\") {\n let hours = date.getHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return lightFormatters.h(date, token);\n },\n\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === \"Ho\") {\n return localize.ordinalNumber(date.getHours(), { unit: \"hour\" });\n }\n\n return lightFormatters.H(date, token);\n },\n\n // Hour [0-11]\n K: function (date, token, localize) {\n const hours = date.getHours() % 12;\n\n if (token === \"Ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Hour [1-24]\n k: function (date, token, localize) {\n let hours = date.getHours();\n if (hours === 0) hours = 24;\n\n if (token === \"ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Minute\n m: function (date, token, localize) {\n if (token === \"mo\") {\n return localize.ordinalNumber(date.getMinutes(), { unit: \"minute\" });\n }\n\n return lightFormatters.m(date, token);\n },\n\n // Second\n s: function (date, token, localize) {\n if (token === \"so\") {\n return localize.ordinalNumber(date.getSeconds(), { unit: \"second\" });\n }\n\n return lightFormatters.s(date, token);\n },\n\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return \"Z\";\n }\n\n switch (token) {\n // Hours and optional minutes\n case \"X\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case \"XXXX\":\n case \"XX\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case \"XXXXX\":\n case \"XXX\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case \"x\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case \"xxxx\":\n case \"xx\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case \"xxxxx\":\n case \"xxx\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"O\":\n case \"OO\":\n case \"OOO\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"OOOO\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"zzzz\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Seconds timestamp\n t: function (date, token, _localize) {\n const timestamp = Math.trunc(date.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n\n // Milliseconds timestamp\n T: function (date, token, _localize) {\n const timestamp = date.getTime();\n return addLeadingZeros(timestamp, token.length);\n },\n};\n\nfunction formatTimezoneShort(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = Math.trunc(absOffset / 60);\n const minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n if (offset % 60 === 0) {\n const sign = offset > 0 ? \"-\" : \"+\";\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, delimiter);\n}\n\nfunction formatTimezone(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2);\n const minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n","const dateLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"P\":\n return formatLong.date({ width: \"short\" });\n case \"PP\":\n return formatLong.date({ width: \"medium\" });\n case \"PPP\":\n return formatLong.date({ width: \"long\" });\n case \"PPPP\":\n default:\n return formatLong.date({ width: \"full\" });\n }\n};\n\nconst timeLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"p\":\n return formatLong.time({ width: \"short\" });\n case \"pp\":\n return formatLong.time({ width: \"medium\" });\n case \"ppp\":\n return formatLong.time({ width: \"long\" });\n case \"pppp\":\n default:\n return formatLong.time({ width: \"full\" });\n }\n};\n\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n const matchResult = pattern.match(/(P+)(p+)?/) || [];\n const datePattern = matchResult[1];\n const timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n let dateTimeFormat;\n\n switch (datePattern) {\n case \"P\":\n dateTimeFormat = formatLong.dateTime({ width: \"short\" });\n break;\n case \"PP\":\n dateTimeFormat = formatLong.dateTime({ width: \"medium\" });\n break;\n case \"PPP\":\n dateTimeFormat = formatLong.dateTime({ width: \"long\" });\n break;\n case \"PPPP\":\n default:\n dateTimeFormat = formatLong.dateTime({ width: \"full\" });\n break;\n }\n\n return dateTimeFormat\n .replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong))\n .replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\n\nexport const longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter,\n};\n","const dayOfYearTokenRE = /^D+$/;\nconst weekYearTokenRE = /^Y+$/;\n\nconst throwTokens = [\"D\", \"DD\", \"YY\", \"YYYY\"];\n\nexport function isProtectedDayOfYearToken(token) {\n return dayOfYearTokenRE.test(token);\n}\n\nexport function isProtectedWeekYearToken(token) {\n return weekYearTokenRE.test(token);\n}\n\nexport function warnOrThrowProtectedError(token, format, input) {\n const _message = message(token, format, input);\n console.warn(_message);\n if (throwTokens.includes(token)) throw new RangeError(_message);\n}\n\nfunction message(token, format, input) {\n const subject = token[0] === \"Y\" ? \"years\" : \"days of the month\";\n return `Use \\`${token.toLowerCase()}\\` instead of \\`${token}\\` (in \\`${format}\\`) for formatting ${subject} to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;\n}\n","import { defaultLocale } from \"./_lib/defaultLocale.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\nimport { formatters } from \"./_lib/format/formatters.mjs\";\nimport { longFormatters } from \"./_lib/format/longFormatters.mjs\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.mjs\";\nimport { isValid } from \"./isValid.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { formatters, longFormatters };\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\nexport { format as formatDate };\n\n/**\n * The {@link format} function options.\n */\n\n/**\n * @name format\n * @alias formatDate\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)\n * and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nexport function format(date, formatStr, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const originalDate = toDate(date);\n\n if (!isValid(originalDate)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let parts = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp)\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return { isToken: false, value: \"'\" };\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return { isToken: false, value: cleanEscapedString(substring) };\n }\n\n if (formatters[firstCharacter]) {\n return { isToken: true, value: substring };\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return { isToken: false, value: substring };\n });\n\n // invoke localize preprocessor (only for french locales at the moment)\n if (locale.localize.preprocessor) {\n parts = locale.localize.preprocessor(originalDate, parts);\n }\n\n const formatterOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n return parts\n .map((part) => {\n if (!part.isToken) return part.value;\n\n const token = part.value;\n\n if (\n (!options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)) ||\n (!options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token))\n ) {\n warnOrThrowProtectedError(token, formatStr, String(date));\n }\n\n const formatter = formatters[token[0]];\n return formatter(originalDate, token, locale.localize, formatterOptions);\n })\n .join(\"\");\n}\n\nfunction cleanEscapedString(input) {\n const matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default format;\n","import { transpose } from \"../../transpose.mjs\";\nimport { constructFrom } from \"../../constructFrom.mjs\";\n\nconst TIMEZONE_UNIT_PRIORITY = 10;\n\nexport class Setter {\n subPriority = 0;\n\n validate(_utcDate, _options) {\n return true;\n }\n}\n\nexport class ValueSetter extends Setter {\n constructor(\n value,\n\n validateValue,\n\n setValue,\n\n priority,\n subPriority,\n ) {\n super();\n this.value = value;\n this.validateValue = validateValue;\n this.setValue = setValue;\n this.priority = priority;\n if (subPriority) {\n this.subPriority = subPriority;\n }\n }\n\n validate(date, options) {\n return this.validateValue(date, this.value, options);\n }\n\n set(date, flags, options) {\n return this.setValue(date, flags, this.value, options);\n }\n}\n\nexport class DateToSystemTimezoneSetter extends Setter {\n priority = TIMEZONE_UNIT_PRIORITY;\n subPriority = -1;\n set(date, flags) {\n if (flags.timestampIsSet) return date;\n return constructFrom(date, transpose(date, Date));\n }\n}\n","import { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name transpose\n * @category Generic Helpers\n * @summary Transpose the date to the given constructor.\n *\n * @description\n * The function transposes the date to the given constructor. It helps you\n * to transpose the date in the system time zone to say `UTCDate` or any other\n * date extension.\n *\n * @typeParam DateInputType - The input `Date` type derived from the passed argument.\n * @typeParam DateOutputType - The output `Date` type derived from the passed constructor.\n *\n * @param fromDate - The date to use values from\n * @param constructor - The date constructor to use\n *\n * @returns Date transposed to the given constructor\n *\n * @example\n * // Create July 10, 2022 00:00 in locale time zone\n * const date = new Date(2022, 6, 10)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0800 (Singapore Standard Time)'\n *\n * @example\n * // Transpose the date to July 10, 2022 00:00 in UTC\n * transpose(date, UTCDate)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0000 (Coordinated Universal Time)'\n */\nexport function transpose(fromDate, constructor) {\n const date =\n constructor instanceof Date\n ? constructFrom(constructor, 0)\n : new constructor(0);\n date.setFullYear(\n fromDate.getFullYear(),\n fromDate.getMonth(),\n fromDate.getDate(),\n );\n date.setHours(\n fromDate.getHours(),\n fromDate.getMinutes(),\n fromDate.getSeconds(),\n fromDate.getMilliseconds(),\n );\n return date;\n}\n\n// Fallback for modularized imports:\nexport default transpose;\n","import { ValueSetter } from \"./Setter.mjs\";\n\nexport class Parser {\n run(dateString, token, match, options) {\n const result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n\n return {\n setter: new ValueSetter(\n result.value,\n this.validate,\n this.set,\n this.priority,\n this.subPriority,\n ),\n rest: result.rest,\n };\n }\n\n validate(_utcDate, _value, _options) {\n return true;\n }\n}\n","export const numericPatterns = {\n month: /^(1[0-2]|0?\\d)/, // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/, // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/, // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/, // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/, // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/, // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/, // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/, // 0 to 12\n minute: /^[0-5]?\\d/, // 0 to 59\n second: /^[0-5]?\\d/, // 0 to 59\n\n singleDigit: /^\\d/, // 0 to 9\n twoDigits: /^\\d{1,2}/, // 0 to 99\n threeDigits: /^\\d{1,3}/, // 0 to 999\n fourDigits: /^\\d{1,4}/, // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/, // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/, // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/, // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/, // 0 to 9999, -0 to -9999\n};\n\nexport const timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/,\n};\n","import {\n millisecondsInHour,\n millisecondsInMinute,\n millisecondsInSecond,\n} from \"../../constants.mjs\";\nimport { numericPatterns } from \"./constants.mjs\";\n\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest,\n };\n}\n\nexport function parseNumericPattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseTimezonePattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === \"Z\") {\n return {\n value: 0,\n rest: dateString.slice(1),\n };\n }\n\n const sign = matchResult[1] === \"+\" ? 1 : -1;\n const hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n const minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n const seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n\n return {\n value:\n sign *\n (hours * millisecondsInHour +\n minutes * millisecondsInMinute +\n seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\n\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^-?\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case \"morning\":\n return 4;\n case \"evening\":\n return 17;\n case \"pm\":\n case \"noon\":\n case \"afternoon\":\n return 12;\n case \"am\":\n case \"midnight\":\n case \"night\":\n default:\n return 0;\n }\n}\n\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n const isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n const absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n\n let result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n const rangeEnd = absCurrentYear + 50;\n const rangeEndCentury = Math.trunc(rangeEnd / 100) * 100;\n const isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.mjs\";\n\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst DAYS_IN_MONTH_LEAP_YEAR = [\n 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,\n];\n\n// Day of the month\nexport class DateParser extends Parser {\n priority = 90;\n subPriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"d\":\n return parseNumericPattern(numericPatterns.date, dateString);\n case \"do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n const month = date.getMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n\n set(date, _flags, value) {\n date.setDate(value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { addDays } from \"./addDays.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link setDay} function options.\n */\n\n/**\n * @name setDay\n * @category Weekday Helpers\n * @summary Set the day of the week to the given date.\n *\n * @description\n * Set the day of the week to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param day - The day of the week of the new date\n * @param options - An object with options.\n *\n * @returns The new date with the day of the week set\n *\n * @example\n * // Set week day to Sunday, with the default weekStartsOn of Sunday:\n * const result = setDay(new Date(2014, 8, 1), 0)\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Set week day to Sunday, with a weekStartsOn of Monday:\n * const result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setDay(date, day, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date);\n const currentDay = _date.getDay();\n\n const remainder = day % 7;\n const dayIndex = (remainder + 7) % 7;\n\n const delta = 7 - weekStartsOn;\n const diff =\n day < 0 || day > 6\n ? day - ((currentDay + delta) % 7)\n : ((dayIndex + delta) % 7) - ((currentDay + delta) % 7);\n return addDays(_date, diff);\n}\n\n// Fallback for modularized imports:\nexport default setDay;\n","import { addDays } from \"./addDays.mjs\";\nimport { getISODay } from \"./getISODay.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setISODay\n * @category Weekday Helpers\n * @summary Set the day of the ISO week to the given date.\n *\n * @description\n * Set the day of the ISO week to the given date.\n * ISO week starts with Monday.\n * 7 is the index of Sunday, 1 is the index of Monday etc.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param day - The day of the ISO week of the new date\n *\n * @returns The new date with the day of the ISO week set\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * const result = setISODay(new Date(2014, 8, 1), 7)\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setISODay(date, day) {\n const _date = toDate(date);\n const currentDay = getISODay(_date);\n const diff = day - currentDay;\n return addDays(_date, diff);\n}\n\n// Fallback for modularized imports:\nexport default setISODay;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISODay\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The day of ISO week\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * const result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\nexport function getISODay(date) {\n const _date = toDate(date);\n let day = _date.getDay();\n\n if (day === 0) {\n day = 7;\n }\n\n return day;\n}\n\n// Fallback for modularized imports:\nexport default getISODay;\n","import { EraParser } from \"./parsers/EraParser.mjs\";\nimport { YearParser } from \"./parsers/YearParser.mjs\";\nimport { LocalWeekYearParser } from \"./parsers/LocalWeekYearParser.mjs\";\nimport { ISOWeekYearParser } from \"./parsers/ISOWeekYearParser.mjs\";\nimport { ExtendedYearParser } from \"./parsers/ExtendedYearParser.mjs\";\nimport { QuarterParser } from \"./parsers/QuarterParser.mjs\";\nimport { StandAloneQuarterParser } from \"./parsers/StandAloneQuarterParser.mjs\";\nimport { MonthParser } from \"./parsers/MonthParser.mjs\";\nimport { StandAloneMonthParser } from \"./parsers/StandAloneMonthParser.mjs\";\nimport { LocalWeekParser } from \"./parsers/LocalWeekParser.mjs\";\nimport { ISOWeekParser } from \"./parsers/ISOWeekParser.mjs\";\nimport { DateParser } from \"./parsers/DateParser.mjs\";\nimport { DayOfYearParser } from \"./parsers/DayOfYearParser.mjs\";\nimport { DayParser } from \"./parsers/DayParser.mjs\";\nimport { LocalDayParser } from \"./parsers/LocalDayParser.mjs\";\nimport { StandAloneLocalDayParser } from \"./parsers/StandAloneLocalDayParser.mjs\";\nimport { ISODayParser } from \"./parsers/ISODayParser.mjs\";\nimport { AMPMParser } from \"./parsers/AMPMParser.mjs\";\nimport { AMPMMidnightParser } from \"./parsers/AMPMMidnightParser.mjs\";\nimport { DayPeriodParser } from \"./parsers/DayPeriodParser.mjs\";\nimport { Hour1to12Parser } from \"./parsers/Hour1to12Parser.mjs\";\nimport { Hour0to23Parser } from \"./parsers/Hour0to23Parser.mjs\";\nimport { Hour0To11Parser } from \"./parsers/Hour0To11Parser.mjs\";\nimport { Hour1To24Parser } from \"./parsers/Hour1To24Parser.mjs\";\nimport { MinuteParser } from \"./parsers/MinuteParser.mjs\";\nimport { SecondParser } from \"./parsers/SecondParser.mjs\";\nimport { FractionOfSecondParser } from \"./parsers/FractionOfSecondParser.mjs\";\nimport { ISOTimezoneWithZParser } from \"./parsers/ISOTimezoneWithZParser.mjs\";\nimport { ISOTimezoneParser } from \"./parsers/ISOTimezoneParser.mjs\";\nimport { TimestampSecondsParser } from \"./parsers/TimestampSecondsParser.mjs\";\nimport { TimestampMillisecondsParser } from \"./parsers/TimestampMillisecondsParser.mjs\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- It's ok, we want any here\nexport const parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser(),\n};\n","import { Parser } from \"../Parser.mjs\";\n\nexport class EraParser extends Parser {\n priority = 140;\n\n parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return (\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n\n // A, B\n case \"GGGGG\":\n return match.era(dateString, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return (\n match.era(dateString, { width: \"wide\" }) ||\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n }\n }\n\n set(date, flags, value) {\n flags.era = value;\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"R\", \"u\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.mjs\";\n\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport class YearParser extends Parser {\n priority = 130;\n incompatibleTokens = [\"Y\", \"R\", \"u\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"yy\",\n });\n\n switch (token) {\n case \"y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value) {\n const currentYear = date.getFullYear();\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(normalizedTwoDigitYear, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { getWeekYear } from \"../../../getWeekYear.mjs\";\nimport { startOfWeek } from \"../../../startOfWeek.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.mjs\";\n\n// Local week-numbering year\nexport class LocalWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"YY\",\n });\n\n switch (token) {\n case \"Y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"Yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value, options) {\n const currentYear = getWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(\n normalizedTwoDigitYear,\n 0,\n options.firstWeekContainsDate,\n );\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, options.firstWeekContainsDate);\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { startOfISOWeek } from \"../../../startOfISOWeek.mjs\";\nimport { constructFrom } from \"../../../constructFrom.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigitsSigned } from \"../utils.mjs\";\n\n// ISO week-numbering year\nexport class ISOWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"R\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n const firstWeekOfYear = constructFrom(date, 0);\n firstWeekOfYear.setFullYear(value, 0, 4);\n firstWeekOfYear.setHours(0, 0, 0, 0);\n return startOfISOWeek(firstWeekOfYear);\n }\n\n incompatibleTokens = [\n \"G\",\n \"y\",\n \"Y\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { parseNDigitsSigned } from \"../utils.mjs\";\n\nexport class ExtendedYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"u\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"G\", \"y\", \"Y\", \"R\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { parseNDigits } from \"../utils.mjs\";\n\nexport class QuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n case \"QQ\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { parseNDigits } from \"../utils.mjs\";\n\nexport class StandAloneQuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n case \"qq\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class MonthParser extends Parser {\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"L\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"M\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"MM\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // J, F, ..., D\n case \"MMMMM\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class StandAloneMonthParser extends Parser {\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"LL\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // J, F, ..., D\n case \"LLLLL\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setWeek } from \"../../../setWeek.mjs\";\nimport { startOfWeek } from \"../../../startOfWeek.mjs\";\nimport { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\n// Local week of year\nexport class LocalWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"w\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"wo\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value, options) {\n return startOfWeek(setWeek(date, value, options), options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { getWeek } from \"./getWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * The {@link setWeek} function options.\n */\n\n/**\n * @name setWeek\n * @category Week Helpers\n * @summary Set the local week to the given date.\n *\n * @description\n * Set the local week to the given date, saving the weekday number.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param week - The week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the local week set\n *\n * @example\n * // Set the 1st week to 2 January 2005 with default options:\n * const result = setWeek(new Date(2005, 0, 2), 1)\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // Set the 1st week to 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January:\n * const result = setWeek(new Date(2005, 0, 2), 1, {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Sun Jan 4 2004 00:00:00\n */\nexport function setWeek(date, week, options) {\n const _date = toDate(date);\n const diff = getWeek(_date, options) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setWeek;\n","import { setISOWeek } from \"../../../setISOWeek.mjs\";\nimport { startOfISOWeek } from \"../../../startOfISOWeek.mjs\";\nimport { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\n// ISO week of year\nexport class ISOWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"I\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"Io\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value) {\n return startOfISOWeek(setISOWeek(date, value));\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getISOWeek } from \"./getISOWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setISOWeek\n * @category ISO Week Helpers\n * @summary Set the ISO week to the given date.\n *\n * @description\n * Set the ISO week to the given date, saving the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param week - The ISO week of the new date\n *\n * @returns The new date with the ISO week set\n *\n * @example\n * // Set the 53rd ISO week to 7 August 2004:\n * const result = setISOWeek(new Date(2004, 7, 7), 53)\n * //=> Sat Jan 01 2005 00:00:00\n */\nexport function setISOWeek(date, week) {\n const _date = toDate(date);\n const diff = getISOWeek(_date) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setISOWeek;\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.mjs\";\n\nexport class DayOfYearParser extends Parser {\n priority = 90;\n\n subpriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"D\":\n case \"DD\":\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case \"Do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n\n set(date, _flags, value) {\n date.setMonth(0, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"E\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setDay } from \"../../../setDay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\n\n// Day of week\nexport class DayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"EEEEE\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"EEEE\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"D\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { setDay } from \"../../../setDay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\n// Local day of week\nexport class LocalDayParser extends Parser {\n priority = 90;\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"e\":\n case \"ee\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"eo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"eee\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"eeeee\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"eeee\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setDay } from \"../../../setDay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\n// Stand-alone local day of week\nexport class StandAloneLocalDayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"c\":\n case \"cc\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"co\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"ccc\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // T\n case \"ccccc\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return (\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // Tuesday\n case \"cccc\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"e\",\n \"t\",\n \"T\",\n ];\n}\n","import { setISODay } from \"../../../setISODay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\n// ISO day of week\nexport class ISODayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n\n switch (token) {\n // 2\n case \"i\":\n case \"ii\": // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case \"io\":\n return match.ordinalNumber(dateString, { unit: \"day\" });\n // Tue\n case \"iii\":\n return mapValue(\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // T\n case \"iiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tu\n case \"iiiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tuesday\n case \"iiii\":\n default:\n return mapValue(\n match.day(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n\n set(date, _flags, value) {\n date = setISODay(date, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"E\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { dayPeriodEnumToHours } from \"../utils.mjs\";\n\nexport class AMPMParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"a\":\n case \"aa\":\n case \"aaa\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"aaaaa\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"b\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { dayPeriodEnumToHours } from \"../utils.mjs\";\n\nexport class AMPMMidnightParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"b\":\n case \"bb\":\n case \"bbb\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"bbbbb\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { dayPeriodEnumToHours } from \"../utils.mjs\";\n\n// in the morning, in the afternoon, in the evening, at night\nexport class DayPeriodParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"BBBBB\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour1to12Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"h\":\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case \"ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setHours(0, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"H\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour0to23Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"H\":\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case \"Ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n\n set(date, _flags, value) {\n date.setHours(value, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour0To11Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"K\":\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case \"Ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"h\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour1To24Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"k\":\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case \"ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n\n set(date, _flags, value) {\n const hours = value <= 24 ? value % 24 : value;\n date.setHours(hours, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"H\", \"K\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class MinuteParser extends Parser {\n priority = 60;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"m\":\n return parseNumericPattern(numericPatterns.minute, dateString);\n case \"mo\":\n return match.ordinalNumber(dateString, { unit: \"minute\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setMinutes(value, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class SecondParser extends Parser {\n priority = 50;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"s\":\n return parseNumericPattern(numericPatterns.second, dateString);\n case \"so\":\n return match.ordinalNumber(dateString, { unit: \"second\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setSeconds(value, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\nexport class FractionOfSecondParser extends Parser {\n priority = 30;\n\n parse(dateString, token) {\n const valueCallback = (value) =>\n Math.trunc(value * Math.pow(10, -token.length + 3));\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n\n set(date, _flags, value) {\n date.setMilliseconds(value);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.mjs\";\nimport { timezonePatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseTimezonePattern } from \"../utils.mjs\";\n\n// Timezone (ISO-8601. +00:00 is `'Z'`)\nexport class ISOTimezoneWithZParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"X\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"XX\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"XXXX\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"XXXXX\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"XXX\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"x\"];\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.mjs\";\nimport { timezonePatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseTimezonePattern } from \"../utils.mjs\";\n\n// Timezone (ISO-8601)\nexport class ISOTimezoneParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"x\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"xx\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"xxxx\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"xxxxx\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"xxx\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"X\"];\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseAnyDigitsSigned } from \"../utils.mjs\";\n\nexport class TimestampSecondsParser extends Parser {\n priority = 40;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value * 1000), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseAnyDigitsSigned } from \"../utils.mjs\";\n\nexport class TimestampMillisecondsParser extends Parser {\n priority = 20;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { getDefaultOptions } from \"./getDefaultOptions.mjs\";\nimport { defaultLocale } from \"./_lib/defaultLocale.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { longFormatters } from \"./_lib/format/longFormatters.mjs\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.mjs\";\nimport { parsers } from \"./parse/_lib/parsers.mjs\";\nimport { DateToSystemTimezoneSetter } from \"./parse/_lib/Setter.mjs\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { longFormatters, parsers };\n\n/**\n * The {@link parse} function options.\n */\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\n\nconst notWhitespaceRegExp = /\\S/;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear)\n * and [setWeekYear](https://date-fns.org/docs/setWeekYear)).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateStr - The string to parse\n * @param formatStr - The string of tokens\n * @param referenceDate - defines values missing from the parsed dateString\n * @param options - An object with options.\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @returns The parsed date\n *\n * @throws `options.locale` must contain `match` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport function parse(dateStr, formatStr, referenceDate, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n if (formatStr === \"\") {\n if (dateStr === \"\") {\n return toDate(referenceDate);\n } else {\n return constructFrom(referenceDate, NaN);\n }\n }\n\n const subFnOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n // If timezone isn't specified, it will be set to the system timezone\n const setters = [new DateToSystemTimezoneSetter()];\n\n const tokens = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp);\n\n const usedTokens = [];\n\n for (let token of tokens) {\n if (\n !options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n if (\n !options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n\n const firstCharacter = token[0];\n const parser = parsers[firstCharacter];\n if (parser) {\n const { incompatibleTokens } = parser;\n if (Array.isArray(incompatibleTokens)) {\n const incompatibleToken = usedTokens.find(\n (usedToken) =>\n incompatibleTokens.includes(usedToken.token) ||\n usedToken.token === firstCharacter,\n );\n if (incompatibleToken) {\n throw new RangeError(\n `The format string mustn't contain \\`${incompatibleToken.fullToken}\\` and \\`${token}\\` at the same time`,\n );\n }\n } else if (parser.incompatibleTokens === \"*\" && usedTokens.length > 0) {\n throw new RangeError(\n `The format string mustn't contain \\`${token}\\` and any other token at the same time`,\n );\n }\n\n usedTokens.push({ token: firstCharacter, fullToken: token });\n\n const parseResult = parser.run(\n dateStr,\n token,\n locale.match,\n subFnOptions,\n );\n\n if (!parseResult) {\n return constructFrom(referenceDate, NaN);\n }\n\n setters.push(parseResult.setter);\n\n dateStr = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateStr.indexOf(token) === 0) {\n dateStr = dateStr.slice(token.length);\n } else {\n return constructFrom(referenceDate, NaN);\n }\n }\n }\n\n // Check if the remaining input contains something other than whitespace\n if (dateStr.length > 0 && notWhitespaceRegExp.test(dateStr)) {\n return constructFrom(referenceDate, NaN);\n }\n\n const uniquePrioritySetters = setters\n .map((setter) => setter.priority)\n .sort((a, b) => b - a)\n .filter((priority, index, array) => array.indexOf(priority) === index)\n .map((priority) =>\n setters\n .filter((setter) => setter.priority === priority)\n .sort((a, b) => b.subPriority - a.subPriority),\n )\n .map((setterArray) => setterArray[0]);\n\n let date = toDate(referenceDate);\n\n if (isNaN(date.getTime())) {\n return constructFrom(referenceDate, NaN);\n }\n\n const flags = {};\n for (const setter of uniquePrioritySetters) {\n if (!setter.validate(date, subFnOptions)) {\n return constructFrom(referenceDate, NaN);\n }\n\n const result = setter.set(date, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n date = result[0];\n Object.assign(flags, result[1]);\n // Result is date\n } else {\n date = result;\n }\n }\n\n return constructFrom(referenceDate, date);\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default parse;\n","import { getDefaultOptions as getInternalDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * @name getDefaultOptions\n * @category Common Helpers\n * @summary Get default options.\n * @pure false\n *\n * @description\n * Returns an object that contains defaults for\n * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate`\n * arguments for all functions.\n *\n * You can change these with [setDefaultOptions](https://date-fns.org/docs/setDefaultOptions).\n *\n * @returns The default options\n *\n * @example\n * const result = getDefaultOptions()\n * //=> {}\n *\n * @example\n * setDefaultOptions({ weekStarsOn: 1, firstWeekContainsDate: 4 })\n * const result = getDefaultOptions()\n * //=> { weekStarsOn: 1, firstWeekContainsDate: 4 }\n */\nexport function getDefaultOptions() {\n return Object.assign({}, getInternalDefaultOptions());\n}\n\n// Fallback for modularized imports:\nexport default getDefaultOptions;\n","import Resource from '../resource';\nimport { format, parse, isValid } from 'date-fns';\n\nexport default class StoreHour extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'store-hour', options);\n }\n\n get day() {\n return this.getAttribute('day');\n }\n\n get isClosed() {\n return this.getAttribute('start') === null && this.getAttribute('end') === null;\n }\n\n get is24Hours() {\n const start = this.startDateInstance;\n const end = this.endDateInstance;\n const diff = Math.abs(start - end);\n const hours = Math.floor(diff / 1000 / 60) / 60;\n\n return hours > 23;\n }\n\n get startDateInstance() {\n if (!this.hasAttribute('start')) {\n return null;\n }\n\n const start = this.getAttribute('start');\n const includesSeconds = start.split(':').length === 3;\n const format = includesSeconds ? 'HH:mm:ss' : 'HH:mm';\n\n return parse(start, format, new Date());\n }\n\n get endDateInstance() {\n if (!this.hasAttribute('end')) {\n return null;\n }\n\n const end = this.getAttribute('end');\n const includesSeconds = end.split(':').length === 3;\n const format = includesSeconds ? 'HH:mm:ss' : 'HH:mm';\n\n return parse(end, format, new Date());\n }\n\n get humanReadableHoursRange() {\n if (!isValid(this.startDateInstance) || !isValid(this.endDateInstance)) {\n return `${this.start} - ${this.end}`;\n }\n\n return `${format(this.startDateInstance, 'p')} - ${format(this.endDateInstance, 'p')}`;\n }\n\n get humanReadableHours() {\n if (this.isClosed) {\n return 'Closed';\n }\n\n if (this.is24Hours) {\n return '24 Hours';\n }\n\n return this.humanReadableHoursRange;\n }\n\n // remove default resource methods\n create() {\n throw new Error('There is no create() method store location!');\n }\n\n // remove default resource methods\n update() {\n throw new Error('There is no update() method store location!');\n }\n\n // remove default resource methods\n destroy() {\n throw new Error('There is no destroy() method store location!');\n }\n\n // remove default resource methods\n reload() {\n throw new Error('There is no reload() method store location!');\n }\n}\n","import Resource from '../resource';\nimport StoreHour from './store-hour';\nimport { Collection } from '@fleetbase/sdk';\nimport { format } from 'date-fns';\n\nexport default class StoreLocation extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'store-location', options);\n }\n\n get latitude() {\n return this.getAttribute('place.location.coordinates.1');\n }\n\n get longitude() {\n return this.getAttribute('place.location.coordinates.0');\n }\n\n get hours() {\n return new Collection(this.getAttribute('hours').map((attributes) => new StoreHour(attributes)));\n }\n\n get isAlwaysOpen() {\n return this.hours.every((hour) => hour?.is24Hours);\n }\n\n get today() {\n const today = format(new Date(), 'EEEE');\n\n return this.schedule[today];\n }\n\n get schedule() {\n const schedule = {};\n const week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];\n\n for (let i = 0; i < week.length; i++) {\n const day = week[i];\n\n schedule[day] = new Collection();\n }\n\n for (let i = 0; i < this.hours.length; i++) {\n const hour = this.hours.objectAt(i);\n\n schedule[hour.day].pushObject(hour);\n }\n\n return schedule;\n }\n\n // remove default resource methods\n create() {\n throw new Error('There is no create() method store location!');\n }\n\n // remove default resource methods\n update() {\n throw new Error('There is no update() method store location!');\n }\n\n // remove default resource methods\n destroy() {\n throw new Error('There is no destroy() method store location!');\n }\n}\n","import Resource from '../resource';\nimport StoreLocation from './store-location';\nimport PaymentGateway from './payment-gateway';\nimport Review from './review';\nimport { Collection, Place } from '@fleetbase/sdk';\n\nexport default class Store extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'store', options);\n }\n\n getReviews(params = {}) {\n return this.adapter.get('reviews', { store: this.id, ...params }).then((reviews) => {\n return new Collection(reviews.map((attributes) => new Review(attributes, this.adapter)));\n });\n }\n\n getLocations(params = {}) {\n return this.adapter.get('locations', { store: this.id, ...params }).then((storeLocations) => {\n return new Collection(\n storeLocations.map((attributes) => {\n if (attributes.place) {\n attributes.place = new Place(attributes.place);\n }\n\n return new StoreLocation(attributes, this.adapter);\n })\n );\n });\n }\n\n getLocation(id) {\n return this.adapter.get(`locations/${id}`, { store: this.id }).then((attributes) => {\n return new StoreLocation(attributes, this.adapter);\n });\n }\n\n getPaymentGateways(params = {}) {\n return this.adapter.get('gateways', params).then((gateways) => {\n return new Collection(\n gateways.map((attributes) => {\n return new PaymentGateway(attributes, this.adapter);\n })\n );\n });\n }\n\n getPaymentGateway(id) {\n return this.adapter.get(`gateways/${id}`).then((attributes) => {\n return new PaymentGateway(attributes, this.adapter);\n });\n }\n}\n","import { Collection } from '@fleetbase/sdk';\nimport Resource from '../resource';\nimport PaymentGateway from './payment-gateway';\nimport Store from './store';\nimport StoreLocation from './store-location';\n\nexport default class Network extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'network', options);\n }\n\n getTags(params = {}) {\n return this.adapter.get('tags', params);\n }\n\n async getResourceCollection(endpoint, ResourceClass, params = {}) {\n try {\n const resources = await this.adapter.get(endpoint, params);\n return new Collection(resources.map((attributes) => new ResourceClass(attributes, this.adapter)));\n } catch (error) {\n console.error(`Error fetching ${endpoint}:`, error);\n throw error;\n }\n }\n\n async getStores(params = {}) {\n return this.getResourceCollection('stores', Store, params);\n }\n\n async getStoreLocations(params = {}) {\n return this.getResourceCollection('store-locations', StoreLocation, params);\n }\n\n async getPaymentGateways() {\n return this.getResourceCollection('gateways', PaymentGateway);\n }\n}\n","import { Adapter, Collection, ServiceQuote } from '@fleetbase/sdk';\nimport StorefrontStore from '../store';\nimport { formatCurrency, isEmpty } from '../utils';\n\nconst { isArray } = Array;\n\nexport default class DeliveryServiceQuote extends ServiceQuote {\n constructor(attributes = {}, adapter, options = {}) {\n if (attributes instanceof Adapter) {\n return super({}, attributes, 'service-quote', options);\n }\n\n super(attributes, adapter, 'service-quote', options);\n }\n\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new StorefrontStore(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions,\n });\n\n return this;\n }\n\n get formattedAmount() {\n const { amount, currency } = this.getAttributes(['amount', 'currency']);\n\n if (isEmpty(amount) || isEmpty(currency)) {\n return null;\n }\n\n return formatCurrency(amount / 100, currency);\n }\n\n async fetchServiceQuotesFromCart(origin, destination, cart, config = 'storefront', all = false) {\n if (origin?.id) {\n origin = origin.id;\n }\n if (destination?.id) {\n destination = destination.id;\n }\n if (cart?.id) {\n cart = cart.id;\n }\n\n try {\n const serviceQuotes = await this.adapter.get('service-quotes/from-cart', {\n origin,\n destination,\n cart,\n config,\n all,\n });\n\n if (isArray(serviceQuotes)) {\n return new Collection(serviceQuotes.map((serviceQuote) => new DeliveryServiceQuote(serviceQuote, this.adapter)));\n }\n\n return new DeliveryServiceQuote(serviceQuotes, this.adapter);\n } catch (error) {\n console.error('Error fetching service quotes:', error);\n throw error;\n }\n }\n\n static async getFromCart(adapter, origin, destination, cart, config = 'storefront', all = false) {\n const quote = new DeliveryServiceQuote(adapter);\n return quote.fetchServiceQuotesFromCart(origin, destination, cart, config, all);\n }\n}\n","import { Order, StoreActions, isResource } from '@fleetbase/sdk';\nimport Resource from '../resource';\n\nconst checkoutActions = new StoreActions({\n create: undefined,\n findAll: undefined,\n query: undefined,\n queryRecord: undefined,\n\n initialize: function (customer, cart, serviceQuote, gateway, orderOptions = {}, options = {}) {\n if (isResource(customer)) {\n customer = customer.id;\n }\n\n if (isResource(cart)) {\n cart = cart.id;\n }\n\n if (isResource(serviceQuote)) {\n serviceQuote = serviceQuote.id;\n }\n\n if (isResource(gateway)) {\n gateway = gateway.getAttribute('code');\n }\n\n return this.adapter.get(`${this.namespace}/before`, { ...orderOptions, customer, cart, serviceQuote, gateway }, options);\n },\n\n captureOrder: function (token, transactionDetails = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/capture`, { token, transactionDetails }, options).then((orderJson) => new Order(orderJson));\n },\n\n createStripeSetupIntent: function (customer, options = {}) {\n if (isResource(customer)) {\n customer = customer.id;\n }\n\n return this.adapter.post(`${this.namespace}/stripe-setup-intent`, { customer }, options);\n },\n\n updateStripePaymentIntent: function (paymentIntent, customer, cart, serviceQuote, orderOptions = {}, options = {}) {\n if (isResource(customer)) {\n customer = customer.id;\n }\n\n if (isResource(cart)) {\n cart = cart.id;\n }\n\n if (isResource(serviceQuote)) {\n serviceQuote = serviceQuote.id;\n }\n\n return this.adapter.put(`${this.namespace}/stripe-update-payment-intent`, { paymentIntent, customer, cart, serviceQuote, ...orderOptions }, options);\n },\n});\n\nexport default class Checkout extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'checkout', options);\n }\n\n initialize() {\n return this.store.initialize(...arguments);\n }\n\n captureOrder() {\n return this.store.captureOrder(...arguments);\n }\n}\n\nexport { checkoutActions };\n","import { Product, Category, Customer, Cart, DeliveryServiceQuote, Store, StoreLocation, StoreHour, Checkout, Review } from './resources';\nimport { BrowserAdapter, NodeAdapter, pluralize, singularize } from '@fleetbase/sdk';\n\nexport const resources = {\n Product,\n Category,\n Customer,\n Cart,\n DeliveryServiceQuote,\n Store,\n StoreLocation,\n StoreHour,\n Checkout,\n Review,\n};\n\nconst adapters = {\n BrowserAdapter,\n NodeAdapter,\n};\n\nfunction toStudlyCase(str) {\n return str\n .split(/[^a-zA-Z0-9]/) // Split by non-alphanumeric characters\n .filter(Boolean) // Remove empty elements\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1)) // Capitalize the first letter of each word\n .join(''); // Join the words together without spaces\n}\n\nclass Resolver {\n constructor() {\n this.resources = resources;\n this.adapters = adapters;\n\n return this.lookup(...arguments);\n }\n\n lookup(type, className) {\n const key = pluralize(type);\n const classKey = toStudlyCase(className);\n const params = [...arguments].slice(2);\n\n if (!this[key]) {\n throw new Error('Attempted to resolve invalid type');\n }\n\n if (!this[key][classKey]) {\n throw new Error(`No ${singularize(type)} named ${className} (${classKey}) to resolve`);\n }\n\n return new this[key][classKey](...params);\n }\n}\n\nconst lookup = function () {\n return new Resolver(...arguments);\n};\n\nexport { Resolver, lookup };\nexport default Resolver;","import { Store, classify, extendStoreActions } from '@fleetbase/sdk';\nimport { lookup } from './resolver';\n\nexport default class StorefrontStore extends Store {\n constructor() {\n super(...arguments);\n }\n\n extendActions(actions = []) {\n return extendStoreActions(this, actions);\n }\n\n serialize(json) {\n return lookup('resource', classify(this.resource), json, this.adapter);\n }\n}\n","import StorefrontStore from './store';\nimport { detectAdapter, isKeyValid } from './utils';\nimport { lookup } from './resolver';\nimport { Product, Category, Customer, Cart, Store, StoreLocation, StoreHour, DeliveryServiceQuote, Checkout, PaymentGateway, Review, Network } from './resources';\nimport { cartActions } from './resources/cart';\nimport { customerActions } from './resources/customer';\nimport { checkoutActions } from './resources/checkout';\nimport { reviewActions } from './resources/review';\nimport { Collection } from '@fleetbase/sdk';\n\n/**\n * // instance\n * const storefront = new Storefront();\n *\n */\n\nexport default class Storefront {\n /**\n * Builds an instance of the Fleetbase Storefront SDK\n *\n * @param {String} storeKey The access key for the storefront store\n * @param {Object} config The config object\n * @param {Boolean} debug Enable debug mode\n * @return {Storefront} Instance\n */\n constructor(storeKey, config = {}, debug = false) {\n this.version = config.version || 'v1';\n this.options = {\n version: this.version,\n host: config.host || 'https://api.fleetbase.io',\n namespace: `storefront/${this.version}` || config.namespace,\n publicKey: storeKey,\n debug,\n };\n\n if (!isKeyValid(storeKey)) {\n throw new Error('⚠️ Invalid Storefront key given to Storefront SDK');\n }\n\n this.adapter = config.adapter || detectAdapter(this.options);\n\n this.products = new StorefrontStore('product', this.adapter);\n this.categories = new StorefrontStore('category', this.adapter);\n this.reviews = new StorefrontStore('review', this.adapter).extendActions(reviewActions);\n this.customers = new StorefrontStore('customer', this.adapter).extendActions(customerActions);\n this.cart = new StorefrontStore('cart', this.adapter).extendActions(cartActions);\n this.checkout = new StorefrontStore('checkout', this.adapter).extendActions(checkoutActions);\n }\n\n /** loads information about this storefront */\n about() {\n return this.adapter.get('about');\n }\n\n /** lookup a specific store or network provided the ID */\n lookup(id) {\n return this.adapter.get(`lookup/${id}`);\n }\n\n /** search products in store or network */\n search(query, options = {}) {\n return this.adapter.get('search', { query, ...options }).then((products) => {\n return new Collection(products.map((product) => new Product(product)));\n });\n }\n\n static newInstance() {\n return new Storefront(...arguments);\n }\n\n setAdapter(adapter) {\n this.adapter = adapter;\n }\n\n getAdapter() {\n return this.adapter;\n }\n}\n\nexport { Product, Category, Customer, Cart, Store, StoreLocation, StoreHour, DeliveryServiceQuote, Checkout, PaymentGateway, Review, Network, lookup };\n"],"names":["StorefrontResource","_Resource","_classCallCheck","_callSuper","this","arguments","_inherits","_createClass","key","value","adapter","_this$options","store","StorefrontStore","resource","onAfterFetch","syncAttributes","bind","actions","options","Resource","reviewActions","StoreActions","count","storeId","length","undefined","params","get","concat","namespace","Review","attributes","detectAdapter","isNodeEnvironment","lookup","isPhone","phone","test","formatCurrency","amount","currency","currencyDisplay","Intl","NumberFormat","style","format","isKeyValid","startsWith","isEmpty","obj","none","size","objectType","_typeof","Product","getAttribute","_this$getAttributes","getAttributes","price","sale_price","isOnSale","_this","id","then","reviews","Collection","map","Category","category","products","customerActions","login","identity","password","post","Error","_objectSpread","afterFetch","verifyCode","code","requestCreationCode","mode","create","retrieve","findRecord","Customer","_syncDevice","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","wrap","_context","prev","next","abrupt","setHeaders","stop","_x","apply","_performAuthorizedRequest","_callee2","endpoint","method","headers","response","_args2","_context2","toLowerCase","sent","t0","console","error","_x2","_getSavedPlaces","_callee3","places","_this2","_context3","performAuthorizedRequest","Place","_getOrderHistory","_callee4","orders","_this3","_args4","_context4","Order","isArray","Array","cartActions","findAll","query","queryRecord","add","productId","quantity","data","update","cartItemId","put","remove","empty","Cart","destroy","subtotal","contents","forEach","cartItem","findIndex","product_id","PaymentGateway","type","toDate","argument","argStr","Object","prototype","toString","call","Date","constructor","NaN","constructFrom","date","addDays","_date","isNaN","setDate","getDate","millisecondsInWeek","defaultOptions","getDefaultOptions","startOfWeek","weekStartsOn","locale","day","getDay","diff","setHours","startOfISOWeek","getISOWeekYear","year","getFullYear","fourthOfJanuaryOfNextYear","setFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","getTime","startOfDay","getTimezoneOffsetInMilliseconds","utcDate","UTC","getMonth","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","isValid","Number","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","args","width","String","defaultWidth","formats","formatLong","full","long","medium","short","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","valuesArray","context","formattingValues","defaultFormattingWidth","values","argumentCallback","buildMatchFn","string","matchPattern","matchPatterns","defaultMatchWidth","matchResult","match","matchedString","parsePatterns","defaultParseWidth","array","predicate","pattern","object","hasOwnProperty","findKey","valueCallback","rest","slice","enUS","formatDistance","result","tokenValue","replace","addSuffix","comparison","formatRelative","_baseDate","_options","localize","ordinalNumber","dirtyNumber","number","rem100","era","narrow","abbreviated","wide","quarter","month","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","parsePattern","parseInt","parseResult","any","index","firstWeekContainsDate","getDayOfYear","dateLeft","dateRight","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","Math","round","differenceInCalendarDays","cleanDate","startOfYear","getISOWeek","fourthOfJanuary","startOfISOWeekYear","getWeekYear","firstWeekOfNextYear","firstWeekOfThisYear","getWeek","firstWeek","startOfWeekYear","addLeadingZeros","targetLength","abs","padStart","lightFormatters","y","signedYear","M","d","a","dayPeriodEnumValue","toUpperCase","h","H","m","s","S","numberOfDigits","milliseconds","trunc","pow","dayPeriodEnum","formatters","G","unit","Y","signedWeekYear","weekYear","R","u","Q","ceil","q","L","w","week","I","isoWeek","D","dayOfYear","E","dayOfWeek","e","localDayOfWeek","c","i","isoDayOfWeek","b","hours","B","K","k","X","_localize","timezoneOffset","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","x","O","formatTimezoneShort","z","t","T","offset","delimiter","sign","absOffset","minutes","dateLongFormatter","timeLongFormatter","longFormatters","p","P","dateTimeLongFormatter","datePattern","timePattern","dateTimeFormat","dayOfYearTokenRE","weekYearTokenRE","throwTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","warnOrThrowProtectedError","input","_message","subject","message","warn","includes","RangeError","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","formatStr","defaultLocale","originalDate","parts","substring","firstCharacter","longFormatter","join","isToken","cleanEscapedString","preprocessor","formatterOptions","part","formatter","matched","Setter","subPriority","validate","_utcDate","ValueSetter","validateValue","setValue","priority","super","set","flags","DateToSystemTimezoneSetter","timestampIsSet","fromDate","transpose","Parser","run","dateString","parse","setter","_value","numericPatterns","timezonePatterns","mapValue","parseFnResult","mapFn","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","n","RegExp","parseNDigitsSigned","dayPeriodEnumToHours","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","isLeapYearIndex","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","setDay","currentDay","delta","setISODay","getISODay","parsers","incompatibleTokens","isTwoDigitYear","normalizedTwoDigitYear","_flags","firstWeekOfYear","setMonth","setWeek","setISOWeek","isLeapYear","subpriority","wholeWeekDays","floor","isPM","setMinutes","setSeconds","setMilliseconds","notWhitespaceRegExp","dateStr","referenceDate","assign","getInternalDefaultOptions","subFnOptions","setters","tokens","usedTokens","parser","incompatibleToken","find","usedToken","fullToken","push","indexOf","uniquePrioritySetters","sort","filter","setterArray","StoreHour","start","startDateInstance","end","endDateInstance","hasAttribute","includesSeconds","split","isClosed","is24Hours","humanReadableHoursRange","StoreLocation","every","hour","schedule","objectAt","pushObject","Store","storeLocations","place","_this4","gateways","_this5","Network","_getResourceCollection","ResourceClass","resources","_args","_getStores","getResourceCollection","_getStoreLocations","_args3","_getPaymentGateways","DeliveryServiceQuote","_ServiceQuote","Adapter","_possibleConstructorReturn","_fetchServiceQuotesFromCart","origin","destination","cart","_origin","_destination","_cart","config","all","serviceQuotes","serviceQuote","_x3","_getFromCart","quote","fetchServiceQuotesFromCart","_x4","_x5","_x6","_x7","ServiceQuote","checkoutActions","initialize","customer","gateway","orderOptions","isResource","captureOrder","transactionDetails","orderJson","createStripeSetupIntent","updateStripePaymentIntent","paymentIntent","Checkout","_this$store","_this$store2","adapters","BrowserAdapter","NodeAdapter","toStudlyCase","str","Boolean","word","charAt","Resolver","className","pluralize","classKey","singularize","_construct","_toConsumableArray","_Store","extendStoreActions","json","classify","Storefront","storeKey","debug","version","host","publicKey","categories","extendActions","customers","checkout","product"],"mappings":"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","x_google_ignoreList":[12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91]} \ No newline at end of file diff --git a/dist/@fleetbase/storefront/resolver.min.js b/dist/@fleetbase/storefront/resolver.min.js deleted file mode 100644 index 9ad63ba..0000000 --- a/dist/@fleetbase/storefront/resolver.min.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@fleetbase/sdk")):"function"==typeof define&&define.amd?define(["exports","@fleetbase/sdk"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["@fleetbase/storefront/resolver"]={},t.sdk)}(this,(function(t,e){"use strict";function r(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=0;--a){var i=this.tryEntries[a],s=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var u=n.call(i,"catchLoc"),c=n.call(i,"finallyLoc");if(u&&c){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),O(r),p}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;O(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:A(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),p}},e}function w(t,e){return w=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},w(t,e)}function v(t){return function(t){if(Array.isArray(t))return r(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return r(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function b(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,e||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:e+""}function k(t){return k="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},k(t)}var x=function(t){function r(){return i(this,r),a(this,r,arguments)}return l(r,t),c(r,[{key:"extendActions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return e.extendStoreActions(this,t)}},{key:"serialize",value:function(t){return Re("resource",e.classify(this.resource),t,this.adapter)}}])}(e.Store),T=function(t){function e(){return i(this,e),a(this,e,arguments)}return l(e,t),c(e,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new x(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}}])}(e.Resource);new e.StoreActions({count:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={};return t&&(r.store=t),this.adapter.get("".concat(this.namespace,"/count"),r,e)}});var M=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,e),a(this,e,[t,r,"review",n])}return l(e,t),c(e,[{key:"getMedia",value:function(){}},{key:"getPhotos",value:function(){}},{key:"getVideos",value:function(){}}])}(T),P=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(t)};function S(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"USD",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"symbol";return new Intl.NumberFormat("en-US",{style:"currency",currency:e,currencyDisplay:r}).format(t)}var E=function(t){var e=null==t;if(e)return e;if("number"==typeof t.size)return!t.size;var r=k(t);if("object"===r){var n=t.size;if("number"==typeof n)return!n}if("number"==typeof t.length&&"function"!==r)return!t.length;if("object"===r){var o=t.length;if("number"==typeof o)return!o}return!1},D=function(t){function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,r),a(this,r,[t,e,"product",n])}return l(r,t),c(r,[{key:"variants",value:function(){return this.getAttribute("variants")}},{key:"addons",value:function(){return this.getAttribute("addon_categories")}},{key:"isOnSale",get:function(){return this.getAttribute("is_on_sale")}},{key:"isNotOnSale",get:function(){return!this.getAttribute("is_on_sale")}},{key:"formattedAmount",get:function(){var t=this.getAttributes(["price","sale_price","currency"]),e=t.price,r=t.sale_price,n=t.currency;return this.isOnSale?E(r)||E(n)?null:S(r/100,n):E(e)||E(n)?null:S(e/100,n)}},{key:"getReviews",value:function(){var t=this;return this.adapter.get("reviews",{store:this.id}).then((function(r){return new e.Collection(r.map((function(e){return new M(e,t.adapter)})))}))}}])}(T),O=function(t){function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,r),a(this,r,[t,e,"category",n])}return l(r,t),c(r,[{key:"getProducts",value:function(){var t=this;return this.adapter.get("products",{category:this.id}).then((function(r){return new e.Collection(r.map((function(e){return new D(e,t.adapter)})))}))}}])}(T),q=new e.StoreActions({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(P(t))return this.adapter.post("customers/login-with-sms",{phone:t});if(!e)throw new Error("Login requires password!");return this.adapter.post("customers/login",p({identity:t,password:e},r)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("customers/verify-code",p({identity:t,code:e},r)).then(this.afterFetch.bind(this))},requestCreationCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"email";return this.adapter.post("customers/request-creation-code",{identity:t,mode:e})},create:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("customers",p({identity:t,code:e},r)).then(this.afterFetch.bind(this))},retrieve:function(t){return this.findRecord(t)}}),A=function(t){function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,r),a(this,r,[t,e,"customer",p({actions:q},n)])}return l(r,t),c(r,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new x(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"token",get:function(){return this.getAttribute("token")}},{key:"syncDevice",value:(d=o(y().mark((function t(e){var r=this;return y().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this.adapter.setHeaders({"Customer-Token":this.token}).post("customers/register-device",e).then((function(){return r})));case 1:case"end":return t.stop()}}),t,this)}))),function(t){return d.apply(this,arguments)})},{key:"performAuthorizedRequest",value:(u=o(y().mark((function t(e){var r,n,o,a,i=arguments;return y().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=i.length>1&&void 0!==i[1]?i[1]:{},n=i.length>2&&void 0!==i[2]?i[2]:"GET",t.prev=2,o={"Customer-Token":this.token},t.next=6,this.adapter.setHeaders(o)[n.toLowerCase()](e,r);case 6:return a=t.sent,t.abrupt("return",a);case 10:throw t.prev=10,t.t0=t.catch(2),console.error("Error in ".concat(n," request to ").concat(e,":"),t.t0),t.t0;case 14:case"end":return t.stop()}}),t,this,[[2,10]])}))),function(t){return u.apply(this,arguments)})},{key:"getSavedPlaces",value:(s=o(y().mark((function t(){var r,n=this;return y().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,this.performAuthorizedRequest("customers/places");case 3:return r=t.sent,t.abrupt("return",new e.Collection(r.map((function(t){return new e.Place(t,n.adapter)}))));case 7:throw t.prev=7,t.t0=t.catch(0),new Error("Failed to retrieve saved places");case 10:case"end":return t.stop()}}),t,this,[[0,7]])}))),function(){return s.apply(this,arguments)})},{key:"getOrderHistory",value:(n=o(y().mark((function t(){var r,n,o=this,a=arguments;return y().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=a.length>0&&void 0!==a[0]?a[0]:{},t.prev=1,t.next=4,this.performAuthorizedRequest("customers/orders",r);case 4:return n=t.sent,t.abrupt("return",new e.Collection(n.map((function(t){return new e.Order(t,o.adapter)}))));case 8:throw t.prev=8,t.t0=t.catch(1),new Error("Failed to retrieve order history");case 11:case"end":return t.stop()}}),t,this,[[1,8]])}))),function(){return n.apply(this,arguments)})},{key:"getStripeEphemeralKey",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.setHeaders({"Customer-Token":this.token}).post("customers/stripe-ephemeral-key",t)}},{key:"getStripeSetupIntent",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.setHeaders({"Customer-Token":this.token}).post("customers/stripe-setup-intent",t)}}]);var n,s,u,d}(T),H=Array.isArray,N=new e.StoreActions({create:void 0,findAll:void 0,query:void 0,queryRecord:void 0,add:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/").concat(e),p(p({},n),{},{quantity:r}),o).then(this.afterFetch.bind(this))},update:function(t,e,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return this.adapter.put("".concat(this.namespace,"/").concat(t,"/").concat(e),p(p({},n),{},{quantity:r}),o).then(this.afterFetch.bind(this))},remove:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete("".concat(this.namespace,"/").concat(t,"/").concat(e),{},r).then(this.afterFetch.bind(this))},empty:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.put("".concat(this.namespace,"/").concat(t,"/empty"),{},e).then(this.afterFetch.bind(this))},retrieve:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return this.findRecord(t)}}),L=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,e),a(this,e,[t,r,"cart",p({actions:N},n)])}return l(e,t),c(e,[{key:"add",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return t instanceof D&&(t=t.id),this.store.add(this.id,t,e,r,n)}},{key:"update",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.store.update(this.id,t,e,r,n)}},{key:"remove",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.remove(this.id,t,e)}},{key:"empty",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.store.empty(this.id,t)}},{key:"delete",value:function(){return this.destroy()}},{key:"refresh",value:function(){return this.store.retrieve(this.id)}},{key:"subtotal",value:function(){var t=0;return this.contents().forEach((function(e){t+=e.subtotal})),t}},{key:"contents",value:function(){return this.getAttribute("items",[])}},{key:"hasProduct",value:function(t){return-1!==this.contents().findIndex((function(e){return e.product_id===t}))}},{key:"isEmpty",get:function(){var t=this.contents();return!H(t)||0===t.length}},{key:"isNotEmpty",get:function(){return!this.isEmpty}}])}(T),j=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,e),a(this,e,[t,r,"payment-gateway",n])}return l(e,t),c(e,[{key:"type",get:function(){return this.getAttribute("type")}},{key:"code",get:function(){return this.getAttribute("code")}},{key:"isCashGateway",get:function(){return"cash"===this.type}},{key:"isStripeGateway",get:function(){return"stripe"===this.type}},{key:"setCheckoutToken",value:function(t){this.token=t}},{key:"getCheckoutToken",value:function(){return this.token}},{key:"findRecord",value:function(){throw new Error("There is no findRecord() method for payment gateways!")}},{key:"create",value:function(){throw new Error("There is no create() method for payment gateways!")}},{key:"update",value:function(){throw new Error("There is no update() method for payment gateways!")}},{key:"destroy",value:function(){throw new Error("There is no destroy() method for payment gateways!")}},{key:"reload",value:function(){throw new Error("There is no reload() method for payment gateways!")}}])}(T);function C(t){const e=Object.prototype.toString.call(t);return t instanceof Date||"object"==typeof t&&"[object Date]"===e?new t.constructor(+t):"number"==typeof t||"[object Number]"===e||"string"==typeof t||"[object String]"===e?new Date(t):new Date(NaN)}function Y(t,e){return t instanceof Date?new t.constructor(e):new Date(e)}function F(t,e){const r=C(t);return isNaN(e)?Y(t,NaN):e?(r.setDate(r.getDate()+e),r):r}const R=6048e5;let W={};function I(){return W}function Q(t,e){const r=I(),n=e?.weekStartsOn??e?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,o=C(t),a=o.getDay(),i=(a=o.getTime()?r+1:e.getTime()>=i.getTime()?r:r-1}function B(t){const e=C(t);return e.setHours(0,0,0,0),e}function _(t){const e=C(t),r=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return r.setUTCFullYear(e.getFullYear()),+t-+r}function X(t){if(!(e=t,e instanceof Date||"object"==typeof e&&"[object Date]"===Object.prototype.toString.call(e)||"number"==typeof t))return!1;var e;const r=C(t);return!isNaN(Number(r))}const $={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function K(t){return(e={})=>{const r=e.width?String(e.width):t.defaultWidth;return t.formats[r]||t.formats[t.defaultWidth]}}const Z={date:K({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:K({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:K({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},J={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function U(t){return(e,r)=>{let n;if("formatting"===(r?.context?String(r.context):"standalone")&&t.formattingValues){const e=t.defaultFormattingWidth||t.defaultWidth,o=r?.width?String(r.width):e;n=t.formattingValues[o]||t.formattingValues[e]}else{const e=t.defaultWidth,o=r?.width?String(r.width):t.defaultWidth;n=t.values[o]||t.values[e]}return n[t.argumentCallback?t.argumentCallback(e):e]}}function V(t){return(e,r={})=>{const n=r.width,o=n&&t.matchPatterns[n]||t.matchPatterns[t.defaultMatchWidth],a=e.match(o);if(!a)return null;const i=a[0],s=n&&t.parsePatterns[n]||t.parsePatterns[t.defaultParseWidth],u=Array.isArray(s)?function(t,e){for(let r=0;rt.test(i))):function(t,e){for(const r in t)if(Object.prototype.hasOwnProperty.call(t,r)&&e(t[r]))return r;return}(s,(t=>t.test(i)));let c;c=t.valueCallback?t.valueCallback(u):u,c=r.valueCallback?r.valueCallback(c):c;return{value:c,rest:e.slice(i.length)}}}var tt;const et={code:"en-US",formatDistance:(t,e,r)=>{let n;const o=$[t];return n="string"==typeof o?o:1===e?o.one:o.other.replace("{{count}}",e.toString()),r?.addSuffix?r.comparison&&r.comparison>0?"in "+n:n+" ago":n},formatLong:Z,formatRelative:(t,e,r,n)=>J[t],localize:{ordinalNumber:(t,e)=>{const r=Number(t),n=r%100;if(n>20||n<10)switch(n%10){case 1:return r+"st";case 2:return r+"nd";case 3:return r+"rd"}return r+"th"},era:U({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:U({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:t=>t-1}),month:U({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:U({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:U({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(tt={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:t=>parseInt(t,10)},(t,e={})=>{const r=t.match(tt.matchPattern);if(!r)return null;const n=r[0],o=t.match(tt.parsePattern);if(!o)return null;let a=tt.valueCallback?tt.valueCallback(o[0]):o[0];return a=e.valueCallback?e.valueCallback(a):a,{value:a,rest:t.slice(n.length)}}),era:V({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:V({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:t=>t+1}),month:V({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:V({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:V({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function rt(t){const e=C(t),r=function(t,e){const r=B(t),n=B(e),o=+r-_(r),a=+n-_(n);return Math.round((o-a)/864e5)}(e,function(t){const e=C(t),r=Y(t,0);return r.setFullYear(e.getFullYear(),0,1),r.setHours(0,0,0,0),r}(e));return r+1}function nt(t){const e=C(t),r=+G(e)-+function(t){const e=z(t),r=Y(t,0);return r.setFullYear(e,0,4),r.setHours(0,0,0,0),G(r)}(e);return Math.round(r/R)+1}function ot(t,e){const r=C(t),n=r.getFullYear(),o=I(),a=e?.firstWeekContainsDate??e?.locale?.options?.firstWeekContainsDate??o.firstWeekContainsDate??o.locale?.options?.firstWeekContainsDate??1,i=Y(t,0);i.setFullYear(n+1,0,a),i.setHours(0,0,0,0);const s=Q(i,e),u=Y(t,0);u.setFullYear(n,0,a),u.setHours(0,0,0,0);const c=Q(u,e);return r.getTime()>=s.getTime()?n+1:r.getTime()>=c.getTime()?n:n-1}function at(t,e){const r=C(t),n=+Q(r,e)-+function(t,e){const r=I(),n=e?.firstWeekContainsDate??e?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,o=ot(t,e),a=Y(t,0);return a.setFullYear(o,0,n),a.setHours(0,0,0,0),Q(a,e)}(r,e);return Math.round(n/R)+1}function it(t,e){return(t<0?"-":"")+Math.abs(t).toString().padStart(e,"0")}const st={y(t,e){const r=t.getFullYear(),n=r>0?r:1-r;return it("yy"===e?n%100:n,e.length)},M(t,e){const r=t.getMonth();return"M"===e?String(r+1):it(r+1,2)},d:(t,e)=>it(t.getDate(),e.length),a(t,e){const r=t.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return r.toUpperCase();case"aaa":return r;case"aaaaa":return r[0];default:return"am"===r?"a.m.":"p.m."}},h:(t,e)=>it(t.getHours()%12||12,e.length),H:(t,e)=>it(t.getHours(),e.length),m:(t,e)=>it(t.getMinutes(),e.length),s:(t,e)=>it(t.getSeconds(),e.length),S(t,e){const r=e.length,n=t.getMilliseconds();return it(Math.trunc(n*Math.pow(10,r-3)),e.length)}},ut="midnight",ct="noon",dt="morning",ht="afternoon",lt="evening",ft="night",mt={G:function(t,e,r){const n=t.getFullYear()>0?1:0;switch(e){case"G":case"GG":case"GGG":return r.era(n,{width:"abbreviated"});case"GGGGG":return r.era(n,{width:"narrow"});default:return r.era(n,{width:"wide"})}},y:function(t,e,r){if("yo"===e){const e=t.getFullYear(),n=e>0?e:1-e;return r.ordinalNumber(n,{unit:"year"})}return st.y(t,e)},Y:function(t,e,r,n){const o=ot(t,n),a=o>0?o:1-o;if("YY"===e){return it(a%100,2)}return"Yo"===e?r.ordinalNumber(a,{unit:"year"}):it(a,e.length)},R:function(t,e){return it(z(t),e.length)},u:function(t,e){return it(t.getFullYear(),e.length)},Q:function(t,e,r){const n=Math.ceil((t.getMonth()+1)/3);switch(e){case"Q":return String(n);case"QQ":return it(n,2);case"Qo":return r.ordinalNumber(n,{unit:"quarter"});case"QQQ":return r.quarter(n,{width:"abbreviated",context:"formatting"});case"QQQQQ":return r.quarter(n,{width:"narrow",context:"formatting"});default:return r.quarter(n,{width:"wide",context:"formatting"})}},q:function(t,e,r){const n=Math.ceil((t.getMonth()+1)/3);switch(e){case"q":return String(n);case"qq":return it(n,2);case"qo":return r.ordinalNumber(n,{unit:"quarter"});case"qqq":return r.quarter(n,{width:"abbreviated",context:"standalone"});case"qqqqq":return r.quarter(n,{width:"narrow",context:"standalone"});default:return r.quarter(n,{width:"wide",context:"standalone"})}},M:function(t,e,r){const n=t.getMonth();switch(e){case"M":case"MM":return st.M(t,e);case"Mo":return r.ordinalNumber(n+1,{unit:"month"});case"MMM":return r.month(n,{width:"abbreviated",context:"formatting"});case"MMMMM":return r.month(n,{width:"narrow",context:"formatting"});default:return r.month(n,{width:"wide",context:"formatting"})}},L:function(t,e,r){const n=t.getMonth();switch(e){case"L":return String(n+1);case"LL":return it(n+1,2);case"Lo":return r.ordinalNumber(n+1,{unit:"month"});case"LLL":return r.month(n,{width:"abbreviated",context:"standalone"});case"LLLLL":return r.month(n,{width:"narrow",context:"standalone"});default:return r.month(n,{width:"wide",context:"standalone"})}},w:function(t,e,r,n){const o=at(t,n);return"wo"===e?r.ordinalNumber(o,{unit:"week"}):it(o,e.length)},I:function(t,e,r){const n=nt(t);return"Io"===e?r.ordinalNumber(n,{unit:"week"}):it(n,e.length)},d:function(t,e,r){return"do"===e?r.ordinalNumber(t.getDate(),{unit:"date"}):st.d(t,e)},D:function(t,e,r){const n=rt(t);return"Do"===e?r.ordinalNumber(n,{unit:"dayOfYear"}):it(n,e.length)},E:function(t,e,r){const n=t.getDay();switch(e){case"E":case"EE":case"EEE":return r.day(n,{width:"abbreviated",context:"formatting"});case"EEEEE":return r.day(n,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(n,{width:"short",context:"formatting"});default:return r.day(n,{width:"wide",context:"formatting"})}},e:function(t,e,r,n){const o=t.getDay(),a=(o-n.weekStartsOn+8)%7||7;switch(e){case"e":return String(a);case"ee":return it(a,2);case"eo":return r.ordinalNumber(a,{unit:"day"});case"eee":return r.day(o,{width:"abbreviated",context:"formatting"});case"eeeee":return r.day(o,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(o,{width:"short",context:"formatting"});default:return r.day(o,{width:"wide",context:"formatting"})}},c:function(t,e,r,n){const o=t.getDay(),a=(o-n.weekStartsOn+8)%7||7;switch(e){case"c":return String(a);case"cc":return it(a,e.length);case"co":return r.ordinalNumber(a,{unit:"day"});case"ccc":return r.day(o,{width:"abbreviated",context:"standalone"});case"ccccc":return r.day(o,{width:"narrow",context:"standalone"});case"cccccc":return r.day(o,{width:"short",context:"standalone"});default:return r.day(o,{width:"wide",context:"standalone"})}},i:function(t,e,r){const n=t.getDay(),o=0===n?7:n;switch(e){case"i":return String(o);case"ii":return it(o,e.length);case"io":return r.ordinalNumber(o,{unit:"day"});case"iii":return r.day(n,{width:"abbreviated",context:"formatting"});case"iiiii":return r.day(n,{width:"narrow",context:"formatting"});case"iiiiii":return r.day(n,{width:"short",context:"formatting"});default:return r.day(n,{width:"wide",context:"formatting"})}},a:function(t,e,r){const n=t.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return r.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"aaa":return r.dayPeriod(n,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return r.dayPeriod(n,{width:"narrow",context:"formatting"});default:return r.dayPeriod(n,{width:"wide",context:"formatting"})}},b:function(t,e,r){const n=t.getHours();let o;switch(o=12===n?ct:0===n?ut:n/12>=1?"pm":"am",e){case"b":case"bb":return r.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"bbb":return r.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return r.dayPeriod(o,{width:"narrow",context:"formatting"});default:return r.dayPeriod(o,{width:"wide",context:"formatting"})}},B:function(t,e,r){const n=t.getHours();let o;switch(o=n>=17?lt:n>=12?ht:n>=4?dt:ft,e){case"B":case"BB":case"BBB":return r.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"BBBBB":return r.dayPeriod(o,{width:"narrow",context:"formatting"});default:return r.dayPeriod(o,{width:"wide",context:"formatting"})}},h:function(t,e,r){if("ho"===e){let e=t.getHours()%12;return 0===e&&(e=12),r.ordinalNumber(e,{unit:"hour"})}return st.h(t,e)},H:function(t,e,r){return"Ho"===e?r.ordinalNumber(t.getHours(),{unit:"hour"}):st.H(t,e)},K:function(t,e,r){const n=t.getHours()%12;return"Ko"===e?r.ordinalNumber(n,{unit:"hour"}):it(n,e.length)},k:function(t,e,r){let n=t.getHours();return 0===n&&(n=24),"ko"===e?r.ordinalNumber(n,{unit:"hour"}):it(n,e.length)},m:function(t,e,r){return"mo"===e?r.ordinalNumber(t.getMinutes(),{unit:"minute"}):st.m(t,e)},s:function(t,e,r){return"so"===e?r.ordinalNumber(t.getSeconds(),{unit:"second"}):st.s(t,e)},S:function(t,e){return st.S(t,e)},X:function(t,e,r){const n=t.getTimezoneOffset();if(0===n)return"Z";switch(e){case"X":return gt(n);case"XXXX":case"XX":return yt(n);default:return yt(n,":")}},x:function(t,e,r){const n=t.getTimezoneOffset();switch(e){case"x":return gt(n);case"xxxx":case"xx":return yt(n);default:return yt(n,":")}},O:function(t,e,r){const n=t.getTimezoneOffset();switch(e){case"O":case"OO":case"OOO":return"GMT"+pt(n,":");default:return"GMT"+yt(n,":")}},z:function(t,e,r){const n=t.getTimezoneOffset();switch(e){case"z":case"zz":case"zzz":return"GMT"+pt(n,":");default:return"GMT"+yt(n,":")}},t:function(t,e,r){return it(Math.trunc(t.getTime()/1e3),e.length)},T:function(t,e,r){return it(t.getTime(),e.length)}};function pt(t,e=""){const r=t>0?"-":"+",n=Math.abs(t),o=Math.trunc(n/60),a=n%60;return 0===a?r+String(o):r+String(o)+e+it(a,2)}function gt(t,e){if(t%60==0){return(t>0?"-":"+")+it(Math.abs(t)/60,2)}return yt(t,e)}function yt(t,e=""){const r=t>0?"-":"+",n=Math.abs(t);return r+it(Math.trunc(n/60),2)+e+it(n%60,2)}const wt=(t,e)=>{switch(t){case"P":return e.date({width:"short"});case"PP":return e.date({width:"medium"});case"PPP":return e.date({width:"long"});default:return e.date({width:"full"})}},vt=(t,e)=>{switch(t){case"p":return e.time({width:"short"});case"pp":return e.time({width:"medium"});case"ppp":return e.time({width:"long"});default:return e.time({width:"full"})}},bt={p:vt,P:(t,e)=>{const r=t.match(/(P+)(p+)?/)||[],n=r[1],o=r[2];if(!o)return wt(t,e);let a;switch(n){case"P":a=e.dateTime({width:"short"});break;case"PP":a=e.dateTime({width:"medium"});break;case"PPP":a=e.dateTime({width:"long"});break;default:a=e.dateTime({width:"full"})}return a.replace("{{date}}",wt(n,e)).replace("{{time}}",vt(o,e))}},kt=/^D+$/,xt=/^Y+$/,Tt=["D","DD","YY","YYYY"];function Mt(t){return kt.test(t)}function Pt(t){return xt.test(t)}function St(t,e,r){const n=function(t,e,r){const n="Y"===t[0]?"years":"days of the month";return`Use \`${t.toLowerCase()}\` instead of \`${t}\` (in \`${e}\`) for formatting ${n} to the input \`${r}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}(t,e,r);if(console.warn(n),Tt.includes(t))throw new RangeError(n)}const Et=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Dt=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Ot=/^'([^]*?)'?$/,qt=/''/g,At=/[a-zA-Z]/;function Ht(t,e,r){const n=I(),o=n.locale??et,a=n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,i=n.weekStartsOn??n.locale?.options?.weekStartsOn??0,s=C(t);if(!X(s))throw new RangeError("Invalid time value");let u=e.match(Dt).map((t=>{const e=t[0];if("p"===e||"P"===e){return(0,bt[e])(t,o.formatLong)}return t})).join("").match(Et).map((t=>{if("''"===t)return{isToken:!1,value:"'"};const e=t[0];if("'"===e)return{isToken:!1,value:Nt(t)};if(mt[e])return{isToken:!0,value:t};if(e.match(At))throw new RangeError("Format string contains an unescaped latin alphabet character `"+e+"`");return{isToken:!1,value:t}}));o.localize.preprocessor&&(u=o.localize.preprocessor(s,u));const c={firstWeekContainsDate:a,weekStartsOn:i,locale:o};return u.map((r=>{if(!r.isToken)return r.value;const n=r.value;(Pt(n)||Mt(n))&&St(n,e,String(t));return(0,mt[n[0]])(s,n,o.localize,c)})).join("")}function Nt(t){const e=t.match(Ot);return e?e[1].replace(qt,"'"):t}class Lt{subPriority=0;validate(t,e){return!0}}class jt extends Lt{constructor(t,e,r,n,o){super(),this.value=t,this.validateValue=e,this.setValue=r,this.priority=n,o&&(this.subPriority=o)}validate(t,e){return this.validateValue(t,this.value,e)}set(t,e,r){return this.setValue(t,e,this.value,r)}}class Ct extends Lt{priority=10;subPriority=-1;set(t,e){return e.timestampIsSet?t:Y(t,function(t,e){const r=e instanceof Date?Y(e,0):new e(0);return r.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),r.setHours(t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()),r}(t,Date))}}class Yt{run(t,e,r,n){const o=this.parse(t,e,r,n);return o?{setter:new jt(o.value,this.validate,this.set,this.priority,this.subPriority),rest:o.rest}:null}validate(t,e,r){return!0}}const Ft=/^(1[0-2]|0?\d)/,Rt=/^(3[0-1]|[0-2]?\d)/,Wt=/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,It=/^(5[0-3]|[0-4]?\d)/,Qt=/^(2[0-3]|[0-1]?\d)/,Gt=/^(2[0-4]|[0-1]?\d)/,zt=/^(1[0-1]|0?\d)/,Bt=/^(1[0-2]|0?\d)/,_t=/^[0-5]?\d/,Xt=/^[0-5]?\d/,$t=/^\d/,Kt=/^\d{1,2}/,Zt=/^\d{1,3}/,Jt=/^\d{1,4}/,Ut=/^-?\d+/,Vt=/^-?\d/,te=/^-?\d{1,2}/,ee=/^-?\d{1,3}/,re=/^-?\d{1,4}/,ne=/^([+-])(\d{2})(\d{2})?|Z/,oe=/^([+-])(\d{2})(\d{2})|Z/,ae=/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,ie=/^([+-])(\d{2}):(\d{2})|Z/,se=/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/;function ue(t,e){return t?{value:e(t.value),rest:t.rest}:t}function ce(t,e){const r=e.match(t);return r?{value:parseInt(r[0],10),rest:e.slice(r[0].length)}:null}function de(t,e){const r=e.match(t);if(!r)return null;if("Z"===r[0])return{value:0,rest:e.slice(1)};return{value:("+"===r[1]?1:-1)*(36e5*(r[2]?parseInt(r[2],10):0)+6e4*(r[3]?parseInt(r[3],10):0)+1e3*(r[5]?parseInt(r[5],10):0)),rest:e.slice(r[0].length)}}function he(t){return ce(Ut,t)}function le(t,e){switch(t){case 1:return ce($t,e);case 2:return ce(Kt,e);case 3:return ce(Zt,e);case 4:return ce(Jt,e);default:return ce(new RegExp("^\\d{1,"+t+"}"),e)}}function fe(t,e){switch(t){case 1:return ce(Vt,e);case 2:return ce(te,e);case 3:return ce(ee,e);case 4:return ce(re,e);default:return ce(new RegExp("^-?\\d{1,"+t+"}"),e)}}function me(t){switch(t){case"morning":return 4;case"evening":return 17;case"pm":case"noon":case"afternoon":return 12;default:return 0}}function pe(t,e){const r=e>0,n=r?e:1-e;let o;if(n<=50)o=t||100;else{const e=n+50;o=t+100*Math.trunc(e/100)-(t>=e%100?100:0)}return r?o:1-o}function ge(t){return t%400==0||t%4==0&&t%100!=0}const ye=[31,28,31,30,31,30,31,31,30,31,30,31],we=[31,29,31,30,31,30,31,31,30,31,30,31];function ve(t,e,r){const n=I(),o=r?.weekStartsOn??r?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=C(t),i=a.getDay(),s=7-o;return F(a,e<0||e>6?e-(i+s)%7:((e%7+7)%7+s)%7-(i+s)%7)}function be(t,e){const r=C(t),n=function(t){let e=C(t).getDay();return 0===e&&(e=7),e}(r);return F(r,e-n)}const ke={G:new class extends Yt{priority=140;parse(t,e,r){switch(e){case"G":case"GG":case"GGG":return r.era(t,{width:"abbreviated"})||r.era(t,{width:"narrow"});case"GGGGG":return r.era(t,{width:"narrow"});default:return r.era(t,{width:"wide"})||r.era(t,{width:"abbreviated"})||r.era(t,{width:"narrow"})}}set(t,e,r){return e.era=r,t.setFullYear(r,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["R","u","t","T"]},y:new class extends Yt{priority=130;incompatibleTokens=["Y","R","u","w","I","i","e","c","t","T"];parse(t,e,r){const n=t=>({year:t,isTwoDigitYear:"yy"===e});switch(e){case"y":return ue(le(4,t),n);case"yo":return ue(r.ordinalNumber(t,{unit:"year"}),n);default:return ue(le(e.length,t),n)}}validate(t,e){return e.isTwoDigitYear||e.year>0}set(t,e,r){const n=t.getFullYear();if(r.isTwoDigitYear){const e=pe(r.year,n);return t.setFullYear(e,0,1),t.setHours(0,0,0,0),t}const o="era"in e&&1!==e.era?1-r.year:r.year;return t.setFullYear(o,0,1),t.setHours(0,0,0,0),t}},Y:new class extends Yt{priority=130;parse(t,e,r){const n=t=>({year:t,isTwoDigitYear:"YY"===e});switch(e){case"Y":return ue(le(4,t),n);case"Yo":return ue(r.ordinalNumber(t,{unit:"year"}),n);default:return ue(le(e.length,t),n)}}validate(t,e){return e.isTwoDigitYear||e.year>0}set(t,e,r,n){const o=ot(t,n);if(r.isTwoDigitYear){const e=pe(r.year,o);return t.setFullYear(e,0,n.firstWeekContainsDate),t.setHours(0,0,0,0),Q(t,n)}const a="era"in e&&1!==e.era?1-r.year:r.year;return t.setFullYear(a,0,n.firstWeekContainsDate),t.setHours(0,0,0,0),Q(t,n)}incompatibleTokens=["y","R","u","Q","q","M","L","I","d","D","i","t","T"]},R:new class extends Yt{priority=130;parse(t,e){return fe("R"===e?4:e.length,t)}set(t,e,r){const n=Y(t,0);return n.setFullYear(r,0,4),n.setHours(0,0,0,0),G(n)}incompatibleTokens=["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"]},u:new class extends Yt{priority=130;parse(t,e){return fe("u"===e?4:e.length,t)}set(t,e,r){return t.setFullYear(r,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["G","y","Y","R","w","I","i","e","c","t","T"]},Q:new class extends Yt{priority=120;parse(t,e,r){switch(e){case"Q":case"QQ":return le(e.length,t);case"Qo":return r.ordinalNumber(t,{unit:"quarter"});case"QQQ":return r.quarter(t,{width:"abbreviated",context:"formatting"})||r.quarter(t,{width:"narrow",context:"formatting"});case"QQQQQ":return r.quarter(t,{width:"narrow",context:"formatting"});default:return r.quarter(t,{width:"wide",context:"formatting"})||r.quarter(t,{width:"abbreviated",context:"formatting"})||r.quarter(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=1&&e<=4}set(t,e,r){return t.setMonth(3*(r-1),1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","M","L","w","I","d","D","i","e","c","t","T"]},q:new class extends Yt{priority=120;parse(t,e,r){switch(e){case"q":case"qq":return le(e.length,t);case"qo":return r.ordinalNumber(t,{unit:"quarter"});case"qqq":return r.quarter(t,{width:"abbreviated",context:"standalone"})||r.quarter(t,{width:"narrow",context:"standalone"});case"qqqqq":return r.quarter(t,{width:"narrow",context:"standalone"});default:return r.quarter(t,{width:"wide",context:"standalone"})||r.quarter(t,{width:"abbreviated",context:"standalone"})||r.quarter(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=1&&e<=4}set(t,e,r){return t.setMonth(3*(r-1),1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","Q","M","L","w","I","d","D","i","e","c","t","T"]},M:new class extends Yt{incompatibleTokens=["Y","R","q","Q","L","w","I","D","i","e","c","t","T"];priority=110;parse(t,e,r){const n=t=>t-1;switch(e){case"M":return ue(ce(Ft,t),n);case"MM":return ue(le(2,t),n);case"Mo":return ue(r.ordinalNumber(t,{unit:"month"}),n);case"MMM":return r.month(t,{width:"abbreviated",context:"formatting"})||r.month(t,{width:"narrow",context:"formatting"});case"MMMMM":return r.month(t,{width:"narrow",context:"formatting"});default:return r.month(t,{width:"wide",context:"formatting"})||r.month(t,{width:"abbreviated",context:"formatting"})||r.month(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.setMonth(r,1),t.setHours(0,0,0,0),t}},L:new class extends Yt{priority=110;parse(t,e,r){const n=t=>t-1;switch(e){case"L":return ue(ce(Ft,t),n);case"LL":return ue(le(2,t),n);case"Lo":return ue(r.ordinalNumber(t,{unit:"month"}),n);case"LLL":return r.month(t,{width:"abbreviated",context:"standalone"})||r.month(t,{width:"narrow",context:"standalone"});case"LLLLL":return r.month(t,{width:"narrow",context:"standalone"});default:return r.month(t,{width:"wide",context:"standalone"})||r.month(t,{width:"abbreviated",context:"standalone"})||r.month(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.setMonth(r,1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","w","I","D","i","e","c","t","T"]},w:new class extends Yt{priority=100;parse(t,e,r){switch(e){case"w":return ce(It,t);case"wo":return r.ordinalNumber(t,{unit:"week"});default:return le(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,e,r,n){return Q(function(t,e,r){const n=C(t),o=at(n,r)-e;return n.setDate(n.getDate()-7*o),n}(t,r,n),n)}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","i","t","T"]},I:new class extends Yt{priority=100;parse(t,e,r){switch(e){case"I":return ce(It,t);case"Io":return r.ordinalNumber(t,{unit:"week"});default:return le(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,e,r){return G(function(t,e){const r=C(t),n=nt(r)-e;return r.setDate(r.getDate()-7*n),r}(t,r))}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","e","c","t","T"]},d:new class extends Yt{priority=90;subPriority=1;parse(t,e,r){switch(e){case"d":return ce(Rt,t);case"do":return r.ordinalNumber(t,{unit:"date"});default:return le(e.length,t)}}validate(t,e){const r=ge(t.getFullYear()),n=t.getMonth();return r?e>=1&&e<=we[n]:e>=1&&e<=ye[n]}set(t,e,r){return t.setDate(r),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","w","I","D","i","e","c","t","T"]},D:new class extends Yt{priority=90;subpriority=1;parse(t,e,r){switch(e){case"D":case"DD":return ce(Wt,t);case"Do":return r.ordinalNumber(t,{unit:"date"});default:return le(e.length,t)}}validate(t,e){return ge(t.getFullYear())?e>=1&&e<=366:e>=1&&e<=365}set(t,e,r){return t.setMonth(0,r),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","L","w","I","d","E","i","e","c","t","T"]},E:new class extends Yt{priority=90;parse(t,e,r){switch(e){case"E":case"EE":case"EEE":return r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});case"EEEEE":return r.day(t,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});default:return r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=ve(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["D","i","e","c","t","T"]},e:new class extends Yt{priority=90;parse(t,e,r,n){const o=t=>{const e=7*Math.floor((t-1)/7);return(t+n.weekStartsOn+6)%7+e};switch(e){case"e":case"ee":return ue(le(e.length,t),o);case"eo":return ue(r.ordinalNumber(t,{unit:"day"}),o);case"eee":return r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});case"eeeee":return r.day(t,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});default:return r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=ve(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","c","t","T"]},c:new class extends Yt{priority=90;parse(t,e,r,n){const o=t=>{const e=7*Math.floor((t-1)/7);return(t+n.weekStartsOn+6)%7+e};switch(e){case"c":case"cc":return ue(le(e.length,t),o);case"co":return ue(r.ordinalNumber(t,{unit:"day"}),o);case"ccc":return r.day(t,{width:"abbreviated",context:"standalone"})||r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"});case"ccccc":return r.day(t,{width:"narrow",context:"standalone"});case"cccccc":return r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"});default:return r.day(t,{width:"wide",context:"standalone"})||r.day(t,{width:"abbreviated",context:"standalone"})||r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=ve(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","e","t","T"]},i:new class extends Yt{priority=90;parse(t,e,r){const n=t=>0===t?7:t;switch(e){case"i":case"ii":return le(e.length,t);case"io":return r.ordinalNumber(t,{unit:"day"});case"iii":return ue(r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n);case"iiiii":return ue(r.day(t,{width:"narrow",context:"formatting"}),n);case"iiiiii":return ue(r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n);default:return ue(r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n)}}validate(t,e){return e>=1&&e<=7}set(t,e,r){return(t=be(t,r)).setHours(0,0,0,0),t}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","E","e","c","t","T"]},a:new class extends Yt{priority=80;parse(t,e,r){switch(e){case"a":case"aa":case"aaa":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"aaaaa":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(me(r),0,0,0),t}incompatibleTokens=["b","B","H","k","t","T"]},b:new class extends Yt{priority=80;parse(t,e,r){switch(e){case"b":case"bb":case"bbb":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"bbbbb":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(me(r),0,0,0),t}incompatibleTokens=["a","B","H","k","t","T"]},B:new class extends Yt{priority=80;parse(t,e,r){switch(e){case"B":case"BB":case"BBB":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"BBBBB":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(me(r),0,0,0),t}incompatibleTokens=["a","b","t","T"]},h:new class extends Yt{priority=70;parse(t,e,r){switch(e){case"h":return ce(Bt,t);case"ho":return r.ordinalNumber(t,{unit:"hour"});default:return le(e.length,t)}}validate(t,e){return e>=1&&e<=12}set(t,e,r){const n=t.getHours()>=12;return n&&r<12?t.setHours(r+12,0,0,0):n||12!==r?t.setHours(r,0,0,0):t.setHours(0,0,0,0),t}incompatibleTokens=["H","K","k","t","T"]},H:new class extends Yt{priority=70;parse(t,e,r){switch(e){case"H":return ce(Qt,t);case"Ho":return r.ordinalNumber(t,{unit:"hour"});default:return le(e.length,t)}}validate(t,e){return e>=0&&e<=23}set(t,e,r){return t.setHours(r,0,0,0),t}incompatibleTokens=["a","b","h","K","k","t","T"]},K:new class extends Yt{priority=70;parse(t,e,r){switch(e){case"K":return ce(zt,t);case"Ko":return r.ordinalNumber(t,{unit:"hour"});default:return le(e.length,t)}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.getHours()>=12&&r<12?t.setHours(r+12,0,0,0):t.setHours(r,0,0,0),t}incompatibleTokens=["h","H","k","t","T"]},k:new class extends Yt{priority=70;parse(t,e,r){switch(e){case"k":return ce(Gt,t);case"ko":return r.ordinalNumber(t,{unit:"hour"});default:return le(e.length,t)}}validate(t,e){return e>=1&&e<=24}set(t,e,r){const n=r<=24?r%24:r;return t.setHours(n,0,0,0),t}incompatibleTokens=["a","b","h","H","K","t","T"]},m:new class extends Yt{priority=60;parse(t,e,r){switch(e){case"m":return ce(_t,t);case"mo":return r.ordinalNumber(t,{unit:"minute"});default:return le(e.length,t)}}validate(t,e){return e>=0&&e<=59}set(t,e,r){return t.setMinutes(r,0,0),t}incompatibleTokens=["t","T"]},s:new class extends Yt{priority=50;parse(t,e,r){switch(e){case"s":return ce(Xt,t);case"so":return r.ordinalNumber(t,{unit:"second"});default:return le(e.length,t)}}validate(t,e){return e>=0&&e<=59}set(t,e,r){return t.setSeconds(r,0),t}incompatibleTokens=["t","T"]},S:new class extends Yt{priority=30;parse(t,e){return ue(le(e.length,t),(t=>Math.trunc(t*Math.pow(10,3-e.length))))}set(t,e,r){return t.setMilliseconds(r),t}incompatibleTokens=["t","T"]},X:new class extends Yt{priority=10;parse(t,e){switch(e){case"X":return de(ne,t);case"XX":return de(oe,t);case"XXXX":return de(ae,t);case"XXXXX":return de(se,t);default:return de(ie,t)}}set(t,e,r){return e.timestampIsSet?t:Y(t,t.getTime()-_(t)-r)}incompatibleTokens=["t","T","x"]},x:new class extends Yt{priority=10;parse(t,e){switch(e){case"x":return de(ne,t);case"xx":return de(oe,t);case"xxxx":return de(ae,t);case"xxxxx":return de(se,t);default:return de(ie,t)}}set(t,e,r){return e.timestampIsSet?t:Y(t,t.getTime()-_(t)-r)}incompatibleTokens=["t","T","X"]},t:new class extends Yt{priority=40;parse(t){return he(t)}set(t,e,r){return[Y(t,1e3*r),{timestampIsSet:!0}]}incompatibleTokens="*"},T:new class extends Yt{priority=20;parse(t){return he(t)}set(t,e,r){return[Y(t,r),{timestampIsSet:!0}]}incompatibleTokens="*"}},xe=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Te=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Me=/^'([^]*?)'?$/,Pe=/''/g,Se=/\S/,Ee=/[a-zA-Z]/;function De(t,e,r,n){const o=Object.assign({},I()),a=o.locale??et,i=o.firstWeekContainsDate??o.locale?.options?.firstWeekContainsDate??1,s=o.weekStartsOn??o.locale?.options?.weekStartsOn??0;if(""===e)return""===t?C(r):Y(r,NaN);const u={firstWeekContainsDate:i,weekStartsOn:s,locale:a},c=[new Ct],d=e.match(Te).map((t=>{const e=t[0];if(e in bt){return(0,bt[e])(t,a.formatLong)}return t})).join("").match(xe),h=[];for(let n of d){Pt(n)&&St(n,e,t),Mt(n)&&St(n,e,t);const o=n[0],i=ke[o];if(i){const{incompatibleTokens:e}=i;if(Array.isArray(e)){const t=h.find((t=>e.includes(t.token)||t.token===o));if(t)throw new RangeError(`The format string mustn't contain \`${t.fullToken}\` and \`${n}\` at the same time`)}else if("*"===i.incompatibleTokens&&h.length>0)throw new RangeError(`The format string mustn't contain \`${n}\` and any other token at the same time`);h.push({token:o,fullToken:n});const s=i.run(t,n,a.match,u);if(!s)return Y(r,NaN);c.push(s.setter),t=s.rest}else{if(o.match(Ee))throw new RangeError("Format string contains an unescaped latin alphabet character `"+o+"`");if("''"===n?n="'":"'"===o&&(n=n.match(Me)[1].replace(Pe,"'")),0!==t.indexOf(n))return Y(r,NaN);t=t.slice(n.length)}}if(t.length>0&&Se.test(t))return Y(r,NaN);const l=c.map((t=>t.priority)).sort(((t,e)=>e-t)).filter(((t,e,r)=>r.indexOf(t)===e)).map((t=>c.filter((e=>e.priority===t)).sort(((t,e)=>e.subPriority-t.subPriority)))).map((t=>t[0]));let f=C(r);if(isNaN(f.getTime()))return Y(r,NaN);const m={};for(const t of l){if(!t.validate(f,u))return Y(r,NaN);const e=t.set(f,m,u);Array.isArray(e)?(f=e[0],Object.assign(m,e[1])):f=e}return Y(r,f)}var Oe=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,e),a(this,e,[t,r,"store-hour",n])}return l(e,t),c(e,[{key:"day",get:function(){return this.getAttribute("day")}},{key:"isClosed",get:function(){return null===this.getAttribute("start")&&null===this.getAttribute("end")}},{key:"is24Hours",get:function(){var t=this.startDateInstance,e=this.endDateInstance,r=Math.abs(t-e);return Math.floor(r/1e3/60)/60>23}},{key:"startDateInstance",get:function(){if(!this.hasAttribute("start"))return null;var t=this.getAttribute("start"),e=3===t.split(":").length;return De(t,e?"HH:mm:ss":"HH:mm",new Date)}},{key:"endDateInstance",get:function(){if(!this.hasAttribute("end"))return null;var t=this.getAttribute("end"),e=3===t.split(":").length;return De(t,e?"HH:mm:ss":"HH:mm",new Date)}},{key:"humanReadableHoursRange",get:function(){return X(this.startDateInstance)&&X(this.endDateInstance)?"".concat(Ht(this.startDateInstance,"p")," - ").concat(Ht(this.endDateInstance,"p")):"".concat(this.start," - ").concat(this.end)}},{key:"humanReadableHours",get:function(){return this.isClosed?"Closed":this.is24Hours?"24 Hours":this.humanReadableHoursRange}},{key:"create",value:function(){throw new Error("There is no create() method store location!")}},{key:"update",value:function(){throw new Error("There is no update() method store location!")}},{key:"destroy",value:function(){throw new Error("There is no destroy() method store location!")}},{key:"reload",value:function(){throw new Error("There is no reload() method store location!")}}])}(T),qe=function(t){function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,r),a(this,r,[t,e,"store-location",n])}return l(r,t),c(r,[{key:"latitude",get:function(){return this.getAttribute("place.location.coordinates.1")}},{key:"longitude",get:function(){return this.getAttribute("place.location.coordinates.0")}},{key:"hours",get:function(){return new e.Collection(this.getAttribute("hours").map((function(t){return new Oe(t)})))}},{key:"isAlwaysOpen",get:function(){return this.hours.every((function(t){return null==t?void 0:t.is24Hours}))}},{key:"today",get:function(){var t=Ht(new Date,"EEEE");return this.schedule[t]}},{key:"schedule",get:function(){for(var t={},r=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],n=0;n0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,r),a(this,r,[t,e,"store",n])}return l(r,t),c(r,[{key:"getReviews",value:function(){var t=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("reviews",p({store:this.id},r)).then((function(r){return new e.Collection(r.map((function(e){return new M(e,t.adapter)})))}))}},{key:"getLocations",value:function(){var t=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("locations",p({store:this.id},r)).then((function(r){return new e.Collection(r.map((function(r){return r.place&&(r.place=new e.Place(r.place)),new qe(r,t.adapter)})))}))}},{key:"getLocation",value:function(t){var e=this;return this.adapter.get("locations/".concat(t),{store:this.id}).then((function(t){return new qe(t,e.adapter)}))}},{key:"getPaymentGateways",value:function(){var t=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("gateways",r).then((function(r){return new e.Collection(r.map((function(e){return new j(e,t.adapter)})))}))}},{key:"getPaymentGateway",value:function(t){var e=this;return this.adapter.get("gateways/".concat(t)).then((function(t){return new j(t,e.adapter)}))}}])}(T),He=Array.isArray,Ne=function(t){function r(){var t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,r),n instanceof e.Adapter?g(t,t=a(this,r,[{},n,"service-quote",s])):a(this,r,[n,o,"service-quote",s])}return l(r,t),c(r,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new x(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"formattedAmount",get:function(){var t=this.getAttributes(["amount","currency"]),e=t.amount,r=t.currency;return E(e)||E(r)?null:S(e/100,r)}},{key:"fetchServiceQuotesFromCart",value:(s=o(y().mark((function t(n,o,a){var i,s,u,c,d,h,l=this,f=arguments;return y().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return c=f.length>3&&void 0!==f[3]?f[3]:"storefront",d=f.length>4&&void 0!==f[4]&&f[4],null!==(i=n)&&void 0!==i&&i.id&&(n=n.id),null!==(s=o)&&void 0!==s&&s.id&&(o=o.id),null!==(u=a)&&void 0!==u&&u.id&&(a=a.id),t.prev=5,t.next=8,this.adapter.get("service-quotes/from-cart",{origin:n,destination:o,cart:a,config:c,all:d});case 8:if(h=t.sent,!He(h)){t.next=11;break}return t.abrupt("return",new e.Collection(h.map((function(t){return new r(t,l.adapter)}))));case 11:return t.abrupt("return",new r(h,this.adapter));case 14:throw t.prev=14,t.t0=t.catch(5),console.error("Error fetching service quotes:",t.t0),t.t0;case 18:case"end":return t.stop()}}),t,this,[[5,14]])}))),function(t,e,r){return s.apply(this,arguments)})}],[{key:"getFromCart",value:(n=o(y().mark((function t(e,n,o,a){var i,s,u,c=arguments;return y().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=c.length>4&&void 0!==c[4]?c[4]:"storefront",s=c.length>5&&void 0!==c[5]&&c[5],u=new r(e),t.abrupt("return",u.fetchServiceQuotesFromCart(n,o,a,i,s));case 4:case"end":return t.stop()}}),t)}))),function(t,e,r,o){return n.apply(this,arguments)})}]);var n,s}(e.ServiceQuote);new e.StoreActions({create:void 0,findAll:void 0,query:void 0,queryRecord:void 0,initialize:function(t,r,n,o){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return e.isResource(t)&&(t=t.id),e.isResource(r)&&(r=r.id),e.isResource(n)&&(n=n.id),e.isResource(o)&&(o=o.getAttribute("code")),this.adapter.get("".concat(this.namespace,"/before"),p(p({},a),{},{customer:t,cart:r,serviceQuote:n,gateway:o}),i)},captureOrder:function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/capture"),{token:t,transactionDetails:r},n).then((function(t){return new e.Order(t)}))},createStripeSetupIntent:function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.isResource(t)&&(t=t.id),this.adapter.post("".concat(this.namespace,"/stripe-setup-intent"),{customer:t},r)},updateStripePaymentIntent:function(t,r,n,o){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return e.isResource(r)&&(r=r.id),e.isResource(n)&&(n=n.id),e.isResource(o)&&(o=o.id),this.adapter.put("".concat(this.namespace,"/stripe-update-payment-intent"),p({paymentIntent:t,customer:r,cart:n,serviceQuote:o},a),i)}});var Le=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,e),a(this,e,[t,r,"checkout",n])}return l(e,t),c(e,[{key:"initialize",value:function(){var t;return(t=this.store).initialize.apply(t,arguments)}},{key:"captureOrder",value:function(){var t;return(t=this.store).captureOrder.apply(t,arguments)}}])}(T),je={Product:D,Category:O,Customer:A,Cart:L,DeliveryServiceQuote:Ne,Store:Ae,StoreLocation:qe,StoreHour:Oe,Checkout:Le,Review:M},Ce={BrowserAdapter:e.BrowserAdapter,NodeAdapter:e.NodeAdapter};function Ye(t){return t.split(/[^a-zA-Z0-9]/).filter(Boolean).map((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})).join("")}var Fe=function(){return c((function t(){return i(this,t),this.resources=je,this.adapters=Ce,this.lookup.apply(this,arguments)}),[{key:"lookup",value:function(t,r){var n=e.pluralize(t),o=Ye(r),a=Array.prototype.slice.call(arguments).slice(2);if(!this[n])throw new Error("Attempted to resolve invalid type");if(!this[n][o])throw new Error("No ".concat(e.singularize(t)," named ").concat(r," (").concat(o,") to resolve"));return s(this[n][o],v(a))}}])}(),Re=function(){return s(Fe,Array.prototype.slice.call(arguments))};t.Resolver=Fe,t.default=Fe,t.lookup=Re,t.resources=je})); -//# sourceMappingURL=resolver.min.js.map diff --git a/dist/@fleetbase/storefront/resolver.min.js.map b/dist/@fleetbase/storefront/resolver.min.js.map deleted file mode 100644 index 7d804fa..0000000 --- a/dist/@fleetbase/storefront/resolver.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"resolver.min.js","sources":["../../../src/store.js","../../../src/resource.js","../../../src/resources/review.js","../../../src/utils/is-phone.js","../../../src/utils/format-currency.js","../../../src/utils/is-empty.js","../../../src/resources/product.js","../../../src/resources/category.js","../../../src/resources/customer.js","../../../src/resources/cart.js","../../../src/resources/payment-gateway.js","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/toDate.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/constructFrom.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/addDays.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/constants.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/_lib/defaultOptions.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/startOfWeek.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/startOfISOWeek.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/getISOWeekYear.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/startOfDay.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/isValid.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/isDate.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/en-US/_lib/formatDistance.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/_lib/buildFormatLongFn.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/en-US/_lib/formatLong.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/en-US/_lib/formatRelative.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/_lib/buildMatchFn.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/_lib/buildMatchPatternFn.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/en-US.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/en-US/_lib/localize.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/en-US/_lib/match.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/getDayOfYear.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/differenceInCalendarDays.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/startOfYear.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/getISOWeek.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/startOfISOWeekYear.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/getWeekYear.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/getWeek.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/startOfWeekYear.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/_lib/addLeadingZeros.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/_lib/format/lightFormatters.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/_lib/format/formatters.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/_lib/format/longFormatters.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/_lib/protectedTokens.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/format.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/Setter.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/transpose.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/Parser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/constants.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/utils.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/DateParser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/setDay.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/setISODay.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/getISODay.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/EraParser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/YearParser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/QuarterParser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/MonthParser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/setWeek.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/setISOWeek.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/DayParser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/ISODayParser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/AMPMParser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/MinuteParser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/SecondParser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse.mjs","../../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/getDefaultOptions.mjs","../../../src/resources/store-hour.js","../../../src/resources/store-location.js","../../../src/resources/store.js","../../../src/resources/delivery-service-quote.js","../../../src/resources/checkout.js","../../../src/resolver.js"],"sourcesContent":["import { Store, classify, extendStoreActions } from '@fleetbase/sdk';\nimport { lookup } from './resolver';\n\nexport default class StorefrontStore extends Store {\n constructor() {\n super(...arguments);\n }\n\n extendActions(actions = []) {\n return extendStoreActions(this, actions);\n }\n\n serialize(json) {\n return lookup('resource', classify(this.resource), json, this.adapter);\n }\n}\n","import { Resource } from '@fleetbase/sdk';\nimport StorefrontStore from './store';\n\nexport default class StorefrontResource extends Resource {\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new StorefrontStore(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions,\n });\n\n return this;\n }\n}\n","import Resource from '../resource';\nimport { StoreActions } from '@fleetbase/sdk';\n\nconst reviewActions = new StoreActions({\n count: function (storeId, options = {}) {\n const params = {};\n\n if (storeId) {\n params.store = storeId;\n }\n\n return this.adapter.get(`${this.namespace}/count`, params, options);\n },\n});\n\nexport default class Review extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'review', options);\n }\n\n getMedia() {\n // @todo\n }\n\n getPhotos() {\n // @todo\n }\n\n getVideos() {\n // @todo\n }\n}\n\nexport { reviewActions };\n","const isPhone = (phone = '') => {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/g.test(phone);\n};\n\nexport default isPhone;\n","export default function formatCurrency(amount = 0, currency = 'USD', currencyDisplay = 'symbol') {\n return new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency,\n currencyDisplay,\n }).format(amount);\n}\n","const isEmpty = (obj) => {\n const none = obj === null || obj === undefined;\n if (none) {\n return none;\n }\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n const objectType = typeof obj;\n\n if (objectType === 'object') {\n const { size } = obj;\n if (typeof size === 'number') {\n return !size;\n }\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\n }\n\n if (objectType === 'object') {\n const { length } = obj;\n if (typeof length === 'number') {\n return !length;\n }\n }\n\n return false;\n};\n\nexport default isEmpty;\n","import Resource from '../resource';\nimport Review from './review';\nimport { formatCurrency, isEmpty } from '../utils';\nimport { Collection } from '@fleetbase/sdk';\n\nexport default class Product extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'product', options);\n }\n\n variants() {\n return this.getAttribute('variants');\n }\n\n addons() {\n return this.getAttribute('addon_categories');\n }\n\n get isOnSale() {\n return this.getAttribute('is_on_sale');\n }\n\n get isNotOnSale() {\n return !this.getAttribute('is_on_sale');\n }\n\n get formattedAmount() {\n const { price, sale_price, currency } = this.getAttributes(['price', 'sale_price', 'currency']);\n\n if (this.isOnSale) {\n if (isEmpty(sale_price) || isEmpty(currency)) {\n return null;\n }\n\n return formatCurrency(sale_price / 100, currency);\n }\n\n if (isEmpty(price) || isEmpty(currency)) {\n return null;\n }\n\n return formatCurrency(price / 100, currency);\n }\n\n getReviews() {\n return this.adapter.get('reviews', { store: this.id }).then((reviews) => {\n return new Collection(reviews.map((attributes) => new Review(attributes, this.adapter)));\n });\n }\n}\n","import Resource from '../resource';\nimport Product from './product';\nimport { Collection } from '@fleetbase/sdk';\n\nexport default class Category extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'category', options);\n }\n\n getProducts() {\n return this.adapter.get('products', { category: this.id }).then((products) => {\n return new Collection(products.map((attributes) => new Product(attributes, this.adapter)));\n });\n }\n}\n","import { Collection, Order, Place, StoreActions } from '@fleetbase/sdk';\nimport Resource from '../resource';\nimport StorefrontStore from '../store';\nimport { isPhone } from '../utils';\n\nconst customerActions = new StoreActions({\n // const { error } = await storefront.customers.login('+1 111-1111');\n login: function (identity, password = null, attributes = {}) {\n // handle phone number authentication\n if (isPhone(identity)) {\n return this.adapter.post('customers/login-with-sms', { phone: identity });\n }\n\n if (!password) {\n throw new Error('Login requires password!');\n }\n\n return this.adapter.post('customers/login', { identity, password, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n verifyCode: function (identity, code, attributes = {}) {\n return this.adapter.post('customers/verify-code', { identity, code, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n requestCreationCode(identity, mode = 'email') {\n return this.adapter.post('customers/request-creation-code', {\n identity,\n mode,\n });\n },\n\n create(identity, code, attributes = {}) {\n return this.adapter.post('customers', { identity, code, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n retrieve: function (id) {\n return this.findRecord(id);\n },\n});\n\nexport default class Customer extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'customer', {\n actions: customerActions,\n ...options,\n });\n }\n\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new StorefrontStore(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions,\n });\n\n return this;\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n async syncDevice(token) {\n return this.adapter\n .setHeaders({ 'Customer-Token': this.token })\n .post('customers/register-device', token)\n .then(() => {\n return this;\n });\n }\n\n async performAuthorizedRequest(endpoint, params = {}, method = 'GET') {\n try {\n const headers = { 'Customer-Token': this.token };\n const response = await this.adapter.setHeaders(headers)[method.toLowerCase()](endpoint, params);\n return response;\n } catch (error) {\n console.error(`Error in ${method} request to ${endpoint}:`, error);\n throw error;\n }\n }\n\n async getSavedPlaces() {\n try {\n const places = await this.performAuthorizedRequest('customers/places');\n return new Collection(places.map((attributes) => new Place(attributes, this.adapter)));\n } catch (error) {\n throw new Error('Failed to retrieve saved places');\n }\n }\n\n async getOrderHistory(params = {}) {\n try {\n const orders = await this.performAuthorizedRequest('customers/orders', params);\n return new Collection(orders.map((attributes) => new Order(attributes, this.adapter)));\n } catch (error) {\n throw new Error('Failed to retrieve order history');\n }\n }\n\n getStripeEphemeralKey(params = {}) {\n return this.adapter\n .setHeaders({ 'Customer-Token': this.token })\n .post('customers/stripe-ephemeral-key', params);\n }\n\n getStripeSetupIntent(params = {}) {\n return this.adapter\n .setHeaders({ 'Customer-Token': this.token })\n .post('customers/stripe-setup-intent', params);\n }\n}\n\nexport { customerActions };\n","import Resource from '../resource';\nimport Product from './product';\nimport { StoreActions } from '@fleetbase/sdk';\n\nconst { isArray } = Array;\n\nconst cartActions = new StoreActions({\n create: undefined,\n findAll: undefined,\n query: undefined,\n queryRecord: undefined,\n\n add: function (id, productId, quantity = 1, data = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/${productId}`, { ...data, quantity }, options).then(this.afterFetch.bind(this));\n },\n\n update: function (id, cartItemId, quantity, data = {}, options = {}) {\n return this.adapter.put(`${this.namespace}/${id}/${cartItemId}`, { ...data, quantity }, options).then(this.afterFetch.bind(this));\n },\n\n remove: function (id, cartItemId, options = {}) {\n return this.adapter.delete(`${this.namespace}/${id}/${cartItemId}`, {}, options).then(this.afterFetch.bind(this));\n },\n\n empty: function (id, options = {}) {\n return this.adapter.put(`${this.namespace}/${id}/empty`, {}, options).then(this.afterFetch.bind(this));\n },\n\n retrieve: function (id = '') {\n return this.findRecord(id);\n },\n});\n\nexport default class Cart extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'cart', { actions: cartActions, ...options });\n }\n\n add(productId, quantity = 1, data = {}, options = {}) {\n if (productId instanceof Product) {\n productId = productId.id;\n }\n\n return this.store.add(this.id, productId, quantity, data, options);\n }\n\n update(cartItemId, quantity, data = {}, options = {}) {\n return this.store.update(this.id, cartItemId, quantity, data, options);\n }\n\n remove(cartItemId, options = {}) {\n return this.store.remove(this.id, cartItemId, options);\n }\n\n empty(options = {}) {\n return this.store.empty(this.id, options);\n }\n\n delete() {\n return this.destroy();\n }\n\n refresh() {\n return this.store.retrieve(this.id);\n }\n\n subtotal() {\n let subtotal = 0;\n\n this.contents().forEach((cartItem) => {\n subtotal += cartItem.subtotal;\n });\n\n return subtotal;\n }\n\n contents() {\n return this.getAttribute('items', []);\n }\n\n hasProduct(productId) {\n return this.contents().findIndex((cartItem) => cartItem.product_id === productId) !== -1;\n }\n\n get isEmpty() {\n const contents = this.contents();\n\n if (!isArray(contents)) {\n return true;\n }\n\n return contents.length === 0;\n }\n\n get isNotEmpty() {\n return !this.isEmpty;\n }\n}\n\nexport { cartActions };\n","import Resource from '../resource';\n\nexport default class PaymentGateway extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'payment-gateway', options);\n }\n\n get type() {\n return this.getAttribute('type');\n }\n\n get code() {\n return this.getAttribute('code');\n }\n\n get isCashGateway() {\n return this.type === 'cash';\n }\n\n get isStripeGateway() {\n return this.type === 'stripe';\n }\n\n setCheckoutToken(token) {\n this.token = token;\n }\n\n getCheckoutToken() {\n return this.token;\n }\n\n // remove default resource methods\n findRecord() {\n throw new Error('There is no findRecord() method for payment gateways!');\n }\n\n // remove default resource methods\n create() {\n throw new Error('There is no create() method for payment gateways!');\n }\n\n // remove default resource methods\n update() {\n throw new Error('There is no update() method for payment gateways!');\n }\n\n // remove default resource methods\n destroy() {\n throw new Error('There is no destroy() method for payment gateways!');\n }\n\n // remove default resource methods\n reload() {\n throw new Error('There is no reload() method for payment gateways!');\n }\n}\n","/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument) {\n const argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (\n argument instanceof Date ||\n (typeof argument === \"object\" && argStr === \"[object Date]\")\n ) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new argument.constructor(+argument);\n } else if (\n typeof argument === \"number\" ||\n argStr === \"[object Number]\" ||\n typeof argument === \"string\" ||\n argStr === \"[object String]\"\n ) {\n // TODO: Can we get rid of as?\n return new Date(argument);\n } else {\n // TODO: Can we get rid of as?\n return new Date(NaN);\n }\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from 'date-fns'\n *\n * // A function that clones a date preserving the original type\n * function cloneDate Thu Sep 11 2014 00:00:00\n */\nexport function addDays(date, amount) {\n const _date = toDate(date);\n if (isNaN(amount)) return constructFrom(date, NaN);\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return _date;\n }\n _date.setDate(_date.getDate() + amount);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addDays;\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","import { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n","import { startOfWeek } from \"./startOfWeek.mjs\";\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfISOWeek(date) {\n return startOfWeek(date, { weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeek;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport function getISOWeekYear(date) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n\n const fourthOfJanuaryOfNextYear = constructFrom(date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n\n const fourthOfJanuaryOfThisYear = constructFrom(date, 0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getISOWeekYear;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport function startOfDay(date) {\n const _date = toDate(date);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n","import { toDate } from \"../toDate.mjs\";\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const _date = toDate(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n","import { isDate } from \"./isDate.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport function isValid(date) {\n if (!isDate(date) && typeof date !== \"number\") {\n return false;\n }\n const _date = toDate(date);\n return !isNaN(Number(_date));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n","/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport function isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.mjs\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","/* eslint-disable no-unused-vars */\n\n/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","import { formatDistance } from \"./en-US/_lib/formatDistance.mjs\";\nimport { formatLong } from \"./en-US/_lib/formatLong.mjs\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.mjs\";\nimport { localize } from \"./en-US/_lib/localize.mjs\";\nimport { match } from \"./en-US/_lib/match.mjs\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.mjs\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.mjs\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.mjs\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { differenceInCalendarDays } from \"./differenceInCalendarDays.mjs\";\nimport { startOfYear } from \"./startOfYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * const result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nexport function getDayOfYear(date) {\n const _date = toDate(date);\n const diff = differenceInCalendarDays(_date, startOfYear(_date));\n const dayOfYear = diff + 1;\n return dayOfYear;\n}\n\n// Fallback for modularized imports:\nexport default getDayOfYear;\n","import { millisecondsInDay } from \"./constants.mjs\";\nimport { startOfDay } from \"./startOfDay.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.mjs\";\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport function differenceInCalendarDays(dateLeft, dateRight) {\n const startOfDayLeft = startOfDay(dateLeft);\n const startOfDayRight = startOfDay(dateRight);\n\n const timestampLeft =\n +startOfDayLeft - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n const timestampRight =\n +startOfDayRight - getTimezoneOffsetInMilliseconds(startOfDayRight);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((timestampLeft - timestampRight) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n","import { toDate } from \"./toDate.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport function startOfYear(date) {\n const cleanDate = toDate(date);\n const _date = constructFrom(date, 0);\n _date.setFullYear(cleanDate.getFullYear(), 0, 1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfYear;\n","import { millisecondsInWeek } from \"./constants.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { startOfISOWeekYear } from \"./startOfISOWeekYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport function getISOWeek(date) {\n const _date = toDate(date);\n const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getISOWeek;\n","import { getISOWeekYear } from \"./getISOWeekYear.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfISOWeekYear(date) {\n const year = getISOWeekYear(date);\n const fourthOfJanuary = constructFrom(date, 0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n return startOfISOWeek(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeekYear;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport function getWeekYear(date, options) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const firstWeekOfNextYear = constructFrom(date, 0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n\n const firstWeekOfThisYear = constructFrom(date, 0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getWeekYear;\n","import { millisecondsInWeek } from \"./constants.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { startOfWeekYear } from \"./startOfWeekYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\n\nexport function getWeek(date, options) {\n const _date = toDate(date);\n const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeek;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { getWeekYear } from \"./getWeekYear.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = getWeekYear(date, options);\n const firstWeek = constructFrom(date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = startOfWeek(firstWeek, options);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n","export function addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? \"-\" : \"\";\n const output = Math.abs(number).toString().padStart(targetLength, \"0\");\n return sign + output;\n}\n","import { addLeadingZeros } from \"../addLeadingZeros.mjs\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nexport const lightFormatters = {\n // Year\n y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === \"yy\" ? year % 100 : year, token.length);\n },\n\n // Month\n M(date, token) {\n const month = date.getMonth();\n return token === \"M\" ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n\n // Day of the month\n d(date, token) {\n return addLeadingZeros(date.getDate(), token.length);\n },\n\n // AM or PM\n a(date, token) {\n const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return dayPeriodEnumValue.toUpperCase();\n case \"aaa\":\n return dayPeriodEnumValue;\n case \"aaaaa\":\n return dayPeriodEnumValue[0];\n case \"aaaa\":\n default:\n return dayPeriodEnumValue === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n\n // Hour [1-12]\n h(date, token) {\n return addLeadingZeros(date.getHours() % 12 || 12, token.length);\n },\n\n // Hour [0-23]\n H(date, token) {\n return addLeadingZeros(date.getHours(), token.length);\n },\n\n // Minute\n m(date, token) {\n return addLeadingZeros(date.getMinutes(), token.length);\n },\n\n // Second\n s(date, token) {\n return addLeadingZeros(date.getSeconds(), token.length);\n },\n\n // Fraction of second\n S(date, token) {\n const numberOfDigits = token.length;\n const milliseconds = date.getMilliseconds();\n const fractionalSeconds = Math.trunc(\n milliseconds * Math.pow(10, numberOfDigits - 3),\n );\n return addLeadingZeros(fractionalSeconds, token.length);\n },\n};\n","import { getDayOfYear } from \"../../getDayOfYear.mjs\";\nimport { getISOWeek } from \"../../getISOWeek.mjs\";\nimport { getISOWeekYear } from \"../../getISOWeekYear.mjs\";\nimport { getWeek } from \"../../getWeek.mjs\";\nimport { getWeekYear } from \"../../getWeekYear.mjs\";\nimport { addLeadingZeros } from \"../addLeadingZeros.mjs\";\nimport { lightFormatters } from \"./lightFormatters.mjs\";\n\nconst dayPeriodEnum = {\n am: \"am\",\n pm: \"pm\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nexport const formatters = {\n // Era\n G: function (date, token, localize) {\n const era = date.getFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return localize.era(era, { width: \"abbreviated\" });\n // A, B\n case \"GGGGG\":\n return localize.era(era, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return localize.era(era, { width: \"wide\" });\n }\n },\n\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === \"yo\") {\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, { unit: \"year\" });\n }\n\n return lightFormatters.y(date, token);\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n const signedWeekYear = getWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === \"YY\") {\n const twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === \"Yo\") {\n return localize.ordinalNumber(weekYear, { unit: \"year\" });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n\n // ISO week-numbering year\n R: function (date, token) {\n const isoWeekYear = getISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n const year = date.getFullYear();\n return addLeadingZeros(year, token.length);\n },\n\n // Quarter\n Q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"QQ\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"qq\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // Month\n M: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n case \"M\":\n case \"MM\":\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // J, F, ..., D\n case \"MMMMM\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return localize.month(month, { width: \"wide\", context: \"formatting\" });\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return String(month + 1);\n // 01, 02, ..., 12\n case \"LL\":\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // J, F, ..., D\n case \"LLLLL\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return localize.month(month, { width: \"wide\", context: \"standalone\" });\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n const week = getWeek(date, options);\n\n if (token === \"wo\") {\n return localize.ordinalNumber(week, { unit: \"week\" });\n }\n\n return addLeadingZeros(week, token.length);\n },\n\n // ISO week of year\n I: function (date, token, localize) {\n const isoWeek = getISOWeek(date);\n\n if (token === \"Io\") {\n return localize.ordinalNumber(isoWeek, { unit: \"week\" });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n\n // Day of the month\n d: function (date, token, localize) {\n if (token === \"do\") {\n return localize.ordinalNumber(date.getDate(), { unit: \"date\" });\n }\n\n return lightFormatters.d(date, token);\n },\n\n // Day of year\n D: function (date, token, localize) {\n const dayOfYear = getDayOfYear(date);\n\n if (token === \"Do\") {\n return localize.ordinalNumber(dayOfYear, { unit: \"dayOfYear\" });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n\n // Day of week\n E: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"EEEEE\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"EEEE\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case \"e\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"ee\":\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case \"eo\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"eee\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"eeeee\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"eeee\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case \"c\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"cc\":\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case \"co\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"ccc\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // T\n case \"ccccc\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"standalone\",\n });\n // Tuesday\n case \"cccc\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // ISO day of week\n i: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case \"i\":\n return String(isoDayOfWeek);\n // 02\n case \"ii\":\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case \"io\":\n return localize.ordinalNumber(isoDayOfWeek, { unit: \"day\" });\n // Tue\n case \"iii\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"iiiii\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"iiiiii\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"iiii\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n const hours = date.getHours();\n const dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"aaa\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"aaaaa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n }\n\n switch (token) {\n case \"b\":\n case \"bb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"bbb\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"bbbbb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"BBBBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === \"ho\") {\n let hours = date.getHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return lightFormatters.h(date, token);\n },\n\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === \"Ho\") {\n return localize.ordinalNumber(date.getHours(), { unit: \"hour\" });\n }\n\n return lightFormatters.H(date, token);\n },\n\n // Hour [0-11]\n K: function (date, token, localize) {\n const hours = date.getHours() % 12;\n\n if (token === \"Ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Hour [1-24]\n k: function (date, token, localize) {\n let hours = date.getHours();\n if (hours === 0) hours = 24;\n\n if (token === \"ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Minute\n m: function (date, token, localize) {\n if (token === \"mo\") {\n return localize.ordinalNumber(date.getMinutes(), { unit: \"minute\" });\n }\n\n return lightFormatters.m(date, token);\n },\n\n // Second\n s: function (date, token, localize) {\n if (token === \"so\") {\n return localize.ordinalNumber(date.getSeconds(), { unit: \"second\" });\n }\n\n return lightFormatters.s(date, token);\n },\n\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return \"Z\";\n }\n\n switch (token) {\n // Hours and optional minutes\n case \"X\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case \"XXXX\":\n case \"XX\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case \"XXXXX\":\n case \"XXX\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case \"x\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case \"xxxx\":\n case \"xx\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case \"xxxxx\":\n case \"xxx\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"O\":\n case \"OO\":\n case \"OOO\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"OOOO\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"zzzz\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Seconds timestamp\n t: function (date, token, _localize) {\n const timestamp = Math.trunc(date.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n\n // Milliseconds timestamp\n T: function (date, token, _localize) {\n const timestamp = date.getTime();\n return addLeadingZeros(timestamp, token.length);\n },\n};\n\nfunction formatTimezoneShort(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = Math.trunc(absOffset / 60);\n const minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n if (offset % 60 === 0) {\n const sign = offset > 0 ? \"-\" : \"+\";\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, delimiter);\n}\n\nfunction formatTimezone(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2);\n const minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n","const dateLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"P\":\n return formatLong.date({ width: \"short\" });\n case \"PP\":\n return formatLong.date({ width: \"medium\" });\n case \"PPP\":\n return formatLong.date({ width: \"long\" });\n case \"PPPP\":\n default:\n return formatLong.date({ width: \"full\" });\n }\n};\n\nconst timeLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"p\":\n return formatLong.time({ width: \"short\" });\n case \"pp\":\n return formatLong.time({ width: \"medium\" });\n case \"ppp\":\n return formatLong.time({ width: \"long\" });\n case \"pppp\":\n default:\n return formatLong.time({ width: \"full\" });\n }\n};\n\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n const matchResult = pattern.match(/(P+)(p+)?/) || [];\n const datePattern = matchResult[1];\n const timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n let dateTimeFormat;\n\n switch (datePattern) {\n case \"P\":\n dateTimeFormat = formatLong.dateTime({ width: \"short\" });\n break;\n case \"PP\":\n dateTimeFormat = formatLong.dateTime({ width: \"medium\" });\n break;\n case \"PPP\":\n dateTimeFormat = formatLong.dateTime({ width: \"long\" });\n break;\n case \"PPPP\":\n default:\n dateTimeFormat = formatLong.dateTime({ width: \"full\" });\n break;\n }\n\n return dateTimeFormat\n .replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong))\n .replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\n\nexport const longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter,\n};\n","const dayOfYearTokenRE = /^D+$/;\nconst weekYearTokenRE = /^Y+$/;\n\nconst throwTokens = [\"D\", \"DD\", \"YY\", \"YYYY\"];\n\nexport function isProtectedDayOfYearToken(token) {\n return dayOfYearTokenRE.test(token);\n}\n\nexport function isProtectedWeekYearToken(token) {\n return weekYearTokenRE.test(token);\n}\n\nexport function warnOrThrowProtectedError(token, format, input) {\n const _message = message(token, format, input);\n console.warn(_message);\n if (throwTokens.includes(token)) throw new RangeError(_message);\n}\n\nfunction message(token, format, input) {\n const subject = token[0] === \"Y\" ? \"years\" : \"days of the month\";\n return `Use \\`${token.toLowerCase()}\\` instead of \\`${token}\\` (in \\`${format}\\`) for formatting ${subject} to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;\n}\n","import { defaultLocale } from \"./_lib/defaultLocale.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\nimport { formatters } from \"./_lib/format/formatters.mjs\";\nimport { longFormatters } from \"./_lib/format/longFormatters.mjs\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.mjs\";\nimport { isValid } from \"./isValid.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { formatters, longFormatters };\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\nexport { format as formatDate };\n\n/**\n * The {@link format} function options.\n */\n\n/**\n * @name format\n * @alias formatDate\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)\n * and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nexport function format(date, formatStr, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const originalDate = toDate(date);\n\n if (!isValid(originalDate)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let parts = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp)\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return { isToken: false, value: \"'\" };\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return { isToken: false, value: cleanEscapedString(substring) };\n }\n\n if (formatters[firstCharacter]) {\n return { isToken: true, value: substring };\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return { isToken: false, value: substring };\n });\n\n // invoke localize preprocessor (only for french locales at the moment)\n if (locale.localize.preprocessor) {\n parts = locale.localize.preprocessor(originalDate, parts);\n }\n\n const formatterOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n return parts\n .map((part) => {\n if (!part.isToken) return part.value;\n\n const token = part.value;\n\n if (\n (!options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)) ||\n (!options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token))\n ) {\n warnOrThrowProtectedError(token, formatStr, String(date));\n }\n\n const formatter = formatters[token[0]];\n return formatter(originalDate, token, locale.localize, formatterOptions);\n })\n .join(\"\");\n}\n\nfunction cleanEscapedString(input) {\n const matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default format;\n","import { transpose } from \"../../transpose.mjs\";\nimport { constructFrom } from \"../../constructFrom.mjs\";\n\nconst TIMEZONE_UNIT_PRIORITY = 10;\n\nexport class Setter {\n subPriority = 0;\n\n validate(_utcDate, _options) {\n return true;\n }\n}\n\nexport class ValueSetter extends Setter {\n constructor(\n value,\n\n validateValue,\n\n setValue,\n\n priority,\n subPriority,\n ) {\n super();\n this.value = value;\n this.validateValue = validateValue;\n this.setValue = setValue;\n this.priority = priority;\n if (subPriority) {\n this.subPriority = subPriority;\n }\n }\n\n validate(date, options) {\n return this.validateValue(date, this.value, options);\n }\n\n set(date, flags, options) {\n return this.setValue(date, flags, this.value, options);\n }\n}\n\nexport class DateToSystemTimezoneSetter extends Setter {\n priority = TIMEZONE_UNIT_PRIORITY;\n subPriority = -1;\n set(date, flags) {\n if (flags.timestampIsSet) return date;\n return constructFrom(date, transpose(date, Date));\n }\n}\n","import { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name transpose\n * @category Generic Helpers\n * @summary Transpose the date to the given constructor.\n *\n * @description\n * The function transposes the date to the given constructor. It helps you\n * to transpose the date in the system time zone to say `UTCDate` or any other\n * date extension.\n *\n * @typeParam DateInputType - The input `Date` type derived from the passed argument.\n * @typeParam DateOutputType - The output `Date` type derived from the passed constructor.\n *\n * @param fromDate - The date to use values from\n * @param constructor - The date constructor to use\n *\n * @returns Date transposed to the given constructor\n *\n * @example\n * // Create July 10, 2022 00:00 in locale time zone\n * const date = new Date(2022, 6, 10)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0800 (Singapore Standard Time)'\n *\n * @example\n * // Transpose the date to July 10, 2022 00:00 in UTC\n * transpose(date, UTCDate)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0000 (Coordinated Universal Time)'\n */\nexport function transpose(fromDate, constructor) {\n const date =\n constructor instanceof Date\n ? constructFrom(constructor, 0)\n : new constructor(0);\n date.setFullYear(\n fromDate.getFullYear(),\n fromDate.getMonth(),\n fromDate.getDate(),\n );\n date.setHours(\n fromDate.getHours(),\n fromDate.getMinutes(),\n fromDate.getSeconds(),\n fromDate.getMilliseconds(),\n );\n return date;\n}\n\n// Fallback for modularized imports:\nexport default transpose;\n","import { ValueSetter } from \"./Setter.mjs\";\n\nexport class Parser {\n run(dateString, token, match, options) {\n const result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n\n return {\n setter: new ValueSetter(\n result.value,\n this.validate,\n this.set,\n this.priority,\n this.subPriority,\n ),\n rest: result.rest,\n };\n }\n\n validate(_utcDate, _value, _options) {\n return true;\n }\n}\n","export const numericPatterns = {\n month: /^(1[0-2]|0?\\d)/, // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/, // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/, // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/, // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/, // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/, // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/, // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/, // 0 to 12\n minute: /^[0-5]?\\d/, // 0 to 59\n second: /^[0-5]?\\d/, // 0 to 59\n\n singleDigit: /^\\d/, // 0 to 9\n twoDigits: /^\\d{1,2}/, // 0 to 99\n threeDigits: /^\\d{1,3}/, // 0 to 999\n fourDigits: /^\\d{1,4}/, // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/, // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/, // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/, // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/, // 0 to 9999, -0 to -9999\n};\n\nexport const timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/,\n};\n","import {\n millisecondsInHour,\n millisecondsInMinute,\n millisecondsInSecond,\n} from \"../../constants.mjs\";\nimport { numericPatterns } from \"./constants.mjs\";\n\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest,\n };\n}\n\nexport function parseNumericPattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseTimezonePattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === \"Z\") {\n return {\n value: 0,\n rest: dateString.slice(1),\n };\n }\n\n const sign = matchResult[1] === \"+\" ? 1 : -1;\n const hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n const minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n const seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n\n return {\n value:\n sign *\n (hours * millisecondsInHour +\n minutes * millisecondsInMinute +\n seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\n\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^-?\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case \"morning\":\n return 4;\n case \"evening\":\n return 17;\n case \"pm\":\n case \"noon\":\n case \"afternoon\":\n return 12;\n case \"am\":\n case \"midnight\":\n case \"night\":\n default:\n return 0;\n }\n}\n\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n const isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n const absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n\n let result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n const rangeEnd = absCurrentYear + 50;\n const rangeEndCentury = Math.trunc(rangeEnd / 100) * 100;\n const isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.mjs\";\n\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst DAYS_IN_MONTH_LEAP_YEAR = [\n 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,\n];\n\n// Day of the month\nexport class DateParser extends Parser {\n priority = 90;\n subPriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"d\":\n return parseNumericPattern(numericPatterns.date, dateString);\n case \"do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n const month = date.getMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n\n set(date, _flags, value) {\n date.setDate(value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { addDays } from \"./addDays.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link setDay} function options.\n */\n\n/**\n * @name setDay\n * @category Weekday Helpers\n * @summary Set the day of the week to the given date.\n *\n * @description\n * Set the day of the week to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param day - The day of the week of the new date\n * @param options - An object with options.\n *\n * @returns The new date with the day of the week set\n *\n * @example\n * // Set week day to Sunday, with the default weekStartsOn of Sunday:\n * const result = setDay(new Date(2014, 8, 1), 0)\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Set week day to Sunday, with a weekStartsOn of Monday:\n * const result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setDay(date, day, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date);\n const currentDay = _date.getDay();\n\n const remainder = day % 7;\n const dayIndex = (remainder + 7) % 7;\n\n const delta = 7 - weekStartsOn;\n const diff =\n day < 0 || day > 6\n ? day - ((currentDay + delta) % 7)\n : ((dayIndex + delta) % 7) - ((currentDay + delta) % 7);\n return addDays(_date, diff);\n}\n\n// Fallback for modularized imports:\nexport default setDay;\n","import { addDays } from \"./addDays.mjs\";\nimport { getISODay } from \"./getISODay.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setISODay\n * @category Weekday Helpers\n * @summary Set the day of the ISO week to the given date.\n *\n * @description\n * Set the day of the ISO week to the given date.\n * ISO week starts with Monday.\n * 7 is the index of Sunday, 1 is the index of Monday etc.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param day - The day of the ISO week of the new date\n *\n * @returns The new date with the day of the ISO week set\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * const result = setISODay(new Date(2014, 8, 1), 7)\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setISODay(date, day) {\n const _date = toDate(date);\n const currentDay = getISODay(_date);\n const diff = day - currentDay;\n return addDays(_date, diff);\n}\n\n// Fallback for modularized imports:\nexport default setISODay;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISODay\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The day of ISO week\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * const result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\nexport function getISODay(date) {\n const _date = toDate(date);\n let day = _date.getDay();\n\n if (day === 0) {\n day = 7;\n }\n\n return day;\n}\n\n// Fallback for modularized imports:\nexport default getISODay;\n","import { EraParser } from \"./parsers/EraParser.mjs\";\nimport { YearParser } from \"./parsers/YearParser.mjs\";\nimport { LocalWeekYearParser } from \"./parsers/LocalWeekYearParser.mjs\";\nimport { ISOWeekYearParser } from \"./parsers/ISOWeekYearParser.mjs\";\nimport { ExtendedYearParser } from \"./parsers/ExtendedYearParser.mjs\";\nimport { QuarterParser } from \"./parsers/QuarterParser.mjs\";\nimport { StandAloneQuarterParser } from \"./parsers/StandAloneQuarterParser.mjs\";\nimport { MonthParser } from \"./parsers/MonthParser.mjs\";\nimport { StandAloneMonthParser } from \"./parsers/StandAloneMonthParser.mjs\";\nimport { LocalWeekParser } from \"./parsers/LocalWeekParser.mjs\";\nimport { ISOWeekParser } from \"./parsers/ISOWeekParser.mjs\";\nimport { DateParser } from \"./parsers/DateParser.mjs\";\nimport { DayOfYearParser } from \"./parsers/DayOfYearParser.mjs\";\nimport { DayParser } from \"./parsers/DayParser.mjs\";\nimport { LocalDayParser } from \"./parsers/LocalDayParser.mjs\";\nimport { StandAloneLocalDayParser } from \"./parsers/StandAloneLocalDayParser.mjs\";\nimport { ISODayParser } from \"./parsers/ISODayParser.mjs\";\nimport { AMPMParser } from \"./parsers/AMPMParser.mjs\";\nimport { AMPMMidnightParser } from \"./parsers/AMPMMidnightParser.mjs\";\nimport { DayPeriodParser } from \"./parsers/DayPeriodParser.mjs\";\nimport { Hour1to12Parser } from \"./parsers/Hour1to12Parser.mjs\";\nimport { Hour0to23Parser } from \"./parsers/Hour0to23Parser.mjs\";\nimport { Hour0To11Parser } from \"./parsers/Hour0To11Parser.mjs\";\nimport { Hour1To24Parser } from \"./parsers/Hour1To24Parser.mjs\";\nimport { MinuteParser } from \"./parsers/MinuteParser.mjs\";\nimport { SecondParser } from \"./parsers/SecondParser.mjs\";\nimport { FractionOfSecondParser } from \"./parsers/FractionOfSecondParser.mjs\";\nimport { ISOTimezoneWithZParser } from \"./parsers/ISOTimezoneWithZParser.mjs\";\nimport { ISOTimezoneParser } from \"./parsers/ISOTimezoneParser.mjs\";\nimport { TimestampSecondsParser } from \"./parsers/TimestampSecondsParser.mjs\";\nimport { TimestampMillisecondsParser } from \"./parsers/TimestampMillisecondsParser.mjs\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- It's ok, we want any here\nexport const parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser(),\n};\n","import { Parser } from \"../Parser.mjs\";\n\nexport class EraParser extends Parser {\n priority = 140;\n\n parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return (\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n\n // A, B\n case \"GGGGG\":\n return match.era(dateString, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return (\n match.era(dateString, { width: \"wide\" }) ||\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n }\n }\n\n set(date, flags, value) {\n flags.era = value;\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"R\", \"u\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.mjs\";\n\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport class YearParser extends Parser {\n priority = 130;\n incompatibleTokens = [\"Y\", \"R\", \"u\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"yy\",\n });\n\n switch (token) {\n case \"y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value) {\n const currentYear = date.getFullYear();\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(normalizedTwoDigitYear, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { getWeekYear } from \"../../../getWeekYear.mjs\";\nimport { startOfWeek } from \"../../../startOfWeek.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.mjs\";\n\n// Local week-numbering year\nexport class LocalWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"YY\",\n });\n\n switch (token) {\n case \"Y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"Yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value, options) {\n const currentYear = getWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(\n normalizedTwoDigitYear,\n 0,\n options.firstWeekContainsDate,\n );\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, options.firstWeekContainsDate);\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { startOfISOWeek } from \"../../../startOfISOWeek.mjs\";\nimport { constructFrom } from \"../../../constructFrom.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigitsSigned } from \"../utils.mjs\";\n\n// ISO week-numbering year\nexport class ISOWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"R\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n const firstWeekOfYear = constructFrom(date, 0);\n firstWeekOfYear.setFullYear(value, 0, 4);\n firstWeekOfYear.setHours(0, 0, 0, 0);\n return startOfISOWeek(firstWeekOfYear);\n }\n\n incompatibleTokens = [\n \"G\",\n \"y\",\n \"Y\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { parseNDigitsSigned } from \"../utils.mjs\";\n\nexport class ExtendedYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"u\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"G\", \"y\", \"Y\", \"R\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { parseNDigits } from \"../utils.mjs\";\n\nexport class QuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n case \"QQ\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { parseNDigits } from \"../utils.mjs\";\n\nexport class StandAloneQuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n case \"qq\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class MonthParser extends Parser {\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"L\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"M\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"MM\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // J, F, ..., D\n case \"MMMMM\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class StandAloneMonthParser extends Parser {\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"LL\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // J, F, ..., D\n case \"LLLLL\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setWeek } from \"../../../setWeek.mjs\";\nimport { startOfWeek } from \"../../../startOfWeek.mjs\";\nimport { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\n// Local week of year\nexport class LocalWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"w\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"wo\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value, options) {\n return startOfWeek(setWeek(date, value, options), options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { getWeek } from \"./getWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * The {@link setWeek} function options.\n */\n\n/**\n * @name setWeek\n * @category Week Helpers\n * @summary Set the local week to the given date.\n *\n * @description\n * Set the local week to the given date, saving the weekday number.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param week - The week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the local week set\n *\n * @example\n * // Set the 1st week to 2 January 2005 with default options:\n * const result = setWeek(new Date(2005, 0, 2), 1)\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // Set the 1st week to 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January:\n * const result = setWeek(new Date(2005, 0, 2), 1, {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Sun Jan 4 2004 00:00:00\n */\nexport function setWeek(date, week, options) {\n const _date = toDate(date);\n const diff = getWeek(_date, options) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setWeek;\n","import { setISOWeek } from \"../../../setISOWeek.mjs\";\nimport { startOfISOWeek } from \"../../../startOfISOWeek.mjs\";\nimport { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\n// ISO week of year\nexport class ISOWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"I\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"Io\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value) {\n return startOfISOWeek(setISOWeek(date, value));\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getISOWeek } from \"./getISOWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setISOWeek\n * @category ISO Week Helpers\n * @summary Set the ISO week to the given date.\n *\n * @description\n * Set the ISO week to the given date, saving the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param week - The ISO week of the new date\n *\n * @returns The new date with the ISO week set\n *\n * @example\n * // Set the 53rd ISO week to 7 August 2004:\n * const result = setISOWeek(new Date(2004, 7, 7), 53)\n * //=> Sat Jan 01 2005 00:00:00\n */\nexport function setISOWeek(date, week) {\n const _date = toDate(date);\n const diff = getISOWeek(_date) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setISOWeek;\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.mjs\";\n\nexport class DayOfYearParser extends Parser {\n priority = 90;\n\n subpriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"D\":\n case \"DD\":\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case \"Do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n\n set(date, _flags, value) {\n date.setMonth(0, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"E\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setDay } from \"../../../setDay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\n\n// Day of week\nexport class DayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"EEEEE\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"EEEE\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"D\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { setDay } from \"../../../setDay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\n// Local day of week\nexport class LocalDayParser extends Parser {\n priority = 90;\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"e\":\n case \"ee\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"eo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"eee\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"eeeee\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"eeee\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setDay } from \"../../../setDay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\n// Stand-alone local day of week\nexport class StandAloneLocalDayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"c\":\n case \"cc\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"co\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"ccc\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // T\n case \"ccccc\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return (\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // Tuesday\n case \"cccc\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"e\",\n \"t\",\n \"T\",\n ];\n}\n","import { setISODay } from \"../../../setISODay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\n// ISO day of week\nexport class ISODayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n\n switch (token) {\n // 2\n case \"i\":\n case \"ii\": // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case \"io\":\n return match.ordinalNumber(dateString, { unit: \"day\" });\n // Tue\n case \"iii\":\n return mapValue(\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // T\n case \"iiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tu\n case \"iiiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tuesday\n case \"iiii\":\n default:\n return mapValue(\n match.day(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n\n set(date, _flags, value) {\n date = setISODay(date, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"E\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { dayPeriodEnumToHours } from \"../utils.mjs\";\n\nexport class AMPMParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"a\":\n case \"aa\":\n case \"aaa\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"aaaaa\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"b\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { dayPeriodEnumToHours } from \"../utils.mjs\";\n\nexport class AMPMMidnightParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"b\":\n case \"bb\":\n case \"bbb\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"bbbbb\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { dayPeriodEnumToHours } from \"../utils.mjs\";\n\n// in the morning, in the afternoon, in the evening, at night\nexport class DayPeriodParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"BBBBB\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour1to12Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"h\":\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case \"ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setHours(0, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"H\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour0to23Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"H\":\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case \"Ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n\n set(date, _flags, value) {\n date.setHours(value, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour0To11Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"K\":\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case \"Ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"h\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour1To24Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"k\":\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case \"ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n\n set(date, _flags, value) {\n const hours = value <= 24 ? value % 24 : value;\n date.setHours(hours, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"H\", \"K\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class MinuteParser extends Parser {\n priority = 60;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"m\":\n return parseNumericPattern(numericPatterns.minute, dateString);\n case \"mo\":\n return match.ordinalNumber(dateString, { unit: \"minute\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setMinutes(value, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class SecondParser extends Parser {\n priority = 50;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"s\":\n return parseNumericPattern(numericPatterns.second, dateString);\n case \"so\":\n return match.ordinalNumber(dateString, { unit: \"second\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setSeconds(value, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\nexport class FractionOfSecondParser extends Parser {\n priority = 30;\n\n parse(dateString, token) {\n const valueCallback = (value) =>\n Math.trunc(value * Math.pow(10, -token.length + 3));\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n\n set(date, _flags, value) {\n date.setMilliseconds(value);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.mjs\";\nimport { timezonePatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseTimezonePattern } from \"../utils.mjs\";\n\n// Timezone (ISO-8601. +00:00 is `'Z'`)\nexport class ISOTimezoneWithZParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"X\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"XX\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"XXXX\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"XXXXX\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"XXX\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"x\"];\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.mjs\";\nimport { timezonePatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseTimezonePattern } from \"../utils.mjs\";\n\n// Timezone (ISO-8601)\nexport class ISOTimezoneParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"x\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"xx\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"xxxx\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"xxxxx\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"xxx\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"X\"];\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseAnyDigitsSigned } from \"../utils.mjs\";\n\nexport class TimestampSecondsParser extends Parser {\n priority = 40;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value * 1000), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseAnyDigitsSigned } from \"../utils.mjs\";\n\nexport class TimestampMillisecondsParser extends Parser {\n priority = 20;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { getDefaultOptions } from \"./getDefaultOptions.mjs\";\nimport { defaultLocale } from \"./_lib/defaultLocale.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { longFormatters } from \"./_lib/format/longFormatters.mjs\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.mjs\";\nimport { parsers } from \"./parse/_lib/parsers.mjs\";\nimport { DateToSystemTimezoneSetter } from \"./parse/_lib/Setter.mjs\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { longFormatters, parsers };\n\n/**\n * The {@link parse} function options.\n */\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\n\nconst notWhitespaceRegExp = /\\S/;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear)\n * and [setWeekYear](https://date-fns.org/docs/setWeekYear)).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateStr - The string to parse\n * @param formatStr - The string of tokens\n * @param referenceDate - defines values missing from the parsed dateString\n * @param options - An object with options.\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @returns The parsed date\n *\n * @throws `options.locale` must contain `match` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport function parse(dateStr, formatStr, referenceDate, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n if (formatStr === \"\") {\n if (dateStr === \"\") {\n return toDate(referenceDate);\n } else {\n return constructFrom(referenceDate, NaN);\n }\n }\n\n const subFnOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n // If timezone isn't specified, it will be set to the system timezone\n const setters = [new DateToSystemTimezoneSetter()];\n\n const tokens = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp);\n\n const usedTokens = [];\n\n for (let token of tokens) {\n if (\n !options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n if (\n !options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n\n const firstCharacter = token[0];\n const parser = parsers[firstCharacter];\n if (parser) {\n const { incompatibleTokens } = parser;\n if (Array.isArray(incompatibleTokens)) {\n const incompatibleToken = usedTokens.find(\n (usedToken) =>\n incompatibleTokens.includes(usedToken.token) ||\n usedToken.token === firstCharacter,\n );\n if (incompatibleToken) {\n throw new RangeError(\n `The format string mustn't contain \\`${incompatibleToken.fullToken}\\` and \\`${token}\\` at the same time`,\n );\n }\n } else if (parser.incompatibleTokens === \"*\" && usedTokens.length > 0) {\n throw new RangeError(\n `The format string mustn't contain \\`${token}\\` and any other token at the same time`,\n );\n }\n\n usedTokens.push({ token: firstCharacter, fullToken: token });\n\n const parseResult = parser.run(\n dateStr,\n token,\n locale.match,\n subFnOptions,\n );\n\n if (!parseResult) {\n return constructFrom(referenceDate, NaN);\n }\n\n setters.push(parseResult.setter);\n\n dateStr = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateStr.indexOf(token) === 0) {\n dateStr = dateStr.slice(token.length);\n } else {\n return constructFrom(referenceDate, NaN);\n }\n }\n }\n\n // Check if the remaining input contains something other than whitespace\n if (dateStr.length > 0 && notWhitespaceRegExp.test(dateStr)) {\n return constructFrom(referenceDate, NaN);\n }\n\n const uniquePrioritySetters = setters\n .map((setter) => setter.priority)\n .sort((a, b) => b - a)\n .filter((priority, index, array) => array.indexOf(priority) === index)\n .map((priority) =>\n setters\n .filter((setter) => setter.priority === priority)\n .sort((a, b) => b.subPriority - a.subPriority),\n )\n .map((setterArray) => setterArray[0]);\n\n let date = toDate(referenceDate);\n\n if (isNaN(date.getTime())) {\n return constructFrom(referenceDate, NaN);\n }\n\n const flags = {};\n for (const setter of uniquePrioritySetters) {\n if (!setter.validate(date, subFnOptions)) {\n return constructFrom(referenceDate, NaN);\n }\n\n const result = setter.set(date, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n date = result[0];\n Object.assign(flags, result[1]);\n // Result is date\n } else {\n date = result;\n }\n }\n\n return constructFrom(referenceDate, date);\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default parse;\n","import { getDefaultOptions as getInternalDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * @name getDefaultOptions\n * @category Common Helpers\n * @summary Get default options.\n * @pure false\n *\n * @description\n * Returns an object that contains defaults for\n * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate`\n * arguments for all functions.\n *\n * You can change these with [setDefaultOptions](https://date-fns.org/docs/setDefaultOptions).\n *\n * @returns The default options\n *\n * @example\n * const result = getDefaultOptions()\n * //=> {}\n *\n * @example\n * setDefaultOptions({ weekStarsOn: 1, firstWeekContainsDate: 4 })\n * const result = getDefaultOptions()\n * //=> { weekStarsOn: 1, firstWeekContainsDate: 4 }\n */\nexport function getDefaultOptions() {\n return Object.assign({}, getInternalDefaultOptions());\n}\n\n// Fallback for modularized imports:\nexport default getDefaultOptions;\n","import Resource from '../resource';\nimport { format, parse, isValid } from 'date-fns';\n\nexport default class StoreHour extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'store-hour', options);\n }\n\n get day() {\n return this.getAttribute('day');\n }\n\n get isClosed() {\n return this.getAttribute('start') === null && this.getAttribute('end') === null;\n }\n\n get is24Hours() {\n const start = this.startDateInstance;\n const end = this.endDateInstance;\n const diff = Math.abs(start - end);\n const hours = Math.floor(diff / 1000 / 60) / 60;\n\n return hours > 23;\n }\n\n get startDateInstance() {\n if (!this.hasAttribute('start')) {\n return null;\n }\n\n const start = this.getAttribute('start');\n const includesSeconds = start.split(':').length === 3;\n const format = includesSeconds ? 'HH:mm:ss' : 'HH:mm';\n\n return parse(start, format, new Date());\n }\n\n get endDateInstance() {\n if (!this.hasAttribute('end')) {\n return null;\n }\n\n const end = this.getAttribute('end');\n const includesSeconds = end.split(':').length === 3;\n const format = includesSeconds ? 'HH:mm:ss' : 'HH:mm';\n\n return parse(end, format, new Date());\n }\n\n get humanReadableHoursRange() {\n if (!isValid(this.startDateInstance) || !isValid(this.endDateInstance)) {\n return `${this.start} - ${this.end}`;\n }\n\n return `${format(this.startDateInstance, 'p')} - ${format(this.endDateInstance, 'p')}`;\n }\n\n get humanReadableHours() {\n if (this.isClosed) {\n return 'Closed';\n }\n\n if (this.is24Hours) {\n return '24 Hours';\n }\n\n return this.humanReadableHoursRange;\n }\n\n // remove default resource methods\n create() {\n throw new Error('There is no create() method store location!');\n }\n\n // remove default resource methods\n update() {\n throw new Error('There is no update() method store location!');\n }\n\n // remove default resource methods\n destroy() {\n throw new Error('There is no destroy() method store location!');\n }\n\n // remove default resource methods\n reload() {\n throw new Error('There is no reload() method store location!');\n }\n}\n","import Resource from '../resource';\nimport StoreHour from './store-hour';\nimport { Collection } from '@fleetbase/sdk';\nimport { format } from 'date-fns';\n\nexport default class StoreLocation extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'store-location', options);\n }\n\n get latitude() {\n return this.getAttribute('place.location.coordinates.1');\n }\n\n get longitude() {\n return this.getAttribute('place.location.coordinates.0');\n }\n\n get hours() {\n return new Collection(this.getAttribute('hours').map((attributes) => new StoreHour(attributes)));\n }\n\n get isAlwaysOpen() {\n return this.hours.every((hour) => hour?.is24Hours);\n }\n\n get today() {\n const today = format(new Date(), 'EEEE');\n\n return this.schedule[today];\n }\n\n get schedule() {\n const schedule = {};\n const week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];\n\n for (let i = 0; i < week.length; i++) {\n const day = week[i];\n\n schedule[day] = new Collection();\n }\n\n for (let i = 0; i < this.hours.length; i++) {\n const hour = this.hours.objectAt(i);\n\n schedule[hour.day].pushObject(hour);\n }\n\n return schedule;\n }\n\n // remove default resource methods\n create() {\n throw new Error('There is no create() method store location!');\n }\n\n // remove default resource methods\n update() {\n throw new Error('There is no update() method store location!');\n }\n\n // remove default resource methods\n destroy() {\n throw new Error('There is no destroy() method store location!');\n }\n}\n","import Resource from '../resource';\nimport StoreLocation from './store-location';\nimport PaymentGateway from './payment-gateway';\nimport Review from './review';\nimport { Collection, Place } from '@fleetbase/sdk';\n\nexport default class Store extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'store', options);\n }\n\n getReviews(params = {}) {\n return this.adapter.get('reviews', { store: this.id, ...params }).then((reviews) => {\n return new Collection(reviews.map((attributes) => new Review(attributes, this.adapter)));\n });\n }\n\n getLocations(params = {}) {\n return this.adapter.get('locations', { store: this.id, ...params }).then((storeLocations) => {\n return new Collection(\n storeLocations.map((attributes) => {\n if (attributes.place) {\n attributes.place = new Place(attributes.place);\n }\n\n return new StoreLocation(attributes, this.adapter);\n })\n );\n });\n }\n\n getLocation(id) {\n return this.adapter.get(`locations/${id}`, { store: this.id }).then((attributes) => {\n return new StoreLocation(attributes, this.adapter);\n });\n }\n\n getPaymentGateways(params = {}) {\n return this.adapter.get('gateways', params).then((gateways) => {\n return new Collection(\n gateways.map((attributes) => {\n return new PaymentGateway(attributes, this.adapter);\n })\n );\n });\n }\n\n getPaymentGateway(id) {\n return this.adapter.get(`gateways/${id}`).then((attributes) => {\n return new PaymentGateway(attributes, this.adapter);\n });\n }\n}\n","import { Adapter, Collection, ServiceQuote } from '@fleetbase/sdk';\nimport StorefrontStore from '../store';\nimport { formatCurrency, isEmpty } from '../utils';\n\nconst { isArray } = Array;\n\nexport default class DeliveryServiceQuote extends ServiceQuote {\n constructor(attributes = {}, adapter, options = {}) {\n if (attributes instanceof Adapter) {\n return super({}, attributes, 'service-quote', options);\n }\n\n super(attributes, adapter, 'service-quote', options);\n }\n\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new StorefrontStore(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions,\n });\n\n return this;\n }\n\n get formattedAmount() {\n const { amount, currency } = this.getAttributes(['amount', 'currency']);\n\n if (isEmpty(amount) || isEmpty(currency)) {\n return null;\n }\n\n return formatCurrency(amount / 100, currency);\n }\n\n async fetchServiceQuotesFromCart(origin, destination, cart, config = 'storefront', all = false) {\n if (origin?.id) {\n origin = origin.id;\n }\n if (destination?.id) {\n destination = destination.id;\n }\n if (cart?.id) {\n cart = cart.id;\n }\n\n try {\n const serviceQuotes = await this.adapter.get('service-quotes/from-cart', {\n origin,\n destination,\n cart,\n config,\n all,\n });\n\n if (isArray(serviceQuotes)) {\n return new Collection(serviceQuotes.map((serviceQuote) => new DeliveryServiceQuote(serviceQuote, this.adapter)));\n }\n\n return new DeliveryServiceQuote(serviceQuotes, this.adapter);\n } catch (error) {\n console.error('Error fetching service quotes:', error);\n throw error;\n }\n }\n\n static async getFromCart(adapter, origin, destination, cart, config = 'storefront', all = false) {\n const quote = new DeliveryServiceQuote(adapter);\n return quote.fetchServiceQuotesFromCart(origin, destination, cart, config, all);\n }\n}\n","import { Order, StoreActions, isResource } from '@fleetbase/sdk';\nimport Resource from '../resource';\n\nconst checkoutActions = new StoreActions({\n create: undefined,\n findAll: undefined,\n query: undefined,\n queryRecord: undefined,\n\n initialize: function (customer, cart, serviceQuote, gateway, orderOptions = {}, options = {}) {\n if (isResource(customer)) {\n customer = customer.id;\n }\n\n if (isResource(cart)) {\n cart = cart.id;\n }\n\n if (isResource(serviceQuote)) {\n serviceQuote = serviceQuote.id;\n }\n\n if (isResource(gateway)) {\n gateway = gateway.getAttribute('code');\n }\n\n return this.adapter.get(`${this.namespace}/before`, { ...orderOptions, customer, cart, serviceQuote, gateway }, options);\n },\n\n captureOrder: function (token, transactionDetails = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/capture`, { token, transactionDetails }, options).then((orderJson) => new Order(orderJson));\n },\n\n createStripeSetupIntent: function (customer, options = {}) {\n if (isResource(customer)) {\n customer = customer.id;\n }\n\n return this.adapter.post(`${this.namespace}/stripe-setup-intent`, { customer }, options);\n },\n\n updateStripePaymentIntent: function (paymentIntent, customer, cart, serviceQuote, orderOptions = {}, options = {}) {\n if (isResource(customer)) {\n customer = customer.id;\n }\n\n if (isResource(cart)) {\n cart = cart.id;\n }\n\n if (isResource(serviceQuote)) {\n serviceQuote = serviceQuote.id;\n }\n\n return this.adapter.put(`${this.namespace}/stripe-update-payment-intent`, { paymentIntent, customer, cart, serviceQuote, ...orderOptions }, options);\n },\n});\n\nexport default class Checkout extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'checkout', options);\n }\n\n initialize() {\n return this.store.initialize(...arguments);\n }\n\n captureOrder() {\n return this.store.captureOrder(...arguments);\n }\n}\n\nexport { checkoutActions };\n","import { Product, Category, Customer, Cart, DeliveryServiceQuote, Store, StoreLocation, StoreHour, Checkout, Review } from './resources';\nimport { BrowserAdapter, NodeAdapter, pluralize, singularize } from '@fleetbase/sdk';\n\nexport const resources = {\n Product,\n Category,\n Customer,\n Cart,\n DeliveryServiceQuote,\n Store,\n StoreLocation,\n StoreHour,\n Checkout,\n Review,\n};\n\nconst adapters = {\n BrowserAdapter,\n NodeAdapter,\n};\n\nfunction toStudlyCase(str) {\n return str\n .split(/[^a-zA-Z0-9]/) // Split by non-alphanumeric characters\n .filter(Boolean) // Remove empty elements\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1)) // Capitalize the first letter of each word\n .join(''); // Join the words together without spaces\n}\n\nclass Resolver {\n constructor() {\n this.resources = resources;\n this.adapters = adapters;\n\n return this.lookup(...arguments);\n }\n\n lookup(type, className) {\n const key = pluralize(type);\n const classKey = toStudlyCase(className);\n const params = [...arguments].slice(2);\n\n if (!this[key]) {\n throw new Error('Attempted to resolve invalid type');\n }\n\n if (!this[key][classKey]) {\n throw new Error(`No ${singularize(type)} named ${className} (${classKey}) to resolve`);\n }\n\n return new this[key][classKey](...params);\n }\n}\n\nconst lookup = function () {\n return new Resolver(...arguments);\n};\n\nexport { Resolver, lookup };\nexport default Resolver;"],"names":["StorefrontStore","_Store","_classCallCheck","_callSuper","this","arguments","_inherits","_createClass","key","value","actions","length","undefined","extendStoreActions","json","lookup","classify","resource","adapter","Store","StorefrontResource","_Resource","_this$options","store","onAfterFetch","syncAttributes","bind","options","Resource","StoreActions","count","storeId","params","get","concat","namespace","Review","attributes","isPhone","phone","test","formatCurrency","amount","currency","currencyDisplay","Intl","NumberFormat","style","format","isEmpty","obj","none","size","objectType","_typeof","Product","getAttribute","_this$getAttributes","getAttributes","price","sale_price","isOnSale","_this","id","then","reviews","Collection","map","Category","category","products","customerActions","login","identity","password","post","Error","_objectSpread","afterFetch","verifyCode","code","requestCreationCode","mode","create","retrieve","findRecord","Customer","_syncDevice","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","wrap","_context","prev","next","abrupt","setHeaders","stop","_x","apply","_performAuthorizedRequest","_callee2","endpoint","method","headers","response","_args2","_context2","toLowerCase","sent","t0","console","error","_x2","_getSavedPlaces","_callee3","places","_this2","_context3","performAuthorizedRequest","Place","_getOrderHistory","_callee4","orders","_this3","_args4","_context4","Order","isArray","Array","cartActions","findAll","query","queryRecord","add","productId","quantity","data","update","cartItemId","put","remove","empty","Cart","destroy","subtotal","contents","forEach","cartItem","findIndex","product_id","PaymentGateway","type","toDate","argument","argStr","Object","prototype","toString","call","Date","constructor","NaN","constructFrom","date","addDays","_date","isNaN","setDate","getDate","millisecondsInWeek","defaultOptions","getDefaultOptions","startOfWeek","weekStartsOn","locale","day","getDay","diff","setHours","startOfISOWeek","getISOWeekYear","year","getFullYear","fourthOfJanuaryOfNextYear","setFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","getTime","startOfDay","getTimezoneOffsetInMilliseconds","utcDate","UTC","getMonth","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","isValid","Number","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","args","width","String","defaultWidth","formats","formatLong","full","long","medium","short","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","valuesArray","context","formattingValues","defaultFormattingWidth","values","argumentCallback","buildMatchFn","string","matchPattern","matchPatterns","defaultMatchWidth","matchResult","match","matchedString","parsePatterns","defaultParseWidth","array","predicate","pattern","object","hasOwnProperty","findKey","valueCallback","rest","slice","enUS","formatDistance","result","tokenValue","replace","addSuffix","comparison","formatRelative","_baseDate","_options","localize","ordinalNumber","dirtyNumber","number","rem100","era","narrow","abbreviated","wide","quarter","month","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","parsePattern","parseInt","parseResult","any","index","firstWeekContainsDate","getDayOfYear","dateLeft","dateRight","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","Math","round","differenceInCalendarDays","cleanDate","startOfYear","getISOWeek","fourthOfJanuary","startOfISOWeekYear","getWeekYear","firstWeekOfNextYear","firstWeekOfThisYear","getWeek","firstWeek","startOfWeekYear","addLeadingZeros","targetLength","abs","padStart","lightFormatters","y","signedYear","M","d","a","dayPeriodEnumValue","toUpperCase","h","H","m","s","S","numberOfDigits","milliseconds","trunc","pow","dayPeriodEnum","formatters","G","unit","Y","signedWeekYear","weekYear","R","u","Q","ceil","q","L","w","week","I","isoWeek","D","dayOfYear","E","dayOfWeek","e","localDayOfWeek","c","i","isoDayOfWeek","b","hours","B","K","k","X","_localize","timezoneOffset","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","x","O","formatTimezoneShort","z","t","T","offset","delimiter","sign","absOffset","minutes","dateLongFormatter","timeLongFormatter","longFormatters","p","P","dateTimeLongFormatter","datePattern","timePattern","dateTimeFormat","dayOfYearTokenRE","weekYearTokenRE","throwTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","warnOrThrowProtectedError","input","_message","subject","message","warn","includes","RangeError","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","formatStr","defaultLocale","originalDate","parts","substring","firstCharacter","longFormatter","join","isToken","cleanEscapedString","preprocessor","formatterOptions","part","formatter","matched","Setter","subPriority","validate","_utcDate","ValueSetter","validateValue","setValue","priority","super","set","flags","DateToSystemTimezoneSetter","timestampIsSet","fromDate","transpose","Parser","run","dateString","parse","setter","_value","numericPatterns","timezonePatterns","mapValue","parseFnResult","mapFn","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","n","RegExp","parseNDigitsSigned","dayPeriodEnumToHours","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","isLeapYearIndex","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","setDay","currentDay","delta","setISODay","getISODay","parsers","incompatibleTokens","isTwoDigitYear","normalizedTwoDigitYear","_flags","firstWeekOfYear","setMonth","setWeek","setISOWeek","isLeapYear","subpriority","wholeWeekDays","floor","isPM","setMinutes","setSeconds","setMilliseconds","notWhitespaceRegExp","dateStr","referenceDate","assign","getInternalDefaultOptions","subFnOptions","setters","tokens","usedTokens","parser","incompatibleToken","find","usedToken","fullToken","push","indexOf","uniquePrioritySetters","sort","filter","setterArray","StoreHour","start","startDateInstance","end","endDateInstance","hasAttribute","includesSeconds","split","isClosed","is24Hours","humanReadableHoursRange","StoreLocation","every","hour","schedule","objectAt","pushObject","storeLocations","place","_this4","gateways","_this5","DeliveryServiceQuote","_ServiceQuote","Adapter","_possibleConstructorReturn","_fetchServiceQuotesFromCart","origin","destination","cart","_origin","_destination","_cart","config","all","serviceQuotes","_args","serviceQuote","_x3","_getFromCart","quote","fetchServiceQuotesFromCart","_x4","_x5","_x6","_x7","ServiceQuote","initialize","customer","gateway","orderOptions","isResource","captureOrder","transactionDetails","orderJson","createStripeSetupIntent","updateStripePaymentIntent","paymentIntent","Checkout","_this$store","_this$store2","resources","adapters","BrowserAdapter","NodeAdapter","toStudlyCase","str","Boolean","word","charAt","Resolver","className","pluralize","classKey","singularize","_construct","_toConsumableArray"],"mappings":"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","x_google_ignoreList":[11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90]} \ No newline at end of file diff --git a/dist/@storefront.min.js b/dist/@storefront.min.js index abb521c..3657d3e 100644 --- a/dist/@storefront.min.js +++ b/dist/@storefront.min.js @@ -1,2 +1,2 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["@fleetbase/storefront"]={})}(this,(function(t){"use strict";function e(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){u=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(u)throw o}}}}function c(t,e,n){return(e=m(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t){return l=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},l(t)}function h(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&y(t,e)}function f(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(f=function(){return!!t})()}function d(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function v(t){for(var e=1;e=0;--o){var a=this.tryEntries[o],u=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),P(n),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;P(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:L(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),g}},e}function y(t,e){return y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},y(t,e)}function g(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,o,a,u=[],s=!0,c=!1;try{if(o=(n=n.call(t)).next,0===e);else for(;!(s=(r=o.call(n)).done)&&(u.push(r.value),u.length!==e);s=!0);}catch(t){c=!0,i=t}finally{try{if(!s&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw i}}return u}}(t,e)||b(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:e+""}function w(t){return w="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},w(t)}function b(t,n){if(t){if("string"==typeof t)return e(t,n);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?e(t,n):void 0}}function k(t,e){this.v=t,this.k=e}function x(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){u=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(u)throw o}}}}function M(t,e,n){return(e=J(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function q(t){return q=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},q(t)}function H(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Y(t,e)}function I(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(I=function(){return!!t})()}function z(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}function B(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function $(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function U(t){for(var e=1;e=0;--o){var a=this.tryEntries[o],u=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),P(n),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;P(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:L(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),y}},e}function Y(t,e){return Y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},Y(t,e)}function G(t,e){return A(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,o,a,u=[],s=!0,c=!1;try{if(o=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=o.call(n)).done)&&(u.push(r.value),u.length!==e);s=!0);}catch(t){c=!0,i=t}finally{try{if(!s&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw i}}return u}}(t,e)||K(t,e)||B()}function Q(t){return function(t){if(Array.isArray(t))return x(t)}(t)||z(t)||K(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function J(t){var e=function(t){if("object"!=w(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=w(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==w(e)?e:e+""}function X(t){return X="function"==typeof Symbol&&"symbol"==w(Symbol.iterator)?function(t){return w(t)}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":w(t)},X(t)}function K(t,e){if(t){if("string"==typeof t)return x(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?x(t,e):void 0}}function V(t){return function(){return new Z(t.apply(this,arguments))}}function Z(t){var e,n;function r(e,n){try{var o=t[e](n),a=o.value,u=a instanceof k;Promise.resolve(u?a.v:a).then((function(n){if(u){var s="return"===e?"return":"next";if(!a.k||n.done)return r(s,n);n=t[s](n).value}i(o.done?"return":"normal",n)}),(function(t){r("throw",t)}))}catch(t){i("throw",t)}}function i(t,i){switch(t){case"return":e.resolve({value:i,done:!0});break;case"throw":e.reject(i);break;default:e.resolve({value:i,done:!1})}(e=e.next)?r(e.key,e.arg):n=null}this._invoke=function(t,i){return new Promise((function(o,a){var u={key:t,arg:i,resolve:o,reject:a,next:null};n?n=n.next=u:(e=n=u,r(t,i))}))},"function"!=typeof t.return&&(this.return=void 0)}function tt(t){var e="function"==typeof Map?new Map:void 0;return tt=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(e){return"function"==typeof t}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return C(t,arguments,q(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),Y(n,t)},tt(t)}Z.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},Z.prototype.next=function(t){return this._invoke("next",t)},Z.prototype.throw=function(t){return this._invoke("throw",t)},Z.prototype.return=function(t){return this._invoke("return",t)};var et=function(){function t(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];L(this,t),M(this,"uncountableWords",["equipment","information","rice","money","species","series","fish","sheep","moose","deer","news"]),M(this,"pluralRules",[[new RegExp("(m)an$","gi"),"$1en"],[new RegExp("(pe)rson$","gi"),"$1ople"],[new RegExp("(child)$","gi"),"$1ren"],[new RegExp("^(ox)$","gi"),"$1en"],[new RegExp("(ax|test)is$","gi"),"$1es"],[new RegExp("(octop|vir)us$","gi"),"$1i"],[new RegExp("(alias|status)$","gi"),"$1es"],[new RegExp("(bu)s$","gi"),"$1ses"],[new RegExp("(buffal|tomat|potat)o$","gi"),"$1oes"],[new RegExp("([ti])um$","gi"),"$1a"],[new RegExp("sis$","gi"),"ses"],[new RegExp("(?:([^f])fe|([lr])f)$","gi"),"$1$2ves"],[new RegExp("(hive)$","gi"),"$1s"],[new RegExp("([^aeiouy]|qu)y$","gi"),"$1ies"],[new RegExp("(x|ch|ss|sh)$","gi"),"$1es"],[new RegExp("(matr|vert|ind)ix|ex$","gi"),"$1ices"],[new RegExp("([m|l])ouse$","gi"),"$1ice"],[new RegExp("(quiz)$","gi"),"$1zes"],[new RegExp("s$","gi"),"s"],[new RegExp("$","gi"),"s"]]),M(this,"singularRules",[[new RegExp("(m)en$","gi"),"$1an"],[new RegExp("(pe)ople$","gi"),"$1rson"],[new RegExp("(child)ren$","gi"),"$1"],[new RegExp("([ti])a$","gi"),"$1um"],[new RegExp("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$","gi"),"$1$2sis"],[new RegExp("(hive)s$","gi"),"$1"],[new RegExp("(tive)s$","gi"),"$1"],[new RegExp("(curve)s$","gi"),"$1"],[new RegExp("([lr])ves$","gi"),"$1f"],[new RegExp("([^fo])ves$","gi"),"$1fe"],[new RegExp("([^aeiouy]|qu)ies$","gi"),"$1y"],[new RegExp("(s)eries$","gi"),"$1eries"],[new RegExp("(m)ovies$","gi"),"$1ovie"],[new RegExp("(x|ch|ss|sh)es$","gi"),"$1"],[new RegExp("([m|l])ice$","gi"),"$1ouse"],[new RegExp("(bus)es$","gi"),"$1"],[new RegExp("(o)es$","gi"),"$1"],[new RegExp("(shoe)s$","gi"),"$1"],[new RegExp("(cris|ax|test)es$","gi"),"$1is"],[new RegExp("(octop|vir)i$","gi"),"$1us"],[new RegExp("(alias|status)es$","gi"),"$1"],[new RegExp("^(ox)en","gi"),"$1"],[new RegExp("(vert|ind)ices$","gi"),"$1ex"],[new RegExp("(matr)ices$","gi"),"$1ix"],[new RegExp("(quiz)zes$","gi"),"$1"],[new RegExp("s$","gi"),""]]),M(this,"nonTitlecasedWords",["and","or","nor","a","an","the","so","but","to","of","at","by","from","into","on","onto","off","out","in","over","with","for"]),M(this,"idSuffix",new RegExp("(_ids|_id)$","g")),M(this,"underbar",new RegExp("_","g")),M(this,"spaceOrUnderbar",new RegExp("[ _]","g")),M(this,"uppercase",new RegExp("([A-Z])","g")),M(this,"underbarPrefix",new RegExp("^_")),this.str=e,this.chain=n}return N(t,[{key:"get",value:function(){return this.str}},{key:"applyRules",value:function(t,e,n,r){if(r)t=r;else if(!(n.indexOf(t.toLowerCase())>-1))for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:null;return t=t||this.str,this.applyRules(t,this.pluralRules,this.uncountableWords,e)}},{key:"singularize",value:function(t,e){return t=t||this.str,this.applyRules(t,this.singularRules,this.uncountableWords,e)}},{key:"camelize",value:function(t,e){for(var n=(t=t||this.str).split("/"),r=0;r1&&void 0!==arguments[1]&&arguments[1];return t=t||this.str,t=this.underscore(this.demodulize(t))+(e?"":"_")+"id",this.str=t,!0===this.chain?this:t}},{key:"ordinalize",value:function(t){for(var e=(t=t||this.str).split(" "),n=0;n2?i-2:0),a=2;a2?n-2:0),i=2;i1?e-1:0),r=1;r2?n-2:0),i=2;i3&&void 0!==arguments[3]?arguments[3]:[];if(lt(t))if(r.length<=ht)t.splice.apply(t,[e,n].concat(Q(r)));else{t.splice(e,n);for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:0,r=t.length,i=n;i2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3?arguments[3]:void 0,i=t.length;return n<0&&(n+=i),gt(t,r&&e!=e?function(t){return t!=t}:function(t){return t===e},n)}function wt(t,e,n){return ft(t,e,0,[n]),n}function bt(){return C(kt,Array.prototype.slice.call(arguments))}var kt=function(){function t(){return L(this,t),E(lt(arguments[0])?D(this,t,Q(arguments[0])):D(this,t,arguments))}return H(t,tt(Array)),N(t,[{key:"notEmpty",get:function(){return this.length>0}},{key:"empty",get:function(){return 0===this.length}},{key:"first",get:function(){return pt(this,0)}},{key:"last",get:function(){return pt(this,this.length-1)}},{key:"replace",value:function(t,e){return ft(this,t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:[]),this}},{key:"objectsAt",value:function(t){var e=this;return t.map((function(t){return pt(e,t)}))}},{key:"objectAt",value:function(t){return pt(this,t)}},{key:"indexOf",value:function(t,e){return mt(this,t,e,!1)}},{key:"lastIndexOf",value:function(t,e){var n=this.length;(void 0===e||e>=n)&&(e=n-1),e<0&&(e+=n);for(var r=e;r>=0;r--)if(pt(this,r)===t)return r;return-1}},{key:"includes",value:function(t,e){return-1!==mt(this,t,e,!0)}},{key:"findBy",value:function(){return-1===(t=gt(this,yt.apply(void 0,arguments).bind(undefined),0))?void 0:pt(this,t);var t}},{key:"findIndexBy",value:function(){return gt(this,yt.apply(void 0,arguments))}},{key:"isEvery",value:function(){return t=yt.apply(void 0,arguments),e=t.bind(undefined),-1===gt(this,(function(t,n,r){return!e(t,n,r)}),0);var t,e}},{key:"isAny",value:function(){return-1!==gt(this,yt.apply(void 0,arguments).bind(undefined),0)}},{key:"invoke",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:dt,n=[],r=new Set,i="function"==typeof e?e:function(t){return get(t,e)};return t.forEach((function(t){var e=i(t);r.has(e)||(r.add(e),n.push(t))})),n}(this,t)}},{key:"without",value:function(t){if(!this.includes(t))return this;var e=t==t?function(e){return e!==t}:function(t){return t==t};return this.filter(e)}},{key:"clear",value:function(){var t=this.length;return 0===t||this.replace(0,t,[]),this}},{key:"insertAt",value:function(t,e){return wt(this,t,e),this}},{key:"replaceAt",value:function(t,e){return this.replace(t,1,[e])}},{key:"removeAt",value:function(t,e){return function(t,e){return ft(t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,[]),t}(this,t,e)}},{key:"pushObject",value:function(t){return this.insertAt(this.length,t)}},{key:"pushObjects",value:function(t){return this.replace(this.length,0,t),this}},{key:"popObject",value:function(){var t=this.length;if(0===t)return null;var e=pt(this,t-1);return this.removeAt(t-1,1),e}},{key:"shiftObject",value:function(){if(0===this.length)return null;var t=pt(this,0);return this.removeAt(0),t}},{key:"unshiftObject",value:function(t){return wt(this,0,t)}},{key:"unshiftObjects",value:function(t){return this.replace(0,0,t),this}},{key:"reverseObjects",value:function(){var t=this.length;if(0===t)return this;var e=this.toArray().reverse();return this.replace(0,t,e),this}},{key:"setObjects",value:function(t){if(0===t.length)return this.clear();var e=this.length;return this.replace(0,e,t),this}},{key:"removeObject",value:function(t){for(var e=this.length||0;--e>=0;)pt(this,e)===t&&this.removeAt(e);return this}},{key:"removeObjects",value:function(t){for(var e=t.length-1;e>=0;e--)this.removeObject(t[e]);return this}},{key:"addObject",value:function(t){return this.includes(t)||this.pushObject(t),this}},{key:"addObjects",value:function(t){var e=this;return t.forEach((function(t){return e.addObject(t)})),this}}])}();function xt(t){var e=null==t;if(e)return e;if("number"==typeof t.size)return!t.size;var n=X(t);if("object"===n){var r=t.size;if("number"==typeof r)return!r}if("number"==typeof t.length&&"function"!==n)return!t.length;if("object"===n){var i=t.length;if("number"==typeof i)return!i}return!1}function At(){var t,e,n;return!("undefined"==typeof process||"object"!==X(null===(t=process)||void 0===t?void 0:t.env)&&-1===(null===(e=process.release)||void 0===e||null===(e=e.name)||void 0===e?void 0:e.search(/node|io.js/))||"undefined"!=typeof window&&"ReactNative"!==(null===(n=window)||void 0===n||null===(n=n.navigator)||void 0===n?void 0:n.product))}function Et(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return At()?st("adapter","NodeAdapter",t):st("adapter","BrowserAdapter",t)}N((function t(e){L(this,t),this.place=e,this.geometry=null==e?void 0:e.geometry,this.components=this.parseComponents(),this.attributes=this.parseProperties()}),[{key:"parse",value:function(){this.parseComponents(),this.parseProperties()}},{key:"parseComponents",value:function(){var t;return((null===(t=this.place)||void 0===t?void 0:t.address_components)||[]).reduce((function(t,e){return e.types.forEach((function(n){t[n]=e})),t}),{})}},{key:"parseProperties",value:function(){var t,e={streetNumber:this.get("street_number"),streetName:this.get("route"),coordinates:null!==(t=this.geometry)&&void 0!==t&&t.location?Object.values(this.geometry.location):[0,0],city:this.or(["locality","sublocality","sublocality_level_1","neighborhood","administrative_area_level_3","administrative_area_level_2"]),county:this.get("administrative_area_level_2"),stateShort:this.get("administrative_area_level_1",!0),stateLong:this.get("administrative_area_level_1"),countryShort:this.get("country",!0),country:this.get("country",!0),countryLong:this.get("country"),postalCode:this.get("postal_code")};return e.address=[e.streetNumber,e.streetName].filter(Boolean).join(" "),e}},{key:"all",value:function(){return this.attributes}},{key:"or",value:function(){var t,e=F(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]);try{for(e.s();!(t=e.n()).done;){var n=t.value;if(lt(n)){var r=n[0],i=n[1];if(this.has(r))return this.get(r,i)}else if(this.has(n))return this.get(n)}}catch(t){e.e(t)}finally{e.f()}return null}},{key:"has",value:function(t){return t in this.components}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t in this.components?e?this.components[t].short_name:this.components[t].long_name:null}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.attributes=U(U({},this.attributes),t),this}},{key:"setAttribute",value:function(t,e){return this.attributes[t]=e,this}},{key:"getAttribute",value:function(t){return this.attributes[t]||null}}]);var Ot=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;L(this,t),this.type="Point",this.coordinates=[n,e]}return N(t,[{key:"latitude",get:function(){return this.coordinates[1]}},{key:"longitude",get:function(){return this.coordinates[0]}},{key:"lat",value:function(){return this.latitude}},{key:"lng",value:function(){return this.longitude}},{key:"serialize",value:function(){return{type:"Point",coorindates:[this.lat(),this.lng()]}}},{key:"toJson",value:function(){return this.serialize()}},{key:"toString",value:function(){return"(".concat(this.latitude,", ").concat(this.longitude,")")}}],[{key:"fromGeoJson",value:function(e){var n=G(e.coordinates,2),r=n[0];return new t(n[1],r)}}])}();function St(t,e){var n=t();return Array.isArray(n)||"object"===X(n)?Tt(n,e):null}function Tt(t,e){var n,r=t,i=X(t),o="object"===i,a="function"===i,u=Array.isArray(t),s="string"===X(e)&&e.includes(".")?e.split("."):[e];if(u||o){for(var c=0;c1&&void 0!==arguments[1]?arguments[1]:[];if(t.actions=lt(e)?e:[e],!lt(e))return e instanceof Pt&&e.extend(t),t;var n,r=F(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;t.extendActions(i)}}catch(t){r.e(t)}finally{r.f()}}var Pt=N((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;L(this,t),this.actions=e,this.bind=n}),[{key:"extend",value:function(){var t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||this.bind;if(!t)return this;if(null!=this&&this.actions&&"object"===X(this.actions))for(var e in this.actions){var n=this.actions[e];Rt(t,e,"function"==typeof n?n.bind(t):n)}return this}}]);function Dt(t){return t instanceof Lt}var Lt=N((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};L(this,t),this.attributes=e,this.dirtyAttributes={},this.changes={},this.isLoading=!1,this.isSaving=!1,this.isDestroying=!1,this.isReloading=!1,this.resource=r,this.options=i,this.version=i.version||"v1",this.setAdapter(n)}),[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=function(){return ut.apply(void 0,["store","Store"].concat(Array.prototype.slice.call(arguments)))}(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"id",get:function(){return this.getAttribute("id")}},{key:"create",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.mergeAttributes(e);return this.setFlags(["isLoading","isSaving"]),this.store.create(n).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"update",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setFlags(["isLoading","isSaving"]),this.store.update(this.attributes.id,e).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"destroy",value:function(){var t=this;return this.setFlags(["isLoading","isDestroying"]),this.store.destroy(this.attributes.id).then((function(e){return t.setFlags(["isLoading","isDestroying"],!1),e}))}},{key:"reload",value:function(){var t=this;return this.setFlags(["isLoading","isReloading"]),this.store.findRecord(this.attributes.id).then((function(e){return t.reset(),e}))}},{key:"setFlags",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=["isLoading","isSaving","isReloading","isDestroying"],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=this.getAttributes();return xt(this.id)?this.create(e):!0===t.onlyDirty?this.savedirty():this.update(e)}},{key:"saveDirty",value:function(){for(var t=Object.keys(this.dirtyAttributes),e={},n=0;n0}},{key:"mutate",value:function(t,e){this.attributes[t]=e}},{key:"setAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null===n&&"object"===X(t))return this.setAttributes(t);var r=null!==(e=null==this?void 0:this.attributes[t])&&void 0!==e?e:null;return Rt(this.attributes,t,n),Rt(this.dirtyAttributes,t,r),lt(null==this?void 0:this.changes[t])||(this.changes[t]=[]),this.changes[t].push({property:t,previousValue:r,value:n,changedAt:new Date}),this}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var e in t)this.setAttribute(e,t[e]);return this}},{key:"getAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=Tt(null!==(e=null==this?void 0:this.attributes)&&void 0!==e?e:{},t);return void 0===r?n:r}},{key:"hasAttribute",value:function(t){if(lt(t)){var e,n=t,r=Object.keys(null!==(e=this.attributes)&&void 0!==e?e:{});return n.every((function(t){return r.includes(t)}))}return!(null==this||!this.attributes)&&t in this.attributes}},{key:"hasAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.hasAttribute(t)}},{key:"isAttributeFilled",value:function(t){var e=this;return lt(t)?this.hasAttribute(t)&&t.every((function(t){return!xt(e.getAttribute(t))})):this.hasAttribute(t)&&!xt(this.getAttribute(t))}},{key:"getAttributes",value:function(t){var e={};if(null==t)return this.getAttributes(Object.keys(this.attributes));if("string"==typeof t)return this.getAttribute(Array.prototype.slice.call(arguments));if(!lt(t))throw new Error("No attribute properties provided!");var n,r=F(t);try{for(r.s();!(n=r.n()).done;){var i,o,a=n.value;if("string"==typeof a){var u=this.getAttribute(a);"object"!==X(null===(i=u)||void 0===i?void 0:i.attributes)||lt(null===(o=u)||void 0===o?void 0:o.attributes)||(u=u.attributes),e[a]=u}}}catch(t){r.e(t)}finally{r.f()}return e}},{key:"serialize",value:function(){return this.getAttributes()}},{key:"mergeAttributes",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=null!==(t=null==this?void 0:this.attributes)&&void 0!==t?t:{};return this.attributes=U(U({},n),e),this.attributes}},{key:"syncAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attributes=t}}]);at("resource","Resource",Lt);var Ct=function(){return N((function t(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};L(this,t),this.resource=e,this.adapter=n||Et(),this.namespace=nt(e),this.storage=bt(),this.options=r,this.extendActions(r.actions)}),[{key:"extendActions",value:function(){return jt(this,arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])}},{key:"deposit",value:function(t){return t}},{key:"serialize",value:function(t){return st("resource",it(this.resource),t,this.adapter)}},{key:"afterFetch",value:function(t){return function(t,e){if("function"==typeof t.options.onAfterFetch&&t.options.onAfterFetch(e),lt(e)){var n,r=[],i=F(e);try{for(i.s();!(n=i.n()).done;){var o=n.value;r.push(t.afterFetch(o))}}catch(t){i.e(t)}finally{i.f()}return bt.apply(void 0,r)}var a=t.serialize(e);return t.deposit(a)}(this,t)}},{key:"create",value:(a=j(W().mark((function t(){var e,n,r,i=arguments;return W().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=4,this.adapter.post("".concat(this.namespace),e,n);case 4:return r=t.sent,t.abrupt("return",this.afterFetch(r));case 6:case"end":return t.stop()}}),t,this)}))),function(){return a.apply(this,arguments)})},{key:"update",value:(o=j(W().mark((function t(e){var n,r,i,o=arguments;return W().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=o.length>1&&void 0!==o[1]?o[1]:{},r=o.length>2&&void 0!==o[2]?o[2]:{},t.next=4,this.adapter.put("".concat(this.namespace,"/").concat(e),n,r);case 4:return i=t.sent,t.abrupt("return",this.afterFetch(i));case 6:case"end":return t.stop()}}),t,this)}))),function(t){return o.apply(this,arguments)})},{key:"findRecord",value:(i=j(W().mark((function t(e){var n,r,i=arguments;return W().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=3,this.adapter.get("".concat(this.namespace,"/").concat(e),{},n);case 3:return r=t.sent,t.abrupt("return",this.afterFetch(r));case 5:case"end":return t.stop()}}),t,this)}))),function(t){return i.apply(this,arguments)})},{key:"findAll",value:(r=j(W().mark((function t(){var e,n,r=arguments;return W().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=r.length>0&&void 0!==r[0]?r[0]:{},t.next=3,this.adapter.get("".concat(this.namespace),{},e);case 3:return n=t.sent,t.abrupt("return",this.afterFetch(n));case 5:case"end":return t.stop()}}),t,this)}))),function(){return r.apply(this,arguments)})},{key:"query",value:(n=j(W().mark((function t(){var e,n,r,i=arguments;return W().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=4,this.adapter.get("".concat(this.namespace),e,n);case 4:return r=t.sent,t.abrupt("return",this.afterFetch(r));case 6:case"end":return t.stop()}}),t,this)}))),function(){return n.apply(this,arguments)})},{key:"queryRecord",value:(e=j(W().mark((function t(){var e,n,r,i=arguments;return W().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},(e=i.length>0&&void 0!==i[0]?i[0]:{}).single=!0,t.next=5,this.adapter.get("".concat(this.namespace),e,n);case 5:return r=t.sent,t.abrupt("return",this.afterFetch(r));case 7:case"end":return t.stop()}}),t,this)}))),function(){return e.apply(this,arguments)})},{key:"destroy",value:(t=j(W().mark((function t(e){var n,r,i,o=arguments;return W().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=o.length>1&&void 0!==o[1]?o[1]:{},r=Dt(e)?e.getAttribute("id"):e,t.next=4,this.adapter.delete("".concat(this.namespace,"/").concat(r),{},n);case 4:return i=t.sent,t.abrupt("return",this.afterFetch(i));case 6:case"end":return t.stop()}}),t,this)}))),function(e){return t.apply(this,arguments)})}]);var t,e,n,r,i,o,a}();at("store","Store",Ct);var _t=new Pt({getDistanceAndTime:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/distance-and-time"),e,n)},getNextActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/next-activity"),e,n)},dispatch:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/dispatch"),e,n).then(this.afterFetch.bind(this))},start:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/start"),e,n).then(this.afterFetch.bind(this))},updateActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/update-activity"),e,n).then(this.afterFetch.bind(this))},setDestination:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return Dt(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/set-destination/").concat(e),n,r).then(this.afterFetch.bind(this))},captureQrCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return Dt(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-qr").concat(e?"/"+e:""),n,r)},captureSignature:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return Dt(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-signature").concat(e?"/"+e:""),n,r)},complete:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/complete"),e,n).then(this.afterFetch.bind(this))},cancel:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete("".concat(this.namespace,"/").concat(t,"/cancel"),e,n).then(this.afterFetch.bind(this))}}),Nt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return L(this,t),D(this,t,[e,n,"order",U({actions:_t},r)])}return H(t,Lt),N(t,[{key:"getDistanceAndTime",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getDistanceAndTime(this.id,t,e)}},{key:"dispatch",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.dispatch(this.id,t,e)}},{key:"start",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.start(this.id,t,e)}},{key:"setDestination",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.setDestination(this.id,t,e,n)}},{key:"captureQrCode",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureQrCode(this.id,t,e,n)}},{key:"captureSignature",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureSignature(this.id,t,e,n)}},{key:"getNextActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getNextActivity(this.id,t,e)}},{key:"updateActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.updateActivity(this.id,t,e)}},{key:"cancel",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.cancel(this.id,t,e)}},{key:"complete",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.complete(this.id,t,e)}},{key:"isDispatched",get:function(){return null!==this.getAttribute("dispatched_at")}},{key:"isNotDispatched",get:function(){return null==this.getAttribute("dispatched_at")}},{key:"isStarted",get:function(){return null!==this.getAttribute("started_at")}},{key:"isNotStarted",get:function(){return null==this.getAttribute("started_at")}},{key:"isCompleted",get:function(){return"completed"==this.getAttribute("status")}},{key:"isCanceled",get:function(){return"canceled"==this.getAttribute("status")}},{key:"isEnroute",get:function(){return"driver_enroute"==this.getAttribute("status")||"enroute"===this.getAttribute("status")}},{key:"isInProgress",get:function(){return this.isStarted&&!this.isCanceled&&!this.isCompleted}},{key:"scheduledAt",get:function(){return this.isAttributeFilled("scheduled_at")?new Date(this.getAttribute("scheduled_at")):null}},{key:"startedAt",get:function(){return this.isAttributeFilled("started_at")?new Date(this.getAttribute("started_at")):null}},{key:"dispatchedAt",get:function(){return this.isAttributeFilled("dispatched_at")?new Date(this.getAttribute("dispatched_at")):null}},{key:"status",get:function(){return this.getAttribute("status")}}])}();at("resource","Order",Nt);var Ft=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return L(this,t),D(this,t,[e,n,"payload",r])}return H(t,Lt),N(t,[{key:"attach",value:function(t){}},{key:"entities",get:function(){var t=this;return bt(this.entities.map((function(e){return ct("Entity",e,t.adapter)})))}},{key:"dropoff",get:function(){return this.dropoff?ct("Place",this.dropoff,this.adapter):null}},{key:"pickup",get:function(){return this.pickup?ct("Place",this.pickup,this.adapter):null}},{key:"waypoints",get:function(){var t=this;return bt(this.waypoints.map((function(e){return ct("Waypoint",e,t.adapter)})))}}])}();at("resource","Payload",Ft);var Mt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return L(this,t),D(this,t,[e,n,"entity",r])}return H(t,Lt),N(t)}();at("resource","Entity",Mt);var qt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return L(this,t),D(this,t,[e,n,"place",r])}return H(t,Lt),N(t,[{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new Ot))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new Ot))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"setOwner",value:function(t){return Dt(t)&&this.setAttribute("owner",t.id),"string"==typeof t&&this.setAttribute("owner",t),this}}],[{key:"fromGoogleAddress",value:function(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=G(e.getAttribute("coordinates"),2),o=i[0],a=i[1];return new t({name:null,address:e.getAttribute("address"),location:new Ot(o,a),street1:e.getAttribute("address"),street2:null,city:e.getAttribute("city"),province:e.getAttribute("stateLong"),postal_code:e.getAttribute("postalCode"),neighborhood:e.get("neighborhood"),district:e.getAttribute("county"),building:e.get("building"),country:e.getAttribute("countryShort"),phone:null,security_access_code:null},n,r)}}])}();at("resource","Place",qt);var Ht=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return L(this,t),D(this,t,[e,n,"waypoint",r])}return H(t,qt),N(t)}();at("resource","Waypoint",Ht);var It=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return L(this,t),D(this,t,[e,n,"tracking-status",r])}return H(t,Lt),N(t)}();at("resource","TrackingStatus",It);var zt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return L(this,t),D(this,t,[e,n,"vehicle",r])}return H(t,Lt),N(t)}();at("resource","Vehicle",zt);var Bt=new Pt({current:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.get("".concat(this.namespace,"/current"),t,e)}}),$t=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return L(this,t),D(this,t,[e,n,"organization",U({actions:Bt},r)])}return H(t,Lt),N(t)}();at("resource","Organization",$t);var Ut=function(t,e){return lt(t)?t.map((function(t){return new $t(t,e)})):new $t(t,e)},Wt=new Pt({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(function(){return/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"")}(t))return this.adapter.post("drivers/login-with-sms",{phone:t});if(!e)throw new Error("Login requires password!");return this.adapter.post("drivers/login",U({identity:t,password:e},n)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/verify-code",U({identity:t,code:e},n)).then(this.afterFetch.bind(this))},track:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/track"),e,n).then(this.afterFetch.bind(this))},listOrganizations:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("drivers/".concat(t,"/organizations"),n,r).then((function(t){return Ut(t,e.adapter)}))},switchOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/switch-organization"),n,r).then((function(t){return Ut(t,e.adapter)}))},currentOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("drivers/".concat(t,"/current-organization"),n,r).then((function(t){return Ut(t,e.adapter)}))},retrieve:function(t){return this.findRecord(t)},syncDevice:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/register-device"),e,n)}}),Yt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return L(this,t),D(this,t,[e,n,"driver",U({actions:Wt},r)])}return H(t,Lt),N(t,[{key:"token",get:function(){return this.getAttribute("token")}},{key:"isOnline",get:function(){return!0===this.getAttribute("online")}},{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new Ot))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new Ot))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"track",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.track(this.id,t,e)}},{key:"syncDevice",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.syncDevice(this.id,t,e)}},{key:"listOrganizations",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.listOrganizations(this.id,t,e)}},{key:"switchOrganization",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.switchOrganization(this.id,{next:t},e)}},{key:"currentOrganization",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.currentOrganization(this.id,t,e)}}])}();at("resource","Driver",Yt);var Gt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return L(this,t),D(this,t,[e,n,"vendor",r])}return H(t,Lt),N(t)}();at("resource","Vendor",Gt);var Qt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return L(this,t),D(this,t,[e,n,"contact",r])}return H(t,Lt),N(t)}();at("resource","Contact",Qt);var Jt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return L(this,t),D(this,t,[e,n,"zone",r])}return H(t,Lt),N(t)}();at("resource","Zone",Jt);var Xt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return L(this,t),D(this,t,[e,n,"service-area",r])}return H(t,Lt),N(t)}();at("resource","ServiceArea",Xt);var Kt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return L(this,t),D(this,t,[e,n,"service-rate",r])}return H(t,Lt),N(t)}();at("resource","ServiceRate",Kt);var Vt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return L(this,t),D(this,t,[e,n,"service-quote",r])}return H(t,Lt),N(t,[{key:"fromPreliminary",value:function(){}},{key:"fromPayload",value:function(){}}])}();at("resource","ServiceQuote",Vt);var Zt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return L(this,t),D(this,t,[e,n,"fleet",r])}return H(t,Lt),N(t)}();at("resource","Fleet",Zt);var te=N((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};L(this,t),this.version=e.version||"v1",this.host=e.host||null,this.namespace=e.namespace||null,this.headers=e.headers||{}}));at("adapter","Adapter",te);var ee=function(){function t(e){var n;return L(this,t),(n=D(this,t,[e])).setHeaders({Authorization:"Bearer ".concat(e.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;browser"}),n}return H(t,te),N(t,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.headers=U(U({},this.headers),t),this}},{key:"parseJSON",value:function(t){return new Promise((function(e,n){t.json().then((function(n){e({statusText:t.statusText,status:t.status,ok:t.ok,json:n})})).catch((function(){n(new Error("Oops! Something went wrong when handling your request."))}))}))}},{key:"request",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new Promise((function(o,a){fetch(i.url||"".concat(e.host,"/").concat(e.namespace,"/").concat(t),U({method:n,mode:i.mode||"cors",headers:new Headers(U(U({},e.headers||{}),i.headers||{}))},r)).then(e.parseJSON).then((function(t){if(t.ok)return o(t.json);a(new Error(t.json.errors?t.json.errors[0]:t.statusText))})).catch((function(t){a(t)}))}))}},{key:"get",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=xt(e=n)||"string"==typeof e&&!1===/\S/.test(e)?"":new URLSearchParams(n).toString();return this.request("".concat(t).concat(i?"?".concat(i):""),"GET",{},r)}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"POST",{body:JSON.stringify(e)},n)}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PUT",{body:JSON.stringify(e)},n)}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(t,"DELETE",{},e)}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PATCH",{body:JSON.stringify(e)},n)}}])}();function ne(t,e){return function(){return t.apply(e,arguments)}}at("adapter","BrowserAdapter",ee);var re,ie=Object.prototype.toString,oe=Object.getPrototypeOf,ae=(re=Object.create(null),function(t){var e=ie.call(t);return re[e]||(re[e]=e.slice(8,-1).toLowerCase())}),ue=function(t){return t=t.toLowerCase(),function(e){return ae(e)===t}},se=function(t){return function(e){return X(e)===t}},ce=Array.isArray,le=se("undefined"),he=ue("ArrayBuffer"),fe=se("string"),de=se("function"),ve=se("number"),pe=function(t){return null!==t&&"object"===X(t)},ye=function(t){if("object"!==ae(t))return!1;var e=oe(t);return!(null!==e&&e!==Object.prototype&&null!==Object.getPrototypeOf(e)||Symbol.toStringTag in t||Symbol.iterator in t)},ge=ue("Date"),me=ue("File"),we=ue("Blob"),be=ue("FileList"),ke=ue("URLSearchParams"),xe=G(["ReadableStream","Request","Response","Headers"].map(ue),4),Ae=xe[0],Ee=xe[1],Oe=xe[2],Se=xe[3];function Te(t,e){var n,r,i=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).allOwnKeys,o=void 0!==i&&i;if(null!=t)if("object"!==X(t)&&(t=[t]),ce(t))for(n=0,r=t.length;n0;)if(e===(n=r[i]).toLowerCase())return n;return null}var je,Pe,De,Le,Ce,_e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,Ne=function(t){return!le(t)&&t!==_e},Fe=(je="undefined"!=typeof Uint8Array&&oe(Uint8Array),function(t){return je&&t instanceof je}),Me=ue("HTMLFormElement"),qe=function(){var t=Object.prototype.hasOwnProperty;return function(e,n){return t.call(e,n)}}(),He=ue("RegExp"),Ie=function(t,e){var n=Object.getOwnPropertyDescriptors(t),r={};Te(n,(function(n,i){var o;!1!==(o=e(n,i,t))&&(r[i]=o||n)})),Object.defineProperties(t,r)},ze="abcdefghijklmnopqrstuvwxyz",Be="0123456789",$e={DIGIT:Be,ALPHA:ze,ALPHA_DIGIT:ze+ze.toUpperCase()+Be},Ue=ue("AsyncFunction"),We=(Pe="function"==typeof setImmediate,De=de(_e.postMessage),Pe?setImmediate:De?(Le="axios@".concat(Math.random()),Ce=[],_e.addEventListener("message",(function(t){var e=t.source,n=t.data;e===_e&&n===Le&&Ce.length&&Ce.shift()()}),!1),function(t){Ce.push(t),_e.postMessage(Le,"*")}):function(t){return setTimeout(t)}),Ye="undefined"!=typeof queueMicrotask?queueMicrotask.bind(_e):"undefined"!=typeof process&&process.nextTick||We,Ge={isArray:ce,isArrayBuffer:he,isBuffer:function(t){return null!==t&&!le(t)&&null!==t.constructor&&!le(t.constructor)&&de(t.constructor.isBuffer)&&t.constructor.isBuffer(t)},isFormData:function(t){var e;return t&&("function"==typeof FormData&&t instanceof FormData||de(t.append)&&("formdata"===(e=ae(t))||"object"===e&&de(t.toString)&&"[object FormData]"===t.toString()))},isArrayBufferView:function(t){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&he(t.buffer)},isString:fe,isNumber:ve,isBoolean:function(t){return!0===t||!1===t},isObject:pe,isPlainObject:ye,isReadableStream:Ae,isRequest:Ee,isResponse:Oe,isHeaders:Se,isUndefined:le,isDate:ge,isFile:me,isBlob:we,isRegExp:He,isFunction:de,isStream:function(t){return pe(t)&&de(t.pipe)},isURLSearchParams:ke,isTypedArray:Fe,isFileList:be,forEach:Te,merge:function t(){for(var e=(Ne(this)&&this||{}).caseless,n={},r=function(r,i){var o=e&&Re(n,i)||i;ye(n[o])&&ye(r)?n[o]=t(n[o],r):ye(r)?n[o]=t({},r):ce(r)?n[o]=r.slice():n[o]=r},i=0,o=arguments.length;i3&&void 0!==arguments[3]?arguments[3]:{}).allOwnKeys}),t},trim:function(t){return t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")},stripBOM:function(t){return 65279===t.charCodeAt(0)&&(t=t.slice(1)),t},inherits:function(t,e,n,r){t.prototype=Object.create(e.prototype,r),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),n&&Object.assign(t.prototype,n)},toFlatObject:function(t,e,n,r){var i,o,a,u={};if(e=e||{},null==t)return e;do{for(o=(i=Object.getOwnPropertyNames(t)).length;o-- >0;)a=i[o],r&&!r(a,t,e)||u[a]||(e[a]=t[a],u[a]=!0);t=!1!==n&&oe(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},kindOf:ae,kindOfTest:ue,endsWith:function(t,e,n){t=String(t),(void 0===n||n>t.length)&&(n=t.length),n-=e.length;var r=t.indexOf(e,n);return-1!==r&&r===n},toArray:function(t){if(!t)return null;if(ce(t))return t;var e=t.length;if(!ve(e))return null;for(var n=new Array(e);e-- >0;)n[e]=t[e];return n},forEachEntry:function(t,e){for(var n,r=(t&&t[Symbol.iterator]).call(t);(n=r.next())&&!n.done;){var i=n.value;e.call(t,i[0],i[1])}},matchAll:function(t,e){for(var n,r=[];null!==(n=t.exec(e));)r.push(n);return r},isHTMLForm:Me,hasOwnProperty:qe,hasOwnProp:qe,reduceDescriptors:Ie,freezeMethods:function(t){Ie(t,(function(e,n){if(de(t)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;var r=t[n];de(r)&&(e.enumerable=!1,"writable"in e?e.writable=!1:e.set||(e.set=function(){throw Error("Can not rewrite read-only method '"+n+"'")}))}))},toObjectSet:function(t,e){var n={},r=function(t){t.forEach((function(t){n[t]=!0}))};return ce(t)?r(t):r(String(t).split(e)),n},toCamelCase:function(t){return t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(t,e,n){return e.toUpperCase()+n}))},noop:function(){},toFiniteNumber:function(t,e){return null!=t&&Number.isFinite(t=+t)?t:e},findKey:Re,global:_e,isContextDefined:Ne,ALPHABET:$e,generateString:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$e.ALPHA_DIGIT,n="",r=e.length;t--;)n+=e[Math.random()*r|0];return n},isSpecCompliantForm:function(t){return!!(t&&de(t.append)&&"FormData"===t[Symbol.toStringTag]&&t[Symbol.iterator])},toJSONObject:function(t){var e=new Array(10),n=function(t,r){if(pe(t)){if(e.indexOf(t)>=0)return;if(!("toJSON"in t)){e[r]=t;var i=ce(t)?[]:{};return Te(t,(function(t,e){var o=n(t,r+1);!le(o)&&(i[e]=o)})),e[r]=void 0,i}}return t};return n(t,0)},isAsyncFn:Ue,isThenable:function(t){return t&&(pe(t)||de(t))&&de(t.then)&&de(t.catch)},setImmediate:We,asap:Ye};function Qe(t,e,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=t,this.name="AxiosError",e&&(this.code=e),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status?i.status:null)}Ge.inherits(Qe,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Ge.toJSONObject(this.config),code:this.code,status:this.status}}});var Je=Qe.prototype,Xe={};function Ke(t){return Ge.isPlainObject(t)||Ge.isArray(t)}function Ve(t){return Ge.endsWith(t,"[]")?t.slice(0,-2):t}function Ze(t,e,n){return t?t.concat(e).map((function(t,e){return t=Ve(t),!n&&e?"["+t+"]":t})).join(n?".":""):e}["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((function(t){Xe[t]={value:t}})),Object.defineProperties(Qe,Xe),Object.defineProperty(Je,"isAxiosError",{value:!0}),Qe.from=function(t,e,n,r,i,o){var a=Object.create(Je);return Ge.toFlatObject(t,a,(function(t){return t!==Error.prototype}),(function(t){return"isAxiosError"!==t})),Qe.call(a,t.message,e,n,r,i),a.cause=t,a.name=t.name,o&&Object.assign(a,o),a};var tn=Ge.toFlatObject(Ge,{},null,(function(t){return/^is[A-Z]/.test(t)}));function en(t,e,n){if(!Ge.isObject(t))throw new TypeError("target must be an object");e=e||new FormData;var r=(n=Ge.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(t,e){return!Ge.isUndefined(e[t])}))).metaTokens,i=n.visitor||c,o=n.dots,a=n.indexes,u=(n.Blob||"undefined"!=typeof Blob&&Blob)&&Ge.isSpecCompliantForm(e);if(!Ge.isFunction(i))throw new TypeError("visitor must be a function");function s(t){if(null===t)return"";if(Ge.isDate(t))return t.toISOString();if(!u&&Ge.isBlob(t))throw new Qe("Blob is not supported. Use a Buffer instead.");return Ge.isArrayBuffer(t)||Ge.isTypedArray(t)?u&&"function"==typeof Blob?new Blob([t]):Buffer.from(t):t}function c(t,n,i){var u=t;if(t&&!i&&"object"===X(t))if(Ge.endsWith(n,"{}"))n=r?n:n.slice(0,-2),t=JSON.stringify(t);else if(Ge.isArray(t)&&function(t){return Ge.isArray(t)&&!t.some(Ke)}(t)||(Ge.isFileList(t)||Ge.endsWith(n,"[]"))&&(u=Ge.toArray(t)))return n=Ve(n),u.forEach((function(t,r){!Ge.isUndefined(t)&&null!==t&&e.append(!0===a?Ze([n],r,o):null===a?n:n+"[]",s(t))})),!1;return!!Ke(t)||(e.append(Ze(i,n,o),s(t)),!1)}var l=[],h=Object.assign(tn,{defaultVisitor:c,convertValue:s,isVisitable:Ke});if(!Ge.isObject(t))throw new TypeError("data must be an object");return function t(n,r){if(!Ge.isUndefined(n)){if(-1!==l.indexOf(n))throw Error("Circular reference detected in "+r.join("."));l.push(n),Ge.forEach(n,(function(n,o){!0===(!(Ge.isUndefined(n)||null===n)&&i.call(e,n,Ge.isString(o)?o.trim():o,r,h))&&t(n,r?r.concat(o):[o])})),l.pop()}}(t),e}function nn(t){var e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,(function(t){return e[t]}))}function rn(t,e){this._pairs=[],t&&en(t,this,e)}var on=rn.prototype;function an(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function un(t,e,n){if(!e)return t;var r=n&&n.encode||an;Ge.isFunction(n)&&(n={serialize:n});var i,o=n&&n.serialize;if(i=o?o(e,n):Ge.isURLSearchParams(e)?e.toString():new rn(e,n).toString(r)){var a=t.indexOf("#");-1!==a&&(t=t.slice(0,a)),t+=(-1===t.indexOf("?")?"?":"&")+i}return t}on.append=function(t,e){this._pairs.push([t,e])},on.toString=function(t){var e=t?function(e){return t.call(this,e,nn)}:nn;return this._pairs.map((function(t){return e(t[0])+"="+e(t[1])}),"").join("&")};var sn=N((function t(){L(this,t),this.handlers=[]}),[{key:"use",value:function(t,e,n){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}},{key:"eject",value:function(t){this.handlers[t]&&(this.handlers[t]=null)}},{key:"clear",value:function(){this.handlers&&(this.handlers=[])}},{key:"forEach",value:function(t){Ge.forEach(this.handlers,(function(e){null!==e&&t(e)}))}}]),cn={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},ln={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:rn,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},hn="undefined"!=typeof window&&"undefined"!=typeof document,fn="object"===("undefined"==typeof navigator?"undefined":X(navigator))&&navigator||void 0,dn=hn&&(!fn||["ReactNative","NativeScript","NS"].indexOf(fn.product)<0),vn="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,pn=hn&&window.location.href||"http://localhost",yn=U(U({},Object.freeze({__proto__:null,hasBrowserEnv:hn,hasStandardBrowserEnv:dn,hasStandardBrowserWebWorkerEnv:vn,navigator:fn,origin:pn})),ln);function gn(t){function e(t,n,r,i){var o=t[i++];if("__proto__"===o)return!0;var a=Number.isFinite(+o),u=i>=t.length;return o=!o&&Ge.isArray(r)?r.length:o,u?(Ge.hasOwnProp(r,o)?r[o]=[r[o],n]:r[o]=n,!a):(r[o]&&Ge.isObject(r[o])||(r[o]=[]),e(t,n,r[o],i)&&Ge.isArray(r[o])&&(r[o]=function(t){var e,n,r={},i=Object.keys(t),o=i.length;for(e=0;e-1,o=Ge.isObject(t);if(o&&Ge.isHTMLForm(t)&&(t=new FormData(t)),Ge.isFormData(t))return i?JSON.stringify(gn(t)):t;if(Ge.isArrayBuffer(t)||Ge.isBuffer(t)||Ge.isStream(t)||Ge.isFile(t)||Ge.isBlob(t)||Ge.isReadableStream(t))return t;if(Ge.isArrayBufferView(t))return t.buffer;if(Ge.isURLSearchParams(t))return e.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return function(t,e){return en(t,new yn.classes.URLSearchParams,Object.assign({visitor:function(t,e,n,r){return yn.isNode&&Ge.isBuffer(t)?(this.append(e,t.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},e))}(t,this.formSerializer).toString();if((n=Ge.isFileList(t))||r.indexOf("multipart/form-data")>-1){var a=this.env&&this.env.FormData;return en(n?{"files[]":t}:t,a&&new a,this.formSerializer)}}return o||i?(e.setContentType("application/json",!1),function(t){if(Ge.isString(t))try{return(0,JSON.parse)(t),Ge.trim(t)}catch(t){if("SyntaxError"!==t.name)throw t}return(0,JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){var e=this.transitional||mn.transitional,n=e&&e.forcedJSONParsing,r="json"===this.responseType;if(Ge.isResponse(t)||Ge.isReadableStream(t))return t;if(t&&Ge.isString(t)&&(n&&!this.responseType||r)){var i=!(e&&e.silentJSONParsing)&&r;try{return JSON.parse(t)}catch(t){if(i){if("SyntaxError"===t.name)throw Qe.from(t,Qe.ERR_BAD_RESPONSE,this,null,this.response);throw t}}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:yn.classes.FormData,Blob:yn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};Ge.forEach(["delete","get","head","post","put","patch"],(function(t){mn.headers[t]={}}));var wn=Ge.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),bn=Symbol("internals");function kn(t){return t&&String(t).trim().toLowerCase()}function xn(t){return!1===t||null==t?t:Ge.isArray(t)?t.map(xn):String(t)}function An(t,e,n,r,i){return Ge.isFunction(r)?r.call(this,e,n):(i&&(e=n),Ge.isString(e)?Ge.isString(r)?-1!==e.indexOf(r):Ge.isRegExp(r)?r.test(e):void 0:void 0)}var En=N((function t(e){L(this,t),e&&this.set(e)}),[{key:"set",value:function(t,e,n){var r=this;function i(t,e,n){var i=kn(e);if(!i)throw new Error("header name must be a non-empty string");var o=Ge.findKey(r,i);(!o||void 0===r[o]||!0===n||void 0===n&&!1!==r[o])&&(r[o||e]=xn(t))}var o=function(t,e){return Ge.forEach(t,(function(t,n){return i(t,n,e)}))};if(Ge.isPlainObject(t)||t instanceof this.constructor)o(t,e);else if(Ge.isString(t)&&(t=t.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim()))o(function(t){var e,n,r,i={};return t&&t.split("\n").forEach((function(t){r=t.indexOf(":"),e=t.substring(0,r).trim().toLowerCase(),n=t.substring(r+1).trim(),!e||i[e]&&wn[e]||("set-cookie"===e?i[e]?i[e].push(n):i[e]=[n]:i[e]=i[e]?i[e]+", "+n:n)})),i}(t),e);else if(Ge.isHeaders(t)){var a,u=F(t.entries());try{for(u.s();!(a=u.n()).done;){var s=G(a.value,2),c=s[0];i(s[1],c,n)}}catch(t){u.e(t)}finally{u.f()}}else null!=t&&i(e,t,n);return this}},{key:"get",value:function(t,e){if(t=kn(t)){var n=Ge.findKey(this,t);if(n){var r=this[n];if(!e)return r;if(!0===e)return function(t){for(var e,n=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;e=r.exec(t);)n[e[1]]=e[2];return n}(r);if(Ge.isFunction(e))return e.call(this,r,n);if(Ge.isRegExp(e))return e.exec(r);throw new TypeError("parser must be boolean|regexp|function")}}}},{key:"has",value:function(t,e){if(t=kn(t)){var n=Ge.findKey(this,t);return!(!n||void 0===this[n]||e&&!An(0,this[n],n,e))}return!1}},{key:"delete",value:function(t,e){var n=this,r=!1;function i(t){if(t=kn(t)){var i=Ge.findKey(n,t);!i||e&&!An(0,n[i],i,e)||(delete n[i],r=!0)}}return Ge.isArray(t)?t.forEach(i):i(t),r}},{key:"clear",value:function(t){for(var e=Object.keys(this),n=e.length,r=!1;n--;){var i=e[n];t&&!An(0,this[i],i,t,!0)||(delete this[i],r=!0)}return r}},{key:"normalize",value:function(t){var e=this,n={};return Ge.forEach(this,(function(r,i){var o=Ge.findKey(n,i);if(o)return e[o]=xn(r),void delete e[i];var a=t?function(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(function(t,e,n){return e.toUpperCase()+n}))}(i):String(i).trim();a!==i&&delete e[i],e[a]=xn(r),n[a]=!0})),this}},{key:"concat",value:function(){for(var t,e=arguments.length,n=new Array(e),r=0;r1?n-1:0),i=1;i2&&void 0!==arguments[2]?arguments[2]:3,r=0,i=function(t,e){t=t||10;var n,r=new Array(t),i=new Array(t),o=0,a=0;return e=void 0!==e?e:1e3,function(u){var s=Date.now(),c=i[a];n||(n=s),r[o]=u,i[o]=s;for(var l=a,h=0;l!==o;)h+=r[l++],l%=t;if((o=(o+1)%t)===a&&(a=(a+1)%t),!(s-n1&&void 0!==arguments[1]?arguments[1]:Date.now();i=o,n=null,r&&(clearTimeout(r),r=null),t.apply(null,e)};return[function(){for(var t=Date.now(),e=t-i,u=arguments.length,s=new Array(u),c=0;c=o?a(s,t):(n=s,r||(r=setTimeout((function(){r=null,a(n)}),o-e)))},function(){return n&&a(n)}]}((function(n){var o=n.loaded,a=n.lengthComputable?n.total:void 0,u=o-r,s=i(u);r=o;var c=M({loaded:o,total:a,progress:a?o/a:void 0,bytes:u,rate:s||void 0,estimated:s&&a&&o<=a?(a-o)/s:void 0,event:n,lengthComputable:null!=a},e?"download":"upload",!0);t(c)}),n)},Pn=function(t,e){var n=null!=t;return[function(r){return e[0]({lengthComputable:n,total:t,loaded:r})},e[1]]},Dn=function(t){return function(){for(var e=arguments.length,n=new Array(e),r=0;r1?e-1:0),r=1;r1?"since :\n"+u.map(rr).join("\n"):" "+rr(u[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return n};function ar(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new Tn(null,t)}function ur(t){return ar(t),t.headers=En.from(t.headers),t.data=On.call(t,t.transformRequest),-1!==["post","put","patch"].indexOf(t.method)&&t.headers.setContentType("application/x-www-form-urlencoded",!1),or(t.adapter||mn.adapter)(t).then((function(e){return ar(t),e.data=On.call(t,t.transformResponse,e),e.headers=En.from(e.headers),e}),(function(e){return Sn(e)||(ar(t),e&&e.response&&(e.response.data=On.call(t,t.transformResponse,e.response),e.response.headers=En.from(e.response.headers))),Promise.reject(e)}))}var sr={};["object","boolean","number","function","string","symbol"].forEach((function(t,e){sr[t]=function(n){return X(n)===t||"a"+(e<1?"n ":" ")+t}}));var cr={};sr.transitional=function(t,e,n){function r(t,e){return"[Axios v1.7.9] Transitional option '"+t+"'"+e+(n?". "+n:"")}return function(n,i,o){if(!1===t)throw new Qe(r(i," has been removed"+(e?" in "+e:"")),Qe.ERR_DEPRECATED);return e&&!cr[i]&&(cr[i]=!0,console.warn(r(i," has been deprecated since v"+e+" and will be removed in the near future"))),!t||t(n,i,o)}},sr.spelling=function(t){return function(e,n){return console.warn("".concat(n," is likely a misspelling of ").concat(t)),!0}};var lr={assertOptions:function(t,e,n){if("object"!==X(t))throw new Qe("options must be an object",Qe.ERR_BAD_OPTION_VALUE);for(var r=Object.keys(t),i=r.length;i-- >0;){var o=r[i],a=e[o];if(a){var u=t[o],s=void 0===u||a(u,o,t);if(!0!==s)throw new Qe("option "+o+" must be "+s,Qe.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new Qe("Unknown option "+o,Qe.ERR_BAD_OPTION)}},validators:sr},hr=lr.validators,fr=function(){return N((function t(e){L(this,t),this.defaults=e,this.interceptors={request:new sn,response:new sn}}),[{key:"request",value:(t=j(W().mark((function t(e,n){var r,i;return W().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,this._request(e,n);case 3:return t.abrupt("return",t.sent);case 6:if(t.prev=6,t.t0=t.catch(0),t.t0 instanceof Error){r={},Error.captureStackTrace?Error.captureStackTrace(r):r=new Error,i=r.stack?r.stack.replace(/^.+\n/,""):"";try{t.t0.stack?i&&!String(t.t0.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(t.t0.stack+="\n"+i):t.t0.stack=i}catch(t){}}throw t.t0;case 10:case"end":return t.stop()}}),t,this,[[0,6]])}))),function(e,n){return t.apply(this,arguments)})},{key:"_request",value:function(t,e){"string"==typeof t?(e=e||{}).url=t:e=t||{};var n=e=Fn(this.defaults,e),r=n.transitional,i=n.paramsSerializer,o=n.headers;void 0!==r&&lr.assertOptions(r,{silentJSONParsing:hr.transitional(hr.boolean),forcedJSONParsing:hr.transitional(hr.boolean),clarifyTimeoutError:hr.transitional(hr.boolean)},!1),null!=i&&(Ge.isFunction(i)?e.paramsSerializer={serialize:i}:lr.assertOptions(i,{encode:hr.function,serialize:hr.function},!0)),lr.assertOptions(e,{baseUrl:hr.spelling("baseURL"),withXsrfToken:hr.spelling("withXSRFToken")},!0),e.method=(e.method||this.defaults.method||"get").toLowerCase();var a=o&&Ge.merge(o.common,o[e.method]);o&&Ge.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete o[t]})),e.headers=En.concat(a,o);var u=[],s=!0;this.interceptors.request.forEach((function(t){"function"==typeof t.runWhen&&!1===t.runWhen(e)||(s=s&&t.synchronous,u.unshift(t.fulfilled,t.rejected))}));var c,l=[];this.interceptors.response.forEach((function(t){l.push(t.fulfilled,t.rejected)}));var h,f=0;if(!s){var d=[ur.bind(this),void 0];for(d.unshift.apply(d,u),d.push.apply(d,l),h=d.length,c=Promise.resolve(e);f0;)r._listeners[e](t);r._listeners=null}})),this.promise.then=function(t){var e,n=new Promise((function(t){r.subscribe(t),e=t})).then(t);return n.cancel=function(){r.unsubscribe(e)},n},e((function(t,e,i){r.reason||(r.reason=new Tn(t,e,i),n(r.reason))}))}return N(t,[{key:"throwIfRequested",value:function(){if(this.reason)throw this.reason}},{key:"subscribe",value:function(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t]}},{key:"unsubscribe",value:function(t){if(this._listeners){var e=this._listeners.indexOf(t);-1!==e&&this._listeners.splice(e,1)}}},{key:"toAbortSignal",value:function(){var t=this,e=new AbortController,n=function(t){e.abort(t)};return this.subscribe(n),e.signal.unsubscribe=function(){return t.unsubscribe(n)},e.signal}}],[{key:"source",value:function(){var e;return{token:new t((function(t){e=t})),cancel:e}}}])}(),vr={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(vr).forEach((function(t){var e=G(t,2),n=e[0],r=e[1];vr[r]=n}));var pr=function t(e){var n=new fr(e),r=ne(fr.prototype.request,n);return Ge.extend(r,fr.prototype,n,{allOwnKeys:!0}),Ge.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return t(Fn(e,n))},r}(mn);pr.Axios=fr,pr.CanceledError=Tn,pr.CancelToken=dr,pr.isCancel=Sn,pr.VERSION="1.7.9",pr.toFormData=en,pr.AxiosError=Qe,pr.Cancel=pr.CanceledError,pr.all=function(t){return Promise.all(t)},pr.spread=function(t){return function(e){return t.apply(null,e)}},pr.isAxiosError=function(t){return Ge.isObject(t)&&!0===t.isAxiosError},pr.mergeConfig=Fn,pr.AxiosHeaders=En,pr.formToJSON=function(t){return gn(Ge.isHTMLForm(t)?new FormData(t):t)},pr.getAdapter=or,pr.HttpStatusCode=vr,pr.default=pr,pr.Axios,pr.AxiosError,pr.CanceledError,pr.isCancel,pr.CancelToken,pr.VERSION,pr.all,pr.Cancel,pr.isAxiosError,pr.spread,pr.toFormData,pr.AxiosHeaders,pr.HttpStatusCode,pr.formToJSON,pr.getAdapter,pr.mergeConfig;var yr=function(){function t(e){var n;return L(this,t),(n=D(this,t,[e])).axiosInstance=pr.create({baseURL:"".concat(n.host,"/").concat(n.namespace),headers:{Authorization:"Bearer ".concat(e.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;node"}}),n.axiosInstance.interceptors.response.use((function(t){return t.data}),(function(t){if(t.response){var e=t.response.data;if(lt(e.errors)&&e.errors.length)throw new Error(e.errors[0]);if(e.error)throw new Error(e.error)}throw t})),n}return H(t,te),N(t,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.axiosInstance.defaults.headers.common=U(U({},this.axiosInstance.defaults.headers.common),t),this}},{key:"request",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axiosInstance.request(U({method:t,url:e},n))}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request("GET",t,U({params:e},n))}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request("POST",t,U({data:e},n))}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request("PUT",t,U({data:e},n))}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request("DELETE",t,e)}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request("PATCH",t,U({data:e},n))}}])}();at("adapter","NodeAdapter",yr);var gr=function(){function t(){return L(this,t),D(this,t,arguments)}return H(t,te),N(t)}();at("adapter","EmberJsAdapter",gr),function(){function t(e){var n,r,i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(L(this,t),this.version=null!==(n=o.version)&&void 0!==n?n:"v1",this.options={version:this.version,host:null!==(r=o.host)&&void 0!==r?r:"https://api.fleetbase.io",namespace:null!==(i=o.namespace)&&void 0!==i?i:this.version,debug:a,publicKey:e},"string"!=typeof e||0===e.length)throw new Error("⚠️ Invalid public key given to Fleetbase SDK");if(!At()&&e.toLowerCase().startsWith("$"))throw new Error("Secret key provided. You must use a public key with Fleetbase Javascript SDK!");this.adapter=o.adapter||Et(this.options),this.orders=new Ct("order",this.adapter).extendActions(_t),this.entities=new Ct("entity",this.adapter),this.places=new Ct("place",this.adapter),this.drivers=new Ct("driver",this.adapter).extendActions(Wt),this.vehicles=new Ct("vehicle",this.adapter),this.vendors=new Ct("vendor",this.adapter),this.contacts=new Ct("contact",this.adapter),this.serviceAreas=new Ct("service-area",this.adapter),this.zones=new Ct("zone",this.adapter),this.fleets=new Ct("fleet",this.adapter),this.organizations=new Ct("organization",this.adapter).extendActions(Bt)}N(t,[{key:"setAdapter",value:function(t){this.adapter=t}},{key:"getAdapter",value:function(){return this.adapter}}],[{key:"newInstance",value:function(){return C(t,Array.prototype.slice.call(arguments))}}])}();var mr=function(t){function e(){return o(this,e),i(this,e,arguments)}return h(e,t),u(e,[{key:"extendActions",value:function(){return jt(this,arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])}},{key:"serialize",value:function(t){return st("resource",it(this.resource),t,this.adapter)}}])}(Ct);function wr(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"USD",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"symbol";return new Intl.NumberFormat("en-US",{style:"currency",currency:e,currencyDisplay:n}).format(t)}function br(t){var e=null==t;if(e)return e;if("number"==typeof t.size)return!t.size;var n=w(t);if("object"===n){var r=t.size;if("number"==typeof r)return!r}if("number"==typeof t.length&&"function"!==n)return!t.length;if("object"===n){var i=t.length;if("number"==typeof i)return!i}return!1}var kr=Array.isArray,xr=function(t){function e(){return o(this,e),i(this,e,arguments)}return h(e,t),u(e,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new mr(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}}])}(Lt);at("resource","StorefrontResource",xr);var Ar=new Pt({count:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={};return t&&(n.store=t),this.adapter.get("".concat(this.namespace,"/count"),n,e)}}),Er=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return o(this,e),i(this,e,[t,n,"review",r])}return h(e,t),u(e,[{key:"getMedia",value:function(){}},{key:"getPhotos",value:function(){}},{key:"getVideos",value:function(){}}])}(xr);at("resource","Review",Er);var Or=6048e5,Sr=Symbol.for("constructDateFrom");function Tr(t,e){return"function"==typeof t?t(e):t&&"object"===w(t)&&Sr in t?t[Sr](e):t instanceof Date?new t.constructor(e):new Date(e)}function Rr(t,e){return Tr(e||t,t)}function jr(t,e,n){var r=Rr(t,null==n?void 0:n.in);return isNaN(e)?Tr((null==n?void 0:n.in)||t,NaN):e?(r.setDate(r.getDate()+e),r):r}var Pr={};function Dr(){return Pr}function Lr(t,e){var n,r,i,o,a,u,s=Dr(),c=null!==(n=null!==(r=null!==(i=null!==(o=null==e?void 0:e.weekStartsOn)&&void 0!==o?o:null==e||null===(a=e.locale)||void 0===a||null===(a=a.options)||void 0===a?void 0:a.weekStartsOn)&&void 0!==i?i:s.weekStartsOn)&&void 0!==r?r:null===(u=s.locale)||void 0===u||null===(u=u.options)||void 0===u?void 0:u.weekStartsOn)&&void 0!==n?n:0,l=Rr(t,null==e?void 0:e.in),h=l.getDay(),f=(h=o.getTime()?r+1:n.getTime()>=u.getTime()?r:r-1}function Nr(t){var e=Rr(t),n=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return n.setUTCFullYear(e.getFullYear()),+t-+n}function Fr(t,e){var n=Rr(t,void 0);return n.setHours(0,0,0,0),n}function Mr(t,e,n){var r=function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r0&&void 0!==arguments[0]?arguments[0]:{},n=e.width?String(e.width):t.defaultWidth;return t.formats[n]||t.formats[t.defaultWidth]}}var zr={date:Ir({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:Ir({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:Ir({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},Br={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function $r(t){return function(e,n){var r;if("formatting"===(null!=n&&n.context?String(n.context):"standalone")&&t.formattingValues){var i=t.defaultFormattingWidth||t.defaultWidth,o=null!=n&&n.width?String(n.width):i;r=t.formattingValues[o]||t.formattingValues[i]}else{var a=t.defaultWidth,u=null!=n&&n.width?String(n.width):t.defaultWidth;r=t.values[u]||t.values[a]}return r[t.argumentCallback?t.argumentCallback(e):e]}}var Ur={ordinalNumber:function(t,e){var n=Number(t),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:$r({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:$r({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(t){return t-1}}),month:$r({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:$r({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:$r({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})};function Wr(t){return function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.width,i=r&&t.matchPatterns[r]||t.matchPatterns[t.defaultMatchWidth],o=e.match(i);if(!o)return null;var a,u=o[0],s=r&&t.parsePatterns[r]||t.parsePatterns[t.defaultParseWidth],c=Array.isArray(s)?function(t,e){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{},n=t.match(Yr.matchPattern);if(!n)return null;var r=n[0],i=t.match(Yr.parsePattern);if(!i)return null;var o=Yr.valueCallback?Yr.valueCallback(i[0]):i[0];return{value:o=e.valueCallback?e.valueCallback(o):o,rest:t.slice(r.length)}}),era:Wr({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:Wr({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:Wr({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:Wr({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:Wr({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},Qr={code:"en-US",formatDistance:function(t,e,n){var r,i=Hr[t];return r="string"==typeof i?i:1===e?i.one:i.other.replace("{{count}}",e.toString()),null!=n&&n.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r},formatLong:zr,formatRelative:function(t,e,n,r){return Br[t]},localize:Ur,match:Gr,options:{weekStartsOn:0,firstWeekContainsDate:1}};function Jr(t,e){var n=Rr(t,void 0),r=Mr(n,function(t){var e=Rr(t,void 0);return e.setFullYear(e.getFullYear(),0,1),e.setHours(0,0,0,0),e}(n));return r+1}function Xr(t,e){var n=Rr(t,void 0),r=+Cr(n)-+function(t){var e=_r(t),n=Tr(t,0);return n.setFullYear(e,0,4),n.setHours(0,0,0,0),Cr(n)}(n);return Math.round(r/Or)+1}function Kr(t,e){var n,r,i,o,a,u,s=Rr(t,null==e?void 0:e.in),c=s.getFullYear(),l=Dr(),h=null!==(n=null!==(r=null!==(i=null!==(o=null==e?void 0:e.firstWeekContainsDate)&&void 0!==o?o:null==e||null===(a=e.locale)||void 0===a||null===(a=a.options)||void 0===a?void 0:a.firstWeekContainsDate)&&void 0!==i?i:l.firstWeekContainsDate)&&void 0!==r?r:null===(u=l.locale)||void 0===u||null===(u=u.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==n?n:1,f=Tr((null==e?void 0:e.in)||t,0);f.setFullYear(c+1,0,h),f.setHours(0,0,0,0);var d=Lr(f,e),v=Tr((null==e?void 0:e.in)||t,0);v.setFullYear(c,0,h),v.setHours(0,0,0,0);var p=Lr(v,e);return+s>=+d?c+1:+s>=+p?c:c-1}function Vr(t,e){var n=Rr(t,null==e?void 0:e.in),r=+Lr(n,e)-+function(t,e){var n,r,i,o,a,u,s=Dr(),c=null!==(n=null!==(r=null!==(i=null!==(o=null==e?void 0:e.firstWeekContainsDate)&&void 0!==o?o:null==e||null===(a=e.locale)||void 0===a||null===(a=a.options)||void 0===a?void 0:a.firstWeekContainsDate)&&void 0!==i?i:s.firstWeekContainsDate)&&void 0!==r?r:null===(u=s.locale)||void 0===u||null===(u=u.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==n?n:1,l=Kr(t,e),h=Tr((null==e?void 0:e.in)||t,0);return h.setFullYear(l,0,c),h.setHours(0,0,0,0),Lr(h,e)}(n,e);return Math.round(r/Or)+1}function Zr(t,e){return(t<0?"-":"")+Math.abs(t).toString().padStart(e,"0")}var ti=function(t,e){var n=t.getFullYear(),r=n>0?n:1-n;return Zr("yy"===e?r%100:r,e.length)},ei=function(t,e){var n=t.getMonth();return"M"===e?String(n+1):Zr(n+1,2)},ni=function(t,e){return Zr(t.getDate(),e.length)},ri=function(t,e){return Zr(t.getHours()%12||12,e.length)},ii=function(t,e){return Zr(t.getHours(),e.length)},oi=function(t,e){return Zr(t.getMinutes(),e.length)},ai=function(t,e){return Zr(t.getSeconds(),e.length)},ui=function(t,e){var n=e.length,r=t.getMilliseconds();return Zr(Math.trunc(r*Math.pow(10,n-3)),e.length)},si="midnight",ci="noon",li="morning",hi="afternoon",fi="evening",di="night",vi={G:function(t,e,n){var r=t.getFullYear()>0?1:0;switch(e){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});default:return n.era(r,{width:"wide"})}},y:function(t,e,n){if("yo"===e){var r=t.getFullYear(),i=r>0?r:1-r;return n.ordinalNumber(i,{unit:"year"})}return ti(t,e)},Y:function(t,e,n,r){var i=Kr(t,r),o=i>0?i:1-i;return"YY"===e?Zr(o%100,2):"Yo"===e?n.ordinalNumber(o,{unit:"year"}):Zr(o,e.length)},R:function(t,e){return Zr(_r(t),e.length)},u:function(t,e){return Zr(t.getFullYear(),e.length)},Q:function(t,e,n){var r=Math.ceil((t.getMonth()+1)/3);switch(e){case"Q":return String(r);case"QQ":return Zr(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(t,e,n){var r=Math.ceil((t.getMonth()+1)/3);switch(e){case"q":return String(r);case"qq":return Zr(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(t,e,n){var r=t.getMonth();switch(e){case"M":case"MM":return ei(t,e);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(t,e,n){var r=t.getMonth();switch(e){case"L":return String(r+1);case"LL":return Zr(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(t,e,n,r){var i=Vr(t,r);return"wo"===e?n.ordinalNumber(i,{unit:"week"}):Zr(i,e.length)},I:function(t,e,n){var r=Xr(t);return"Io"===e?n.ordinalNumber(r,{unit:"week"}):Zr(r,e.length)},d:function(t,e,n){return"do"===e?n.ordinalNumber(t.getDate(),{unit:"date"}):ni(t,e)},D:function(t,e,n){var r=Jr(t);return"Do"===e?n.ordinalNumber(r,{unit:"dayOfYear"}):Zr(r,e.length)},E:function(t,e,n){var r=t.getDay();switch(e){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(t,e,n,r){var i=t.getDay(),o=(i-r.weekStartsOn+8)%7||7;switch(e){case"e":return String(o);case"ee":return Zr(o,2);case"eo":return n.ordinalNumber(o,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(t,e,n,r){var i=t.getDay(),o=(i-r.weekStartsOn+8)%7||7;switch(e){case"c":return String(o);case"cc":return Zr(o,e.length);case"co":return n.ordinalNumber(o,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(t,e,n){var r=t.getDay(),i=0===r?7:r;switch(e){case"i":return String(i);case"ii":return Zr(i,e.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(t,e,n){var r=t.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},b:function(t,e,n){var r,i=t.getHours();switch(r=12===i?ci:0===i?si:i/12>=1?"pm":"am",e){case"b":case"bb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},B:function(t,e,n){var r,i=t.getHours();switch(r=i>=17?fi:i>=12?hi:i>=4?li:di,e){case"B":case"BB":case"BBB":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},h:function(t,e,n){if("ho"===e){var r=t.getHours()%12;return 0===r&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return ri(t,e)},H:function(t,e,n){return"Ho"===e?n.ordinalNumber(t.getHours(),{unit:"hour"}):ii(t,e)},K:function(t,e,n){var r=t.getHours()%12;return"Ko"===e?n.ordinalNumber(r,{unit:"hour"}):Zr(r,e.length)},k:function(t,e,n){var r=t.getHours();return 0===r&&(r=24),"ko"===e?n.ordinalNumber(r,{unit:"hour"}):Zr(r,e.length)},m:function(t,e,n){return"mo"===e?n.ordinalNumber(t.getMinutes(),{unit:"minute"}):oi(t,e)},s:function(t,e,n){return"so"===e?n.ordinalNumber(t.getSeconds(),{unit:"second"}):ai(t,e)},S:function(t,e){return ui(t,e)},X:function(t,e,n){var r=t.getTimezoneOffset();if(0===r)return"Z";switch(e){case"X":return yi(r);case"XXXX":case"XX":return gi(r);default:return gi(r,":")}},x:function(t,e,n){var r=t.getTimezoneOffset();switch(e){case"x":return yi(r);case"xxxx":case"xx":return gi(r);default:return gi(r,":")}},O:function(t,e,n){var r=t.getTimezoneOffset();switch(e){case"O":case"OO":case"OOO":return"GMT"+pi(r,":");default:return"GMT"+gi(r,":")}},z:function(t,e,n){var r=t.getTimezoneOffset();switch(e){case"z":case"zz":case"zzz":return"GMT"+pi(r,":");default:return"GMT"+gi(r,":")}},t:function(t,e,n){return Zr(Math.trunc(+t/1e3),e.length)},T:function(t,e,n){return Zr(+t,e.length)}};function pi(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=t>0?"-":"+",r=Math.abs(t),i=Math.trunc(r/60),o=r%60;return 0===o?n+String(i):n+String(i)+e+Zr(o,2)}function yi(t,e){return t%60==0?(t>0?"-":"+")+Zr(Math.abs(t)/60,2):gi(t,e)}function gi(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=t>0?"-":"+",r=Math.abs(t);return n+Zr(Math.trunc(r/60),2)+e+Zr(r%60,2)}var mi=function(t,e){switch(t){case"P":return e.date({width:"short"});case"PP":return e.date({width:"medium"});case"PPP":return e.date({width:"long"});default:return e.date({width:"full"})}},wi=function(t,e){switch(t){case"p":return e.time({width:"short"});case"pp":return e.time({width:"medium"});case"ppp":return e.time({width:"long"});default:return e.time({width:"full"})}},bi={p:wi,P:function(t,e){var n,r=t.match(/(P+)(p+)?/)||[],i=r[1],o=r[2];if(!o)return mi(t,e);switch(i){case"P":n=e.dateTime({width:"short"});break;case"PP":n=e.dateTime({width:"medium"});break;case"PPP":n=e.dateTime({width:"long"});break;default:n=e.dateTime({width:"full"})}return n.replace("{{date}}",mi(i,e)).replace("{{time}}",wi(o,e))}},ki=/^D+$/,xi=/^Y+$/,Ai=["D","DD","YY","YYYY"];function Ei(t){return ki.test(t)}function Oi(t){return xi.test(t)}function Si(t,e,n){var r=function(t,e,n){var r="Y"===t[0]?"years":"days of the month";return"Use `".concat(t.toLowerCase(),"` instead of `").concat(t,"` (in `").concat(e,"`) for formatting ").concat(r," to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md")}(t,e,n);if(console.warn(r),Ai.includes(t))throw new RangeError(r)}var Ti=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Ri=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,ji=/^'([^]*?)'?$/,Pi=/''/g,Di=/[a-zA-Z]/;function Li(t,e,n){var r,i,o,a,u,s,c,l,h,f=Dr(),d=null!==(r=f.locale)&&void 0!==r?r:Qr,v=null!==(i=null!==(o=null!==(a=void 0)&&void 0!==a?a:f.firstWeekContainsDate)&&void 0!==o?o:null===(u=f.locale)||void 0===u||null===(u=u.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==i?i:1,p=null!==(s=null!==(c=null!==(l=void 0)&&void 0!==l?l:f.weekStartsOn)&&void 0!==c?c:null===(h=f.locale)||void 0===h||null===(h=h.options)||void 0===h?void 0:h.weekStartsOn)&&void 0!==s?s:0,y=Rr(t,void 0);if(!qr(y))throw new RangeError("Invalid time value");var g=e.match(Ri).map((function(t){var e=t[0];return"p"===e||"P"===e?(0,bi[e])(t,d.formatLong):t})).join("").match(Ti).map((function(t){if("''"===t)return{isToken:!1,value:"'"};var e=t[0];if("'"===e)return{isToken:!1,value:Ci(t)};if(vi[e])return{isToken:!0,value:t};if(e.match(Di))throw new RangeError("Format string contains an unescaped latin alphabet character `"+e+"`");return{isToken:!1,value:t}}));d.localize.preprocessor&&(g=d.localize.preprocessor(y,g));var m={firstWeekContainsDate:v,weekStartsOn:p,locale:d};return g.map((function(n){if(!n.isToken)return n.value;var r=n.value;return(Oi(r)||Ei(r))&&Si(r,e,String(t)),(0,vi[r[0]])(y,r,d.localize,m)})).join("")}function Ci(t){var e=t.match(ji);return e?e[1].replace(Pi,"'"):t}var _i=function(){return u((function t(){o(this,t),c(this,"subPriority",0)}),[{key:"validate",value:function(t,e){return!0}}])}(),Ni=function(t){function e(t,n,r,a,u){var s;return o(this,e),(s=i(this,e)).value=t,s.validateValue=n,s.setValue=r,s.priority=a,u&&(s.subPriority=u),s}return h(e,t),u(e,[{key:"validate",value:function(t,e){return this.validateValue(t,this.value,e)}},{key:"set",value:function(t,e,n){return this.setValue(t,e,this.value,n)}}])}(_i),Fi=function(t){function e(t,n){var r;return o(this,e),c(r=i(this,e),"priority",10),c(r,"subPriority",-1),r.context=t||function(t){return Tr(n,t)},r}return h(e,t),u(e,[{key:"set",value:function(t,e){return e.timestampIsSet?t:Tr(t,function(t,e){var n=function(t){var e;return"function"==typeof t&&(null===(e=t.prototype)||void 0===e?void 0:e.constructor)===t}(e)?new e(0):Tr(e,0);return n.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),n.setHours(t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()),n}(t,this.context))}}])}(_i),Mi=function(){return u((function t(){o(this,t)}),[{key:"run",value:function(t,e,n,r){var i=this.parse(t,e,n,r);return i?{setter:new Ni(i.value,this.validate,this.set,this.priority,this.subPriority),rest:i.rest}:null}},{key:"validate",value:function(t,e,n){return!0}}])}(),qi=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a0,i=r?e:1-e;if(i<=50)n=t||100;else{var o=i+50;n=t+100*Math.trunc(o/100)-(t>=o%100?100:0)}return r?n:1-n}function mo(t){return t%400==0||t%4==0&&t%100!=0}var wo=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a0}},{key:"set",value:function(t,e,n){var r=t.getFullYear();if(n.isTwoDigitYear){var i=go(n.year,r);return t.setFullYear(i,0,1),t.setHours(0,0,0,0),t}var o="era"in e&&1!==e.era?1-n.year:n.year;return t.setFullYear(o,0,1),t.setHours(0,0,0,0),t}}])}(Mi),bo=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a0}},{key:"set",value:function(t,e,n,r){var i=Kr(t,r);if(n.isTwoDigitYear){var o=go(n.year,i);return t.setFullYear(o,0,r.firstWeekContainsDate),t.setHours(0,0,0,0),Lr(t,r)}var a="era"in e&&1!==e.era?1-n.year:n.year;return t.setFullYear(a,0,r.firstWeekContainsDate),t.setHours(0,0,0,0),Lr(t,r)}}])}(Mi),ko=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=1&&e<=4}},{key:"set",value:function(t,e,n){return t.setMonth(3*(n-1),1),t.setHours(0,0,0,0),t}}])}(Mi),Eo=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=1&&e<=4}},{key:"set",value:function(t,e,n){return t.setMonth(3*(n-1),1),t.setHours(0,0,0,0),t}}])}(Mi),Oo=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=0&&e<=11}},{key:"set",value:function(t,e,n){return t.setMonth(n,1),t.setHours(0,0,0,0),t}}])}(Mi),So=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=0&&e<=11}},{key:"set",value:function(t,e,n){return t.setMonth(n,1),t.setHours(0,0,0,0),t}}])}(Mi);var To=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=1&&e<=53}},{key:"set",value:function(t,e,n,r){return Lr(function(t,e,n){var r=Rr(t,null==n?void 0:n.in),i=Vr(r,n)-e;return r.setDate(r.getDate()-7*i),Rr(r,null==n?void 0:n.in)}(t,n,r),r)}}])}(Mi);var Ro=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=1&&e<=53}},{key:"set",value:function(t,e,n){return Cr(function(t,e){var n=Rr(t,void 0),r=Xr(n)-e;return n.setDate(n.getDate()-7*r),n}(t,n))}}])}(Mi),jo=[31,28,31,30,31,30,31,31,30,31,30,31],Po=[31,29,31,30,31,30,31,31,30,31,30,31],Do=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=1&&e<=Po[r]:e>=1&&e<=jo[r]}},{key:"set",value:function(t,e,n){return t.setDate(n),t.setHours(0,0,0,0),t}}])}(Mi),Lo=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=1&&e<=366:e>=1&&e<=365}},{key:"set",value:function(t,e,n){return t.setMonth(0,n),t.setHours(0,0,0,0),t}}])}(Mi);function Co(t,e,n){var r,i,o,a,u,s,c=Dr(),l=null!==(r=null!==(i=null!==(o=null!==(a=null==n?void 0:n.weekStartsOn)&&void 0!==a?a:null==n||null===(u=n.locale)||void 0===u||null===(u=u.options)||void 0===u?void 0:u.weekStartsOn)&&void 0!==o?o:c.weekStartsOn)&&void 0!==i?i:null===(s=c.locale)||void 0===s||null===(s=s.options)||void 0===s?void 0:s.weekStartsOn)&&void 0!==r?r:0,h=Rr(t,null==n?void 0:n.in),f=h.getDay(),d=7-l;return jr(h,e<0||e>6?e-(f+d)%7:((e%7+7)%7+d)%7-(f+d)%7,n)}var _o=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=0&&e<=6}},{key:"set",value:function(t,e,n,r){return(t=Co(t,n,r)).setHours(0,0,0,0),t}}])}(Mi),No=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=0&&e<=6}},{key:"set",value:function(t,e,n,r){return(t=Co(t,n,r)).setHours(0,0,0,0),t}}])}(Mi),Fo=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=0&&e<=6}},{key:"set",value:function(t,e,n,r){return(t=Co(t,n,r)).setHours(0,0,0,0),t}}])}(Mi);function Mo(t,e,n){var r=Rr(t,void 0),i=function(t){var e=Rr(t,void 0).getDay();return 0===e?7:e}(r);return jr(r,e-i,n)}var qo=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=1&&e<=7}},{key:"set",value:function(t,e,n){return(t=Mo(t,n)).setHours(0,0,0,0),t}}])}(Mi),Ho=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=1&&e<=12}},{key:"set",value:function(t,e,n){var r=t.getHours()>=12;return r&&n<12?t.setHours(n+12,0,0,0):r||12!==n?t.setHours(n,0,0,0):t.setHours(0,0,0,0),t}}])}(Mi),$o=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=0&&e<=23}},{key:"set",value:function(t,e,n){return t.setHours(n,0,0,0),t}}])}(Mi),Uo=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=0&&e<=11}},{key:"set",value:function(t,e,n){return t.getHours()>=12&&n<12?t.setHours(n+12,0,0,0):t.setHours(n,0,0,0),t}}])}(Mi),Wo=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=1&&e<=24}},{key:"set",value:function(t,e,n){var r=n<=24?n%24:n;return t.setHours(r,0,0,0),t}}])}(Mi),Yo=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=0&&e<=59}},{key:"set",value:function(t,e,n){return t.setMinutes(n,0,0),t}}])}(Mi),Go=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a=0&&e<=59}},{key:"set",value:function(t,e,n){return t.setSeconds(n,0),t}}])}(Mi),Qo=function(t){function e(){var t;o(this,e);for(var n=arguments.length,r=new Array(n),a=0;a0)throw new RangeError("The format string mustn't contain `".concat(n,"` and any other token at the same time"));A.push({token:i,fullToken:n});var s=o.run(t,n,y.match,b);if(!s)return{v:v()};k.push(s.setter),t=s.rest}else{if(i.match(oa))throw new RangeError("Format string contains an unescaped latin alphabet character `"+i+"`");if("''"===n?n="'":"'"===i&&(n=n.match(na)[1].replace(ra,"'")),0!==t.indexOf(n))return{v:v()};t=t.slice(n.length)}};for(E.s();!(w=E.n()).done;)if(O=S())return O.v}catch(t){E.e(t)}finally{E.f()}if(t.length>0&&ia.test(t))return v();var T=k.map((function(t){return t.priority})).sort((function(t,e){return e-t})).filter((function(t,e,n){return n.indexOf(t)===e})).map((function(t){return k.filter((function(e){return e.priority===t})).sort((function(t,e){return e.subPriority-t.subPriority}))})).map((function(t){return t[0]})),R=Rr(n,void 0);if(isNaN(+R))return v();var j,P={},D=s(T);try{for(D.s();!(j=D.n()).done;){var L=j.value;if(!L.validate(R,b))return v();var C=L.set(R,P,b);Array.isArray(C)?(R=C[0],Object.assign(P,C[1])):R=C}}catch(t){D.e(t)}finally{D.f()}return R}var ua=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return o(this,e),i(this,e,[t,n,"store-hour",r])}return h(e,t),u(e,[{key:"day",get:function(){return this.getAttribute("day")}},{key:"isClosed",get:function(){return null===this.getAttribute("start")&&null===this.getAttribute("end")}},{key:"is24Hours",get:function(){var t=this.startDateInstance,e=this.endDateInstance,n=Math.abs(t-e);return Math.floor(n/1e3/60)/60>23}},{key:"startDateInstance",get:function(){if(!this.hasAttribute("start"))return null;var t=this.getAttribute("start"),e=3===t.split(":").length;return aa(t,e?"HH:mm:ss":"HH:mm",new Date)}},{key:"endDateInstance",get:function(){if(!this.hasAttribute("end"))return null;var t=this.getAttribute("end"),e=3===t.split(":").length;return aa(t,e?"HH:mm:ss":"HH:mm",new Date)}},{key:"humanReadableHoursRange",get:function(){return qr(this.startDateInstance)&&qr(this.endDateInstance)?"".concat(Li(this.startDateInstance,"p")," - ").concat(Li(this.endDateInstance,"p")):"".concat(this.start," - ").concat(this.end)}},{key:"humanReadableHours",get:function(){return this.isClosed?"Closed":this.is24Hours?"24 Hours":this.humanReadableHoursRange}},{key:"create",value:function(){throw new Error("There is no create() method store location!")}},{key:"update",value:function(){throw new Error("There is no update() method store location!")}},{key:"destroy",value:function(){throw new Error("There is no destroy() method store location!")}},{key:"reload",value:function(){throw new Error("There is no reload() method store location!")}}])}(xr);at("resource","StoreHour",ua);var sa=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return o(this,e),i(this,e,[t,n,"store-location",r])}return h(e,t),u(e,[{key:"latitude",get:function(){return this.getAttribute("place.location.coordinates.1")}},{key:"longitude",get:function(){return this.getAttribute("place.location.coordinates.0")}},{key:"hours",get:function(){var t=this;return new kt((this.getAttribute("hours")||[]).map((function(e){return new ua(e,t.adapter)})))}},{key:"storeData",get:function(){var t=this.getAttribute("store_data"),e=this.getAttribute("store");return t||(e&&"object"===w(e)?e:null)}},{key:"storeId",get:function(){var t,e,n=this.getAttribute("store");return"string"==typeof n?n:(null===(t=this.storeData)||void 0===t?void 0:t.id)||(null===(e=this.storeData)||void 0===e?void 0:e.public_id)}},{key:"merchant",get:function(){return this.storeData?st("resource","Store",this.storeData,this.adapter):null}},{key:"isAlwaysOpen",get:function(){return this.hours.every((function(t){return null==t?void 0:t.is24Hours}))}},{key:"today",get:function(){var t=Li(new Date,"EEEE");return this.schedule[t]}},{key:"schedule",get:function(){for(var t={},e=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],n=0;n0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return o(this,e),i(this,e,[t,n,"payment-gateway",r])}return h(e,t),u(e,[{key:"type",get:function(){return this.getAttribute("type")}},{key:"code",get:function(){return this.getAttribute("code")}},{key:"isCashGateway",get:function(){return"cash"===this.type}},{key:"isStripeGateway",get:function(){return"stripe"===this.type}},{key:"setCheckoutToken",value:function(t){this.token=t}},{key:"getCheckoutToken",value:function(){return this.token}},{key:"findRecord",value:function(){throw new Error("There is no findRecord() method for payment gateways!")}},{key:"create",value:function(){throw new Error("There is no create() method for payment gateways!")}},{key:"update",value:function(){throw new Error("There is no update() method for payment gateways!")}},{key:"destroy",value:function(){throw new Error("There is no destroy() method for payment gateways!")}},{key:"reload",value:function(){throw new Error("There is no reload() method for payment gateways!")}}])}(xr);at("resource","PaymentGateway",ca);var la=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return o(this,e),i(this,e,[t,n,"store",r])}return h(e,t),u(e,[{key:"getReviews",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("reviews",v({store:this.id},e)).then((function(e){return new kt(e.map((function(e){return new Er(e,t.adapter)})))}))}},{key:"getLocations",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("locations",v({store:this.id},e)).then((function(e){return new kt(e.map((function(e){return e.place&&(e.place=new qt(e.place)),new sa(e,t.adapter)})))}))}},{key:"getLocation",value:function(t){var e=this;return this.adapter.get("locations/".concat(t),{store:this.id}).then((function(t){return new sa(t,e.adapter)}))}},{key:"getPaymentGateways",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("gateways",e).then((function(e){return new kt(e.map((function(e){return new ca(e,t.adapter)})))}))}},{key:"getPaymentGateway",value:function(t){var e=this;return this.adapter.get("gateways/".concat(t)).then((function(t){return new ca(t,e.adapter)}))}}])}(xr);at("resource","Store",la);var ha=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return o(this,e),i(this,e,[t,n,"product",r])}return h(e,t),u(e,[{key:"variants",value:function(){return this.getAttribute("variants")}},{key:"addons",value:function(){return this.getAttribute("addon_categories")}},{key:"isOnSale",get:function(){return this.getAttribute("is_on_sale")}},{key:"isNotOnSale",get:function(){return!this.getAttribute("is_on_sale")}},{key:"formattedAmount",get:function(){var t=this.getAttributes(["price","sale_price","currency"]),e=t.price,n=t.sale_price,r=t.currency;return this.isOnSale?br(n)||br(r)?null:wr(n/100,r):br(e)||br(r)?null:wr(e/100,r)}},{key:"merchant",get:function(){var t=this.getAttribute("store");return t&&"object"===w(t)?new la(t,this.adapter):null}},{key:"getReviews",value:function(){var t=this;return this.adapter.get("reviews",{store:this.id}).then((function(e){return new kt(e.map((function(e){return new Er(e,t.adapter)})))}))}}])}(xr);at("resource","Product",ha);var fa=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return o(this,e),i(this,e,[t,n,"category",r])}return h(e,t),u(e,[{key:"getProducts",value:function(){var t=this;return this.adapter.get("products",{category:this.id}).then((function(e){return new kt(e.map((function(e){return new ha(e,t.adapter)})))}))}}])}(xr);at("resource","Category",fa);var da=new Pt({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(function(){return/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"")}(t))return this.adapter.post("customers/login-with-sms",{phone:t});if(!e)throw new Error("Login requires password!");return this.adapter.post("customers/login",v({identity:t,password:e},n)).then(this.afterFetch.bind(this))},loginWithApple:function(t,e,n,r,i){var o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return this.adapter.post("customers/login-with-apple",v({appleUserId:t,identityToken:e,authorizationCode:n,email:r,name:i},o)).then(this.afterFetch.bind(this))},loginWithFacebook:function(t,e,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return this.adapter.post("customers/login-with-facebook",v({facebookUserId:t,email:e,name:n,avatarUrl:r},i)).then(this.afterFetch.bind(this))},loginWithGoogle:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("customers/login-with-google",v({idToken:t,clientId:e},n)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("customers/verify-code",v({identity:t,code:e},n)).then(this.afterFetch.bind(this))},requestCreationCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"email";return this.adapter.post("customers/request-creation-code",{identity:t,mode:e})},create:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("customers",v({identity:t,code:e},n)).then(this.afterFetch.bind(this))},retrieve:function(t){return this.findRecord(t)}}),va=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return o(this,e),i(this,e,[t,n,"customer",v({actions:da},r)])}return h(e,t),u(e,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new mr(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"token",get:function(){return this.getAttribute("token")}},{key:"syncDevice",value:(c=r(p().mark((function t(e,n){var r,i;return p().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,r={"Customer-Token":this.token},t.next=4,this.adapter.setHeaders(r).post("customers/register-device",{token:e,platform:n});case 4:return i=t.sent,t.abrupt("return",i);case 8:throw t.prev=8,t.t0=t.catch(0),console.error("Error making request to register customer device token:",t.t0),t.t0;case 12:case"end":return t.stop()}}),t,this,[[0,8]])}))),function(t,e){return c.apply(this,arguments)})},{key:"performAuthorizedRequest",value:(s=r(p().mark((function t(e){var n,r,i,o,a=arguments;return p().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=a.length>1&&void 0!==a[1]?a[1]:{},r=a.length>2&&void 0!==a[2]?a[2]:"GET",t.prev=2,i={"Customer-Token":this.token},t.next=6,this.adapter.setHeaders(i)[r.toLowerCase()](e,n);case 6:return o=t.sent,t.abrupt("return",o);case 10:throw t.prev=10,t.t0=t.catch(2),console.error("Error in ".concat(r," request to ").concat(e,":"),t.t0),t.t0;case 14:case"end":return t.stop()}}),t,this,[[2,10]])}))),function(t){return s.apply(this,arguments)})},{key:"getSavedPlaces",value:(a=r(p().mark((function t(){var e,n=this;return p().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,this.performAuthorizedRequest("customers/places");case 3:return e=t.sent,t.abrupt("return",new kt(e.map((function(t){return new qt(t,n.adapter)}))));case 7:throw t.prev=7,t.t0=t.catch(0),console.error("Failed to retrieve saved places"),t.t0;case 11:case"end":return t.stop()}}),t,this,[[0,7]])}))),function(){return a.apply(this,arguments)})},{key:"getOrderHistory",value:(n=r(p().mark((function t(){var e,n,r=this,i=arguments;return p().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},t.prev=1,t.next=4,this.performAuthorizedRequest("customers/orders",e);case 4:return n=t.sent,t.abrupt("return",new kt(n.map((function(t){return new Nt(t,r.adapter)}))));case 8:throw t.prev=8,t.t0=t.catch(1),console.error("Failed to retrieve order history"),t.t0;case 12:case"end":return t.stop()}}),t,this,[[1,8]])}))),function(){return n.apply(this,arguments)})},{key:"getStripeEphemeralKey",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.setHeaders({"Customer-Token":this.token}).post("customers/stripe-ephemeral-key",t)}},{key:"getStripeSetupIntent",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.setHeaders({"Customer-Token":this.token}).post("customers/stripe-setup-intent",t)}}]);var n,a,s,c}(xr);at("resource","Customer",va);var pa=Array.isArray,ya=new Pt({create:void 0,findAll:void 0,query:void 0,queryRecord:void 0,add:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/").concat(e),v(v({},r),{},{quantity:n}),i).then(this.afterFetch.bind(this))},update:function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return this.adapter.put("".concat(this.namespace,"/").concat(t,"/").concat(e),v(v({},r),{},{quantity:n}),i).then(this.afterFetch.bind(this))},remove:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete("".concat(this.namespace,"/").concat(t,"/").concat(e),{},n).then(this.afterFetch.bind(this))},empty:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.put("".concat(this.namespace,"/").concat(t,"/empty"),{},e).then(this.afterFetch.bind(this))},retrieve:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return this.findRecord(t)}}),ga=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return o(this,e),i(this,e,[t,n,"cart",v({actions:ya},r)])}return h(e,t),u(e,[{key:"add",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return t instanceof ha&&(t=t.id),this.store.add(this.id,t,e,n,r)}},{key:"update",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.store.update(this.id,t,e,n,r)}},{key:"remove",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.remove(this.id,t,e)}},{key:"empty",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.store.empty(this.id,t)}},{key:"delete",value:function(){return this.destroy()}},{key:"refresh",value:function(){return this.store.retrieve(this.id)}},{key:"subtotal",value:function(){var t=0;return this.contents().forEach((function(e){t+=e.subtotal})),t}},{key:"contents",value:function(){return this.getAttribute("items",[])}},{key:"hasProduct",value:function(t){return-1!==this.contents().findIndex((function(e){return e.product_id===t}))}},{key:"isEmpty",get:function(){var t=this.contents();return!pa(t)||0===t.length}},{key:"isNotEmpty",get:function(){return!this.isEmpty}}])}(xr);at("resource","Cart",ga);var ma=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return o(this,e),i(this,e,[t,n,"network",r])}return h(e,t),u(e,[{key:"getTags",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("tags",t)}},{key:"getResourceCollection",value:(y=r(p().mark((function t(e,n){var r,i,o=this,a=arguments;return p().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=a.length>2&&void 0!==a[2]?a[2]:{},t.next=3,this.adapter.get(e,r);case 3:return i=t.sent,t.abrupt("return",new kt(i.map((function(t){return new n(t,o.adapter)}))));case 5:case"end":return t.stop()}}),t,this)}))),function(t,e){return y.apply(this,arguments)})},{key:"getStores",value:(d=r(p().mark((function t(){var e,n=arguments;return p().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=n.length>0&&void 0!==n[0]?n[0]:{},t.abrupt("return",this.getResourceCollection("stores",la,e));case 2:case"end":return t.stop()}}),t,this)}))),function(){return d.apply(this,arguments)})},{key:"getStoreLocations",value:(f=r(p().mark((function t(){var e,n=arguments;return p().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=n.length>0&&void 0!==n[0]?n[0]:{},t.abrupt("return",this.getResourceCollection("store-locations",sa,e));case 2:case"end":return t.stop()}}),t,this)}))),function(){return f.apply(this,arguments)})},{key:"getCategories",value:(l=r(p().mark((function t(){var e,n=arguments;return p().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=n.length>0&&void 0!==n[0]?n[0]:{},t.abrupt("return",this.getResourceCollection("categories",fa,e));case 2:case"end":return t.stop()}}),t,this)}))),function(){return l.apply(this,arguments)})},{key:"search",value:(c=r(p().mark((function t(e){var n,r=arguments;return p().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=r.length>1&&void 0!==r[1]?r[1]:{},t.abrupt("return",this.getResourceCollection("search",ha,v({query:e,with_store:!0},n)));case 2:case"end":return t.stop()}}),t,this)}))),function(t){return c.apply(this,arguments)})},{key:"lookupStore",value:(s=r(p().mark((function t(e){var n;return p().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.adapter.get("lookup/".concat(e));case 2:return n=t.sent,t.abrupt("return",new la(n,this.adapter));case 4:case"end":return t.stop()}}),t,this)}))),function(t){return s.apply(this,arguments)})},{key:"getReviews",value:(a=r(p().mark((function t(e){var n,r=arguments;return p().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=r.length>1&&void 0!==r[1]?r[1]:{},t.abrupt("return",this.getResourceCollection("reviews",Er,v({store:e},n)));case 2:case"end":return t.stop()}}),t,this)}))),function(t){return a.apply(this,arguments)})},{key:"getPaymentGateways",value:(n=r(p().mark((function t(){var e,n=arguments;return p().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=n.length>0&&void 0!==n[0]?n[0]:{},t.abrupt("return",this.getResourceCollection("gateways",ca,e));case 2:case"end":return t.stop()}}),t,this)}))),function(){return n.apply(this,arguments)})}]);var n,a,s,c,l,f,d,y}(xr);at("resource","Network",ma);var wa=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};o(this,e);var a=t,u=n;return t instanceof te&&(a={},u=t),i(this,e,[a,u,"service-quote",r])}return h(e,t),u(e,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new mr(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"formattedAmount",get:function(){var t=this.getAttributes(["amount","currency"]),e=t.amount,n=t.currency;return br(e)||br(n)?null:wr(e/100,n)}},{key:"fromCart",value:(s=r(p().mark((function t(){var e=arguments;return p().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this.fetchServiceQuotesFromCart.apply(this,e));case 1:case"end":return t.stop()}}),t,this)}))),function(){return s.apply(this,arguments)})},{key:"fetchServiceQuotesFromCart",value:(a=r(p().mark((function t(n,r,i){var o,a,u,s,c,l,h=this,f=arguments;return p().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return s=f.length>3&&void 0!==f[3]?f[3]:"storefront",c=f.length>4&&void 0!==f[4]&&f[4],null!==(o=n)&&void 0!==o&&o.id&&(n=n.id),null!==(a=r)&&void 0!==a&&a.id&&(r=r.id),null!==(u=i)&&void 0!==u&&u.id&&(i=i.id),t.prev=5,t.next=8,this.adapter.get("service-quotes/from-cart",{origin:n,destination:r,cart:i,config:s,all:c});case 8:if(l=t.sent,!kr(l)){t.next=11;break}return t.abrupt("return",new kt(l.map((function(t){return new e(t,h.adapter)}))));case 11:return t.abrupt("return",new e(l,this.adapter));case 14:throw t.prev=14,t.t0=t.catch(5),console.error("Error fetching service quotes:",t.t0),t.t0;case 18:case"end":return t.stop()}}),t,this,[[5,14]])}))),function(t,e,n){return a.apply(this,arguments)})}],[{key:"getFromCart",value:(n=r(p().mark((function t(n,r,i,o){var a,u,s,c=arguments;return p().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=c.length>4&&void 0!==c[4]?c[4]:"storefront",u=c.length>5&&void 0!==c[5]&&c[5],s=new e(n),t.abrupt("return",s.fetchServiceQuotesFromCart(r,i,o,a,u));case 4:case"end":return t.stop()}}),t)}))),function(t,e,r,i){return n.apply(this,arguments)})}]);var n,a,s}(Vt);at("resource","DeliveryServiceQuote",wa);var ba=new Pt({create:void 0,findAll:void 0,query:void 0,queryRecord:void 0,initialize:function(t,e,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return Dt(t)&&(t=t.id),Dt(e)&&(e=e.id),Dt(n)&&(n=n.id),Dt(r)&&(r=r.getAttribute("code")),this.adapter.get("".concat(this.namespace,"/before"),v(v({},i),{},{customer:t,cart:e,serviceQuote:n,gateway:r}),o)},captureOrder:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/capture"),v({token:t},e),n).then((function(t){return new Nt(t)}))},createStripeSetupIntent:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return Dt(t)&&(t=t.id),this.adapter.post("".concat(this.namespace,"/stripe-setup-intent"),v({customer:t},e),n)},updateStripePaymentIntent:function(t,e,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return Dt(e)&&(e=e.id),Dt(n)&&(n=n.id),Dt(r)&&(r=r.id),this.adapter.put("".concat(this.namespace,"/stripe-update-payment-intent"),v({paymentIntent:t,customer:e,cart:n,serviceQuote:r},i),o)}}),ka=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return o(this,e),i(this,e,[t,n,"checkout",v({actions:ba},r)])}return h(e,t),u(e,[{key:"initialize",value:function(){var t;return(t=this.store).initialize.apply(t,arguments)}},{key:"captureOrder",value:function(){var t;return(t=this.store).captureOrder.apply(t,arguments)}}])}(xr);at("resource","Checkout",ka);var xa=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return o(this,e),i(this,e,[t,n,"food-truck",r])}return h(e,t),u(e)}(xr);at("resource","FoodTruck",xa);var Aa=function(){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(o(this,t),this.version=r.version||"v1",this.options={version:this.version,host:r.host||"https://api.fleetbase.io",namespace:r.namespace||"storefront/".concat(this.version),publicKey:e,debug:i},!("string"==typeof(n=e)&&n.length>30&&(n.startsWith("store_")||n.startsWith("network_"))))throw new Error("⚠️ Invalid Storefront key given to Storefront SDK");this.adapter=r.adapter||Et(this.options),this.initializeStores()}return u(t,[{key:"initializeStores",value:function(){return this.products=new mr("product",this.adapter),this.categories=new mr("category",this.adapter),this.foodTrucks=new mr("food-truck",this.adapter),this.reviews=new mr("review",this.adapter).extendActions(Ar),this.customers=new mr("customer",this.adapter).extendActions(da),this.cart=new mr("cart",this.adapter).extendActions(ya),this.checkout=new mr("checkout",this.adapter).extendActions(ba),this}},{key:"about",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("about").then((function(n){return e.resource?t.hydrateOwner(n):n}))}},{key:"getOwner",value:function(){return this.about({resource:!0})}},{key:"lookup",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.get("lookup/".concat(t)).then((function(t){return n.resource?e.hydrateOwner(t):t}))}},{key:"lookupResource",value:function(t){return this.lookup(t,{resource:!0})}},{key:"search",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.get("search",v({query:t},n)).then((function(t){return new kt(t.map((function(t){return new ha(t,e.adapter)})))}))}},{key:"hydrateOwner",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return!0===(null==t?void 0:t.is_network)?new ma(t,this.adapter):new la(t,this.adapter)}},{key:"setAdapter",value:function(t){return this.adapter=t,this.initializeStores()}},{key:"getAdapter",value:function(){return this.adapter}}],[{key:"newInstance",value:function(){return function(t,e,n){if(f())return Reflect.construct.apply(null,arguments);var r=[null];return r.push.apply(r,e),new(t.bind.apply(t,r))}(t,Array.prototype.slice.call(arguments))}}])}();t.Cart=ga,t.Category=fa,t.Checkout=ka,t.Customer=va,t.DeliveryServiceQuote=wa,t.FoodTruck=xa,t.Network=ma,t.PaymentGateway=ca,t.Product=ha,t.Review=Er,t.Store=la,t.StoreHour=ua,t.StoreLocation=sa,t.default=Aa,t.lookup=st})); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).FleetbaseStorefront={})}(this,(function(t){"use strict";function e(t,e){this.v=t,this.k=e}function r(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw o}}}}function y(t,e,r){return(e=P(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function m(t){return m=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},m(t)}function w(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&O(t,e)}function b(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(b=function(){return!!t})()}function k(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}function x(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function A(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function E(t){for(var e=1;e=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),c=n.call(a,"finallyLoc");if(u&&c){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),j(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;j(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:D(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}function O(t,e){return O=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},O(t,e)}function T(t,e){return n(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,i,o,a,s=[],u=!0,c=!1;try{if(o=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=o.call(r)).done)&&(s.push(n.value),s.length!==e);u=!0);}catch(t){c=!0,i=t}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw i}}return s}}(t,e)||C(t,e)||x()}function R(t){return function(t){if(Array.isArray(t))return r(t)}(t)||k(t)||C(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function P(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,e);if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"==typeof e?e:e+""}function j(t){return j="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},j(t)}function C(t,e){if(t){if("string"==typeof t)return r(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(t,e):void 0}}function D(t){return function(){return new L(t.apply(this,arguments))}}function L(t){var r,n;function i(r,n){try{var a=t[r](n),s=a.value,u=s instanceof e;Promise.resolve(u?s.v:s).then((function(e){if(u){var n="return"===r?"return":"next";if(!s.k||e.done)return i(n,e);e=t[n](e).value}o(a.done?"return":"normal",e)}),(function(t){i("throw",t)}))}catch(t){o("throw",t)}}function o(t,e){switch(t){case"return":r.resolve({value:e,done:!0});break;case"throw":r.reject(e);break;default:r.resolve({value:e,done:!1})}(r=r.next)?i(r.key,r.arg):n=null}this._invoke=function(t,e){return new Promise((function(o,a){var s={key:t,arg:e,resolve:o,reject:a,next:null};n?n=n.next=s:(r=n=s,i(t,e))}))},"function"!=typeof t.return&&(this.return=void 0)}function F(t){var e="function"==typeof Map?new Map:void 0;return F=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(e){return"function"==typeof t}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,r)}function r(){return f(t,arguments,m(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),O(r,t)},F(t)}L.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},L.prototype.next=function(t){return this._invoke("next",t)},L.prototype.throw=function(t){return this._invoke("throw",t)},L.prototype.return=function(t){return this._invoke("return",t)};var N=function(){function t(e){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];d(this,t),y(this,"uncountableWords",["equipment","information","rice","money","species","series","fish","sheep","moose","deer","news"]),y(this,"pluralRules",[[new RegExp("(m)an$","gi"),"$1en"],[new RegExp("(pe)rson$","gi"),"$1ople"],[new RegExp("(child)$","gi"),"$1ren"],[new RegExp("^(ox)$","gi"),"$1en"],[new RegExp("(ax|test)is$","gi"),"$1es"],[new RegExp("(octop|vir)us$","gi"),"$1i"],[new RegExp("(alias|status)$","gi"),"$1es"],[new RegExp("(bu)s$","gi"),"$1ses"],[new RegExp("(buffal|tomat|potat)o$","gi"),"$1oes"],[new RegExp("([ti])um$","gi"),"$1a"],[new RegExp("sis$","gi"),"ses"],[new RegExp("(?:([^f])fe|([lr])f)$","gi"),"$1$2ves"],[new RegExp("(hive)$","gi"),"$1s"],[new RegExp("([^aeiouy]|qu)y$","gi"),"$1ies"],[new RegExp("(x|ch|ss|sh)$","gi"),"$1es"],[new RegExp("(matr|vert|ind)ix|ex$","gi"),"$1ices"],[new RegExp("([m|l])ouse$","gi"),"$1ice"],[new RegExp("(quiz)$","gi"),"$1zes"],[new RegExp("s$","gi"),"s"],[new RegExp("$","gi"),"s"]]),y(this,"singularRules",[[new RegExp("(m)en$","gi"),"$1an"],[new RegExp("(pe)ople$","gi"),"$1rson"],[new RegExp("(child)ren$","gi"),"$1"],[new RegExp("([ti])a$","gi"),"$1um"],[new RegExp("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$","gi"),"$1$2sis"],[new RegExp("(hive)s$","gi"),"$1"],[new RegExp("(tive)s$","gi"),"$1"],[new RegExp("(curve)s$","gi"),"$1"],[new RegExp("([lr])ves$","gi"),"$1f"],[new RegExp("([^fo])ves$","gi"),"$1fe"],[new RegExp("([^aeiouy]|qu)ies$","gi"),"$1y"],[new RegExp("(s)eries$","gi"),"$1eries"],[new RegExp("(m)ovies$","gi"),"$1ovie"],[new RegExp("(x|ch|ss|sh)es$","gi"),"$1"],[new RegExp("([m|l])ice$","gi"),"$1ouse"],[new RegExp("(bus)es$","gi"),"$1"],[new RegExp("(o)es$","gi"),"$1"],[new RegExp("(shoe)s$","gi"),"$1"],[new RegExp("(cris|ax|test)es$","gi"),"$1is"],[new RegExp("(octop|vir)i$","gi"),"$1us"],[new RegExp("(alias|status)es$","gi"),"$1"],[new RegExp("^(ox)en","gi"),"$1"],[new RegExp("(vert|ind)ices$","gi"),"$1ex"],[new RegExp("(matr)ices$","gi"),"$1ix"],[new RegExp("(quiz)zes$","gi"),"$1"],[new RegExp("s$","gi"),""]]),y(this,"nonTitlecasedWords",["and","or","nor","a","an","the","so","but","to","of","at","by","from","into","on","onto","off","out","in","over","with","for"]),y(this,"idSuffix",new RegExp("(_ids|_id)$","g")),y(this,"underbar",new RegExp("_","g")),y(this,"spaceOrUnderbar",new RegExp("[ _]","g")),y(this,"uppercase",new RegExp("([A-Z])","g")),y(this,"underbarPrefix",new RegExp("^_")),this.str=e,this.chain=r}return g(t,[{key:"get",value:function(){return this.str}},{key:"applyRules",value:function(t,e,r,n){if(n)t=n;else if(!(r.indexOf(t.toLowerCase())>-1))for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:null;return t=t||this.str,this.applyRules(t,this.pluralRules,this.uncountableWords,e)}},{key:"singularize",value:function(t,e){return t=t||this.str,this.applyRules(t,this.singularRules,this.uncountableWords,e)}},{key:"camelize",value:function(t,e){for(var r=(t=t||this.str).split("/"),n=0;n1&&void 0!==arguments[1]&&arguments[1];return t=t||this.str,t=this.underscore(this.demodulize(t))+(e?"":"_")+"id",this.str=t,!0===this.chain?this:t}},{key:"ordinalize",value:function(t){for(var e=(t=t||this.str).split(" "),r=0;r2?i-2:0),a=2;a2?r-2:0),i=2;i1?e-1:0),n=1;n2?r-2:0),i=2;i3&&void 0!==arguments[3]?arguments[3]:[];if(U(t))if(n.length<=W)t.splice.apply(t,[e,r].concat(R(n)));else{t.splice(e,r);for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:0,n=t.length,i=r;i2&&void 0!==arguments[2]?arguments[2]:0,n=arguments.length>3?arguments[3]:void 0,i=t.length;return r<0&&(r+=i),K(t,n&&e!=e?function(t){return t!=t}:function(t){return t===e},r)}function Z(t,e,r){return Y(t,e,0,[r]),r}function tt(){return f(et,Array.prototype.slice.call(arguments))}var et=function(){function t(){return d(this,t),i(U(arguments[0])?l(this,t,R(arguments[0])):l(this,t,arguments))}return w(t,F(Array)),g(t,[{key:"notEmpty",get:function(){return this.length>0}},{key:"empty",get:function(){return 0===this.length}},{key:"first",get:function(){return J(this,0)}},{key:"last",get:function(){return J(this,this.length-1)}},{key:"replace",value:function(t,e){return Y(this,t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:[]),this}},{key:"objectsAt",value:function(t){var e=this;return t.map((function(t){return J(e,t)}))}},{key:"objectAt",value:function(t){return J(this,t)}},{key:"indexOf",value:function(t,e){return V(this,t,e,!1)}},{key:"lastIndexOf",value:function(t,e){var r=this.length;(void 0===e||e>=r)&&(e=r-1),e<0&&(e+=r);for(var n=e;n>=0;n--)if(J(this,n)===t)return n;return-1}},{key:"includes",value:function(t,e){return-1!==V(this,t,e,!0)}},{key:"findBy",value:function(){return-1===(t=K(this,X.apply(void 0,arguments).bind(undefined),0))?void 0:J(this,t);var t}},{key:"findIndexBy",value:function(){return K(this,X.apply(void 0,arguments))}},{key:"isEvery",value:function(){return t=X.apply(void 0,arguments),e=t.bind(undefined),-1===K(this,(function(t,r,n){return!e(t,r,n)}),0);var t,e}},{key:"isAny",value:function(){return-1!==K(this,X.apply(void 0,arguments).bind(undefined),0)}},{key:"invoke",value:function(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),n=1;n1&&void 0!==arguments[1]?arguments[1]:Q,r=[],n=new Set,i="function"==typeof e?e:function(t){return get(t,e)};return t.forEach((function(t){var e=i(t);n.has(e)||(n.add(e),r.push(t))})),r}(this,t)}},{key:"without",value:function(t){if(!this.includes(t))return this;var e=t==t?function(e){return e!==t}:function(t){return t==t};return this.filter(e)}},{key:"clear",value:function(){var t=this.length;return 0===t||this.replace(0,t,[]),this}},{key:"insertAt",value:function(t,e){return Z(this,t,e),this}},{key:"replaceAt",value:function(t,e){return this.replace(t,1,[e])}},{key:"removeAt",value:function(t,e){return function(t,e){return Y(t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,[]),t}(this,t,e)}},{key:"pushObject",value:function(t){return this.insertAt(this.length,t)}},{key:"pushObjects",value:function(t){return this.replace(this.length,0,t),this}},{key:"popObject",value:function(){var t=this.length;if(0===t)return null;var e=J(this,t-1);return this.removeAt(t-1,1),e}},{key:"shiftObject",value:function(){if(0===this.length)return null;var t=J(this,0);return this.removeAt(0),t}},{key:"unshiftObject",value:function(t){return Z(this,0,t)}},{key:"unshiftObjects",value:function(t){return this.replace(0,0,t),this}},{key:"reverseObjects",value:function(){var t=this.length;if(0===t)return this;var e=this.toArray().reverse();return this.replace(0,t,e),this}},{key:"setObjects",value:function(t){if(0===t.length)return this.clear();var e=this.length;return this.replace(0,e,t),this}},{key:"removeObject",value:function(t){for(var e=this.length||0;--e>=0;)J(this,e)===t&&this.removeAt(e);return this}},{key:"removeObjects",value:function(t){for(var e=t.length-1;e>=0;e--)this.removeObject(t[e]);return this}},{key:"addObject",value:function(t){return this.includes(t)||this.pushObject(t),this}},{key:"addObjects",value:function(t){var e=this;return t.forEach((function(t){return e.addObject(t)})),this}}])}();function rt(t){var e=null==t;if(e)return e;if("number"==typeof t.size)return!t.size;var r=j(t);if("object"===r){var n=t.size;if("number"==typeof n)return!n}if("number"==typeof t.length&&"function"!==r)return!t.length;if("object"===r){var i=t.length;if("number"==typeof i)return!i}return!1}function nt(){var t,e,r;return!("undefined"==typeof process||"object"!==j(null===(t=process)||void 0===t?void 0:t.env)&&-1===(null===(e=process.release)||void 0===e||null===(e=e.name)||void 0===e?void 0:e.search(/node|io.js/))||"undefined"!=typeof window&&"ReactNative"!==(null===(r=window)||void 0===r||null===(r=r.navigator)||void 0===r?void 0:r.product))}function it(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return nt()?I("adapter","NodeAdapter",t):I("adapter","BrowserAdapter",t)}g((function t(e){d(this,t),this.place=e,this.geometry=null==e?void 0:e.geometry,this.components=this.parseComponents(),this.attributes=this.parseProperties()}),[{key:"parse",value:function(){this.parseComponents(),this.parseProperties()}},{key:"parseComponents",value:function(){var t;return((null===(t=this.place)||void 0===t?void 0:t.address_components)||[]).reduce((function(t,e){return e.types.forEach((function(r){t[r]=e})),t}),{})}},{key:"parseProperties",value:function(){var t,e={streetNumber:this.get("street_number"),streetName:this.get("route"),coordinates:null!==(t=this.geometry)&&void 0!==t&&t.location?Object.values(this.geometry.location):[0,0],city:this.or(["locality","sublocality","sublocality_level_1","neighborhood","administrative_area_level_3","administrative_area_level_2"]),county:this.get("administrative_area_level_2"),stateShort:this.get("administrative_area_level_1",!0),stateLong:this.get("administrative_area_level_1"),countryShort:this.get("country",!0),country:this.get("country",!0),countryLong:this.get("country"),postalCode:this.get("postal_code")};return e.address=[e.streetNumber,e.streetName].filter(Boolean).join(" "),e}},{key:"all",value:function(){return this.attributes}},{key:"or",value:function(){var t,e=v(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]);try{for(e.s();!(t=e.n()).done;){var r=t.value;if(U(r)){var n=r[0],i=r[1];if(this.has(n))return this.get(n,i)}else if(this.has(r))return this.get(r)}}catch(t){e.e(t)}finally{e.f()}return null}},{key:"has",value:function(t){return t in this.components}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t in this.components?e?this.components[t].short_name:this.components[t].long_name:null}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.attributes=E(E({},this.attributes),t),this}},{key:"setAttribute",value:function(t,e){return this.attributes[t]=e,this}},{key:"getAttribute",value:function(t){return this.attributes[t]||null}}]);var ot=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;d(this,t),this.type="Point",this.coordinates=[r,e]}return g(t,[{key:"latitude",get:function(){return this.coordinates[1]}},{key:"longitude",get:function(){return this.coordinates[0]}},{key:"lat",value:function(){return this.latitude}},{key:"lng",value:function(){return this.longitude}},{key:"serialize",value:function(){return{type:"Point",coorindates:[this.lat(),this.lng()]}}},{key:"toJson",value:function(){return this.serialize()}},{key:"toString",value:function(){return"(".concat(this.latitude,", ").concat(this.longitude,")")}}],[{key:"fromGeoJson",value:function(e){var r=T(e.coordinates,2),n=r[0];return new t(r[1],n)}}])}();function at(t,e){var r=t();return Array.isArray(r)||"object"===j(r)?st(r,e):null}function st(t,e){var r,n=t,i=j(t),o="object"===i,a="function"===i,s=Array.isArray(t),u="string"===j(e)&&e.includes(".")?e.split("."):[e];if(s||o){for(var c=0;c1&&void 0!==arguments[1]?arguments[1]:[];if(t.actions=U(e)?e:[e],!U(e))return e instanceof ht&&e.extend(t),t;var r,n=v(e);try{for(n.s();!(r=n.n()).done;){var i=r.value;t.extendActions(i)}}catch(t){n.e(t)}finally{n.f()}}var ht=g((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;d(this,t),this.actions=e,this.bind=r}),[{key:"extend",value:function(){var t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||this.bind;if(!t)return this;if(null!=this&&this.actions&&"object"===j(this.actions))for(var e in this.actions){var r=this.actions[e];ut(t,e,"function"==typeof r?r.bind(t):r)}return this}}]);function lt(t){return t instanceof dt}var dt=g((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};d(this,t),this.attributes=e,this.dirtyAttributes={},this.changes={},this.isLoading=!1,this.isSaving=!1,this.isDestroying=!1,this.isReloading=!1,this.resource=n,this.options=i,this.version=i.version||"v1",this.setAdapter(r)}),[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=function(){return H.apply(void 0,["store","Store"].concat(Array.prototype.slice.call(arguments)))}(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"id",get:function(){return this.getAttribute("id")}},{key:"create",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=this.mergeAttributes(e);return this.setFlags(["isLoading","isSaving"]),this.store.create(r).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"update",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setFlags(["isLoading","isSaving"]),this.store.update(this.attributes.id,e).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"destroy",value:function(){var t=this;return this.setFlags(["isLoading","isDestroying"]),this.store.destroy(this.attributes.id).then((function(e){return t.setFlags(["isLoading","isDestroying"],!1),e}))}},{key:"reload",value:function(){var t=this;return this.setFlags(["isLoading","isReloading"]),this.store.findRecord(this.attributes.id).then((function(e){return t.reset(),e}))}},{key:"setFlags",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=["isLoading","isSaving","isReloading","isDestroying"],n=0;n0&&void 0!==arguments[0]?arguments[0]:{},e=this.getAttributes();return rt(this.id)?this.create(e):!0===t.onlyDirty?this.savedirty():this.update(e)}},{key:"saveDirty",value:function(){for(var t=Object.keys(this.dirtyAttributes),e={},r=0;r0}},{key:"mutate",value:function(t,e){this.attributes[t]=e}},{key:"setAttribute",value:function(t){var e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null===r&&"object"===j(t))return this.setAttributes(t);var n=null!==(e=null==this?void 0:this.attributes[t])&&void 0!==e?e:null;return ut(this.attributes,t,r),ut(this.dirtyAttributes,t,n),U(null==this?void 0:this.changes[t])||(this.changes[t]=[]),this.changes[t].push({property:t,previousValue:n,value:r,changedAt:new Date}),this}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var e in t)this.setAttribute(e,t[e]);return this}},{key:"getAttribute",value:function(t){var e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=st(null!==(e=null==this?void 0:this.attributes)&&void 0!==e?e:{},t);return void 0===n?r:n}},{key:"hasAttribute",value:function(t){if(U(t)){var e,r=t,n=Object.keys(null!==(e=this.attributes)&&void 0!==e?e:{});return r.every((function(t){return n.includes(t)}))}return!(null==this||!this.attributes)&&t in this.attributes}},{key:"hasAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.hasAttribute(t)}},{key:"isAttributeFilled",value:function(t){var e=this;return U(t)?this.hasAttribute(t)&&t.every((function(t){return!rt(e.getAttribute(t))})):this.hasAttribute(t)&&!rt(this.getAttribute(t))}},{key:"getAttributes",value:function(t){var e={};if(null==t)return this.getAttributes(Object.keys(this.attributes));if("string"==typeof t)return this.getAttribute(Array.prototype.slice.call(arguments));if(!U(t))throw new Error("No attribute properties provided!");var r,n=v(t);try{for(n.s();!(r=n.n()).done;){var i,o,a=r.value;if("string"==typeof a){var s=this.getAttribute(a);"object"!==j(null===(i=s)||void 0===i?void 0:i.attributes)||U(null===(o=s)||void 0===o?void 0:o.attributes)||(s=s.attributes),e[a]=s}}}catch(t){n.e(t)}finally{n.f()}return e}},{key:"serialize",value:function(){return this.getAttributes()}},{key:"mergeAttributes",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=null!==(t=null==this?void 0:this.attributes)&&void 0!==t?t:{};return this.attributes=E(E({},r),e),this.attributes}},{key:"syncAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attributes=t}}]);z("resource","Resource",dt);var ft=function(){return g((function t(e,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};d(this,t),this.resource=e,this.adapter=r||it(),this.namespace=q(e),this.storage=tt(),this.options=n,this.extendActions(n.actions)}),[{key:"extendActions",value:function(){return ct(this,arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])}},{key:"deposit",value:function(t){return t}},{key:"serialize",value:function(t){return I("resource",M(this.resource),t,this.adapter)}},{key:"afterFetch",value:function(t){return function(t,e){if("function"==typeof t.options.onAfterFetch&&t.options.onAfterFetch(e),U(e)){var r,n=[],i=v(e);try{for(i.s();!(r=i.n()).done;){var o=r.value;n.push(t.afterFetch(o))}}catch(t){i.e(t)}finally{i.f()}return tt.apply(void 0,n)}var a=t.serialize(e);return t.deposit(a)}(this,t)}},{key:"create",value:(a=c(S().mark((function t(){var e,r,n,i=arguments;return S().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},r=i.length>1&&void 0!==i[1]?i[1]:{},t.next=4,this.adapter.post("".concat(this.namespace),e,r);case 4:return n=t.sent,t.abrupt("return",this.afterFetch(n));case 6:case"end":return t.stop()}}),t,this)}))),function(){return a.apply(this,arguments)})},{key:"update",value:(o=c(S().mark((function t(e){var r,n,i,o=arguments;return S().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=o.length>1&&void 0!==o[1]?o[1]:{},n=o.length>2&&void 0!==o[2]?o[2]:{},t.next=4,this.adapter.put("".concat(this.namespace,"/").concat(e),r,n);case 4:return i=t.sent,t.abrupt("return",this.afterFetch(i));case 6:case"end":return t.stop()}}),t,this)}))),function(t){return o.apply(this,arguments)})},{key:"findRecord",value:(i=c(S().mark((function t(e){var r,n,i=arguments;return S().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=i.length>1&&void 0!==i[1]?i[1]:{},t.next=3,this.adapter.get("".concat(this.namespace,"/").concat(e),{},r);case 3:return n=t.sent,t.abrupt("return",this.afterFetch(n));case 5:case"end":return t.stop()}}),t,this)}))),function(t){return i.apply(this,arguments)})},{key:"findAll",value:(n=c(S().mark((function t(){var e,r,n=arguments;return S().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=n.length>0&&void 0!==n[0]?n[0]:{},t.next=3,this.adapter.get("".concat(this.namespace),{},e);case 3:return r=t.sent,t.abrupt("return",this.afterFetch(r));case 5:case"end":return t.stop()}}),t,this)}))),function(){return n.apply(this,arguments)})},{key:"query",value:(r=c(S().mark((function t(){var e,r,n,i=arguments;return S().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},r=i.length>1&&void 0!==i[1]?i[1]:{},t.next=4,this.adapter.get("".concat(this.namespace),e,r);case 4:return n=t.sent,t.abrupt("return",this.afterFetch(n));case 6:case"end":return t.stop()}}),t,this)}))),function(){return r.apply(this,arguments)})},{key:"queryRecord",value:(e=c(S().mark((function t(){var e,r,n,i=arguments;return S().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=i.length>1&&void 0!==i[1]?i[1]:{},(e=i.length>0&&void 0!==i[0]?i[0]:{}).single=!0,t.next=5,this.adapter.get("".concat(this.namespace),e,r);case 5:return n=t.sent,t.abrupt("return",this.afterFetch(n));case 7:case"end":return t.stop()}}),t,this)}))),function(){return e.apply(this,arguments)})},{key:"destroy",value:(t=c(S().mark((function t(e){var r,n,i,o=arguments;return S().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=o.length>1&&void 0!==o[1]?o[1]:{},n=lt(e)?e.getAttribute("id"):e,t.next=4,this.adapter.delete("".concat(this.namespace,"/").concat(n),{},r);case 4:return i=t.sent,t.abrupt("return",this.afterFetch(i));case 6:case"end":return t.stop()}}),t,this)}))),function(e){return t.apply(this,arguments)})}]);var t,e,r,n,i,o,a}();z("store","Store",ft);var pt=new ht({getDistanceAndTime:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/distance-and-time"),e,r)},getNextActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/next-activity"),e,r)},dispatch:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/dispatch"),e,r).then(this.afterFetch.bind(this))},start:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/start"),e,r).then(this.afterFetch.bind(this))},updateActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/update-activity"),e,r).then(this.afterFetch.bind(this))},setDestination:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return lt(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/set-destination/").concat(e),r,n).then(this.afterFetch.bind(this))},captureQrCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return lt(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-qr").concat(e?"/"+e:""),r,n)},captureSignature:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return lt(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-signature").concat(e?"/"+e:""),r,n)},complete:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/complete"),e,r).then(this.afterFetch.bind(this))},cancel:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete("".concat(this.namespace,"/").concat(t,"/cancel"),e,r).then(this.afterFetch.bind(this))}}),gt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return d(this,t),l(this,t,[e,r,"order",E({actions:pt},n)])}return w(t,dt),g(t,[{key:"getDistanceAndTime",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getDistanceAndTime(this.id,t,e)}},{key:"dispatch",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.dispatch(this.id,t,e)}},{key:"start",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.start(this.id,t,e)}},{key:"setDestination",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.setDestination(this.id,t,e,r)}},{key:"captureQrCode",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureQrCode(this.id,t,e,r)}},{key:"captureSignature",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureSignature(this.id,t,e,r)}},{key:"getNextActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getNextActivity(this.id,t,e)}},{key:"updateActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.updateActivity(this.id,t,e)}},{key:"cancel",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.cancel(this.id,t,e)}},{key:"complete",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.complete(this.id,t,e)}},{key:"isDispatched",get:function(){return null!==this.getAttribute("dispatched_at")}},{key:"isNotDispatched",get:function(){return null==this.getAttribute("dispatched_at")}},{key:"isStarted",get:function(){return null!==this.getAttribute("started_at")}},{key:"isNotStarted",get:function(){return null==this.getAttribute("started_at")}},{key:"isCompleted",get:function(){return"completed"==this.getAttribute("status")}},{key:"isCanceled",get:function(){return"canceled"==this.getAttribute("status")}},{key:"isEnroute",get:function(){return"driver_enroute"==this.getAttribute("status")||"enroute"===this.getAttribute("status")}},{key:"isInProgress",get:function(){return this.isStarted&&!this.isCanceled&&!this.isCompleted}},{key:"scheduledAt",get:function(){return this.isAttributeFilled("scheduled_at")?new Date(this.getAttribute("scheduled_at")):null}},{key:"startedAt",get:function(){return this.isAttributeFilled("started_at")?new Date(this.getAttribute("started_at")):null}},{key:"dispatchedAt",get:function(){return this.isAttributeFilled("dispatched_at")?new Date(this.getAttribute("dispatched_at")):null}},{key:"status",get:function(){return this.getAttribute("status")}}])}();z("resource","Order",gt);var vt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return d(this,t),l(this,t,[e,r,"payload",n])}return w(t,dt),g(t,[{key:"attach",value:function(t){}},{key:"entities",get:function(){var t=this;return tt(this.entities.map((function(e){return B("Entity",e,t.adapter)})))}},{key:"dropoff",get:function(){return this.dropoff?B("Place",this.dropoff,this.adapter):null}},{key:"pickup",get:function(){return this.pickup?B("Place",this.pickup,this.adapter):null}},{key:"waypoints",get:function(){var t=this;return tt(this.waypoints.map((function(e){return B("Waypoint",e,t.adapter)})))}}])}();z("resource","Payload",vt);var yt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return d(this,t),l(this,t,[e,r,"entity",n])}return w(t,dt),g(t)}();z("resource","Entity",yt);var mt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return d(this,t),l(this,t,[e,r,"place",n])}return w(t,dt),g(t,[{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new ot))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new ot))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"setOwner",value:function(t){return lt(t)&&this.setAttribute("owner",t.id),"string"==typeof t&&this.setAttribute("owner",t),this}}],[{key:"fromGoogleAddress",value:function(e,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=T(e.getAttribute("coordinates"),2),o=i[0],a=i[1];return new t({name:null,address:e.getAttribute("address"),location:new ot(o,a),street1:e.getAttribute("address"),street2:null,city:e.getAttribute("city"),province:e.getAttribute("stateLong"),postal_code:e.getAttribute("postalCode"),neighborhood:e.get("neighborhood"),district:e.getAttribute("county"),building:e.get("building"),country:e.getAttribute("countryShort"),phone:null,security_access_code:null},r,n)}}])}();z("resource","Place",mt);var wt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return d(this,t),l(this,t,[e,r,"waypoint",n])}return w(t,mt),g(t)}();z("resource","Waypoint",wt);var bt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return d(this,t),l(this,t,[e,r,"tracking-status",n])}return w(t,dt),g(t)}();z("resource","TrackingStatus",bt);var kt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return d(this,t),l(this,t,[e,r,"vehicle",n])}return w(t,dt),g(t)}();z("resource","Vehicle",kt);var xt=new ht({current:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.get("".concat(this.namespace,"/current"),t,e)}}),At=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return d(this,t),l(this,t,[e,r,"organization",E({actions:xt},n)])}return w(t,dt),g(t)}();z("resource","Organization",At);var Et=function(t,e){return U(t)?t.map((function(t){return new At(t,e)})):new At(t,e)},St=new ht({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(function(){return/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"")}(t))return this.adapter.post("drivers/login-with-sms",{phone:t});if(!e)throw new Error("Login requires password!");return this.adapter.post("drivers/login",E({identity:t,password:e},r)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/verify-code",E({identity:t,code:e},r)).then(this.afterFetch.bind(this))},track:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/track"),e,r).then(this.afterFetch.bind(this))},listOrganizations:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("drivers/".concat(t,"/organizations"),r,n).then((function(t){return Et(t,e.adapter)}))},switchOrganization:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/switch-organization"),r,n).then((function(t){return Et(t,e.adapter)}))},currentOrganization:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("drivers/".concat(t,"/current-organization"),r,n).then((function(t){return Et(t,e.adapter)}))},retrieve:function(t){return this.findRecord(t)},syncDevice:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/register-device"),e,r)}}),Ot=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return d(this,t),l(this,t,[e,r,"driver",E({actions:St},n)])}return w(t,dt),g(t,[{key:"token",get:function(){return this.getAttribute("token")}},{key:"isOnline",get:function(){return!0===this.getAttribute("online")}},{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new ot))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new ot))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"track",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.track(this.id,t,e)}},{key:"syncDevice",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.syncDevice(this.id,t,e)}},{key:"listOrganizations",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.listOrganizations(this.id,t,e)}},{key:"switchOrganization",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.switchOrganization(this.id,{next:t},e)}},{key:"currentOrganization",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.currentOrganization(this.id,t,e)}}])}();z("resource","Driver",Ot);var Tt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return d(this,t),l(this,t,[e,r,"vendor",n])}return w(t,dt),g(t)}();z("resource","Vendor",Tt);var Rt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return d(this,t),l(this,t,[e,r,"contact",n])}return w(t,dt),g(t)}();z("resource","Contact",Rt);var Pt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return d(this,t),l(this,t,[e,r,"zone",n])}return w(t,dt),g(t)}();z("resource","Zone",Pt);var jt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return d(this,t),l(this,t,[e,r,"service-area",n])}return w(t,dt),g(t)}();z("resource","ServiceArea",jt);var Ct=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return d(this,t),l(this,t,[e,r,"service-rate",n])}return w(t,dt),g(t)}();z("resource","ServiceRate",Ct);var Dt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return d(this,t),l(this,t,[e,r,"service-quote",n])}return w(t,dt),g(t,[{key:"fromPreliminary",value:function(){}},{key:"fromPayload",value:function(){}}])}();z("resource","ServiceQuote",Dt);var Lt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return d(this,t),l(this,t,[e,r,"fleet",n])}return w(t,dt),g(t)}();z("resource","Fleet",Lt);var Ft=g((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};d(this,t),this.version=e.version||"v1",this.host=e.host||null,this.namespace=e.namespace||null,this.headers=e.headers||{}}));z("adapter","Adapter",Ft);var Nt=function(){function t(e){var r;return d(this,t),(r=l(this,t,[e])).setHeaders({Authorization:"Bearer ".concat(e.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;browser"}),r}return w(t,Ft),g(t,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.headers=E(E({},this.headers),t),this}},{key:"parseJSON",value:function(t){return new Promise((function(e,r){t.json().then((function(r){e({statusText:t.statusText,status:t.status,ok:t.ok,json:r})})).catch((function(){r(new Error("Oops! Something went wrong when handling your request."))}))}))}},{key:"request",value:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new Promise((function(o,a){fetch(i.url||"".concat(e.host,"/").concat(e.namespace,"/").concat(t),E({method:r,mode:i.mode||"cors",headers:new Headers(E(E({},e.headers||{}),i.headers||{}))},n)).then(e.parseJSON).then((function(t){if(t.ok)return o(t.json);a(new Error(t.json.errors?t.json.errors[0]:t.statusText))})).catch((function(t){a(t)}))}))}},{key:"get",value:function(t){var e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=rt(e=r)||"string"==typeof e&&!1===/\S/.test(e)?"":new URLSearchParams(r).toString();return this.request("".concat(t).concat(i?"?".concat(i):""),"GET",{},n)}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"POST",{body:JSON.stringify(e)},r)}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PUT",{body:JSON.stringify(e)},r)}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(t,"DELETE",{},e)}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PATCH",{body:JSON.stringify(e)},r)}}])}();function qt(t,e){return function(){return t.apply(e,arguments)}}z("adapter","BrowserAdapter",Nt);var _t,Mt=Object.prototype.toString,$t=Object.getPrototypeOf,zt=(_t=Object.create(null),function(t){var e=Mt.call(t);return _t[e]||(_t[e]=e.slice(8,-1).toLowerCase())}),Ht=function(t){return t=t.toLowerCase(),function(e){return zt(e)===t}},It=function(t){return function(e){return j(e)===t}},Bt=Array.isArray,Ut=It("undefined"),Wt=Ht("ArrayBuffer"),Yt=It("string"),Qt=It("function"),Gt=It("number"),Jt=function(t){return null!==t&&"object"===j(t)},Xt=function(t){if("object"!==zt(t))return!1;var e=$t(t);return!(null!==e&&e!==Object.prototype&&null!==Object.getPrototypeOf(e)||Symbol.toStringTag in t||Symbol.iterator in t)},Kt=Ht("Date"),Vt=Ht("File"),Zt=Ht("Blob"),te=Ht("FileList"),ee=Ht("URLSearchParams"),re=T(["ReadableStream","Request","Response","Headers"].map(Ht),4),ne=re[0],ie=re[1],oe=re[2],ae=re[3];function se(t,e){var r,n,i=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).allOwnKeys,o=void 0!==i&&i;if(null!=t)if("object"!==j(t)&&(t=[t]),Bt(t))for(r=0,n=t.length;r0;)if(e===(r=n[i]).toLowerCase())return r;return null}var ce,he,le,de,fe,pe="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,ge=function(t){return!Ut(t)&&t!==pe},ve=(ce="undefined"!=typeof Uint8Array&&$t(Uint8Array),function(t){return ce&&t instanceof ce}),ye=Ht("HTMLFormElement"),me=function(){var t=Object.prototype.hasOwnProperty;return function(e,r){return t.call(e,r)}}(),we=Ht("RegExp"),be=function(t,e){var r=Object.getOwnPropertyDescriptors(t),n={};se(r,(function(r,i){var o;!1!==(o=e(r,i,t))&&(n[i]=o||r)})),Object.defineProperties(t,n)},ke="abcdefghijklmnopqrstuvwxyz",xe="0123456789",Ae={DIGIT:xe,ALPHA:ke,ALPHA_DIGIT:ke+ke.toUpperCase()+xe},Ee=Ht("AsyncFunction"),Se=(he="function"==typeof setImmediate,le=Qt(pe.postMessage),he?setImmediate:le?(de="axios@".concat(Math.random()),fe=[],pe.addEventListener("message",(function(t){var e=t.source,r=t.data;e===pe&&r===de&&fe.length&&fe.shift()()}),!1),function(t){fe.push(t),pe.postMessage(de,"*")}):function(t){return setTimeout(t)}),Oe="undefined"!=typeof queueMicrotask?queueMicrotask.bind(pe):"undefined"!=typeof process&&process.nextTick||Se,Te={isArray:Bt,isArrayBuffer:Wt,isBuffer:function(t){return null!==t&&!Ut(t)&&null!==t.constructor&&!Ut(t.constructor)&&Qt(t.constructor.isBuffer)&&t.constructor.isBuffer(t)},isFormData:function(t){var e;return t&&("function"==typeof FormData&&t instanceof FormData||Qt(t.append)&&("formdata"===(e=zt(t))||"object"===e&&Qt(t.toString)&&"[object FormData]"===t.toString()))},isArrayBufferView:function(t){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&Wt(t.buffer)},isString:Yt,isNumber:Gt,isBoolean:function(t){return!0===t||!1===t},isObject:Jt,isPlainObject:Xt,isReadableStream:ne,isRequest:ie,isResponse:oe,isHeaders:ae,isUndefined:Ut,isDate:Kt,isFile:Vt,isBlob:Zt,isRegExp:we,isFunction:Qt,isStream:function(t){return Jt(t)&&Qt(t.pipe)},isURLSearchParams:ee,isTypedArray:ve,isFileList:te,forEach:se,merge:function t(){for(var e=(ge(this)&&this||{}).caseless,r={},n=function(n,i){var o=e&&ue(r,i)||i;Xt(r[o])&&Xt(n)?r[o]=t(r[o],n):Xt(n)?r[o]=t({},n):Bt(n)?r[o]=n.slice():r[o]=n},i=0,o=arguments.length;i3&&void 0!==arguments[3]?arguments[3]:{}).allOwnKeys}),t},trim:function(t){return t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")},stripBOM:function(t){return 65279===t.charCodeAt(0)&&(t=t.slice(1)),t},inherits:function(t,e,r,n){t.prototype=Object.create(e.prototype,n),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),r&&Object.assign(t.prototype,r)},toFlatObject:function(t,e,r,n){var i,o,a,s={};if(e=e||{},null==t)return e;do{for(o=(i=Object.getOwnPropertyNames(t)).length;o-- >0;)a=i[o],n&&!n(a,t,e)||s[a]||(e[a]=t[a],s[a]=!0);t=!1!==r&&$t(t)}while(t&&(!r||r(t,e))&&t!==Object.prototype);return e},kindOf:zt,kindOfTest:Ht,endsWith:function(t,e,r){t=String(t),(void 0===r||r>t.length)&&(r=t.length),r-=e.length;var n=t.indexOf(e,r);return-1!==n&&n===r},toArray:function(t){if(!t)return null;if(Bt(t))return t;var e=t.length;if(!Gt(e))return null;for(var r=new Array(e);e-- >0;)r[e]=t[e];return r},forEachEntry:function(t,e){for(var r,n=(t&&t[Symbol.iterator]).call(t);(r=n.next())&&!r.done;){var i=r.value;e.call(t,i[0],i[1])}},matchAll:function(t,e){for(var r,n=[];null!==(r=t.exec(e));)n.push(r);return n},isHTMLForm:ye,hasOwnProperty:me,hasOwnProp:me,reduceDescriptors:be,freezeMethods:function(t){be(t,(function(e,r){if(Qt(t)&&-1!==["arguments","caller","callee"].indexOf(r))return!1;var n=t[r];Qt(n)&&(e.enumerable=!1,"writable"in e?e.writable=!1:e.set||(e.set=function(){throw Error("Can not rewrite read-only method '"+r+"'")}))}))},toObjectSet:function(t,e){var r={},n=function(t){t.forEach((function(t){r[t]=!0}))};return Bt(t)?n(t):n(String(t).split(e)),r},toCamelCase:function(t){return t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(t,e,r){return e.toUpperCase()+r}))},noop:function(){},toFiniteNumber:function(t,e){return null!=t&&Number.isFinite(t=+t)?t:e},findKey:ue,global:pe,isContextDefined:ge,ALPHABET:Ae,generateString:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ae.ALPHA_DIGIT,r="",n=e.length;t--;)r+=e[Math.random()*n|0];return r},isSpecCompliantForm:function(t){return!!(t&&Qt(t.append)&&"FormData"===t[Symbol.toStringTag]&&t[Symbol.iterator])},toJSONObject:function(t){var e=new Array(10),r=function(t,n){if(Jt(t)){if(e.indexOf(t)>=0)return;if(!("toJSON"in t)){e[n]=t;var i=Bt(t)?[]:{};return se(t,(function(t,e){var o=r(t,n+1);!Ut(o)&&(i[e]=o)})),e[n]=void 0,i}}return t};return r(t,0)},isAsyncFn:Ee,isThenable:function(t){return t&&(Jt(t)||Qt(t))&&Qt(t.then)&&Qt(t.catch)},setImmediate:Se,asap:Oe};function Re(t,e,r,n,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=t,this.name="AxiosError",e&&(this.code=e),r&&(this.config=r),n&&(this.request=n),i&&(this.response=i,this.status=i.status?i.status:null)}Te.inherits(Re,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Te.toJSONObject(this.config),code:this.code,status:this.status}}});var Pe=Re.prototype,je={};function Ce(t){return Te.isPlainObject(t)||Te.isArray(t)}function De(t){return Te.endsWith(t,"[]")?t.slice(0,-2):t}function Le(t,e,r){return t?t.concat(e).map((function(t,e){return t=De(t),!r&&e?"["+t+"]":t})).join(r?".":""):e}["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((function(t){je[t]={value:t}})),Object.defineProperties(Re,je),Object.defineProperty(Pe,"isAxiosError",{value:!0}),Re.from=function(t,e,r,n,i,o){var a=Object.create(Pe);return Te.toFlatObject(t,a,(function(t){return t!==Error.prototype}),(function(t){return"isAxiosError"!==t})),Re.call(a,t.message,e,r,n,i),a.cause=t,a.name=t.name,o&&Object.assign(a,o),a};var Fe=Te.toFlatObject(Te,{},null,(function(t){return/^is[A-Z]/.test(t)}));function Ne(t,e,r){if(!Te.isObject(t))throw new TypeError("target must be an object");e=e||new FormData;var n=(r=Te.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(t,e){return!Te.isUndefined(e[t])}))).metaTokens,i=r.visitor||c,o=r.dots,a=r.indexes,s=(r.Blob||"undefined"!=typeof Blob&&Blob)&&Te.isSpecCompliantForm(e);if(!Te.isFunction(i))throw new TypeError("visitor must be a function");function u(t){if(null===t)return"";if(Te.isDate(t))return t.toISOString();if(!s&&Te.isBlob(t))throw new Re("Blob is not supported. Use a Buffer instead.");return Te.isArrayBuffer(t)||Te.isTypedArray(t)?s&&"function"==typeof Blob?new Blob([t]):Buffer.from(t):t}function c(t,r,i){var s=t;if(t&&!i&&"object"===j(t))if(Te.endsWith(r,"{}"))r=n?r:r.slice(0,-2),t=JSON.stringify(t);else if(Te.isArray(t)&&function(t){return Te.isArray(t)&&!t.some(Ce)}(t)||(Te.isFileList(t)||Te.endsWith(r,"[]"))&&(s=Te.toArray(t)))return r=De(r),s.forEach((function(t,n){!Te.isUndefined(t)&&null!==t&&e.append(!0===a?Le([r],n,o):null===a?r:r+"[]",u(t))})),!1;return!!Ce(t)||(e.append(Le(i,r,o),u(t)),!1)}var h=[],l=Object.assign(Fe,{defaultVisitor:c,convertValue:u,isVisitable:Ce});if(!Te.isObject(t))throw new TypeError("data must be an object");return function t(r,n){if(!Te.isUndefined(r)){if(-1!==h.indexOf(r))throw Error("Circular reference detected in "+n.join("."));h.push(r),Te.forEach(r,(function(r,o){!0===(!(Te.isUndefined(r)||null===r)&&i.call(e,r,Te.isString(o)?o.trim():o,n,l))&&t(r,n?n.concat(o):[o])})),h.pop()}}(t),e}function qe(t){var e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,(function(t){return e[t]}))}function _e(t,e){this._pairs=[],t&&Ne(t,this,e)}var Me=_e.prototype;function $e(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function ze(t,e,r){if(!e)return t;var n=r&&r.encode||$e;Te.isFunction(r)&&(r={serialize:r});var i,o=r&&r.serialize;if(i=o?o(e,r):Te.isURLSearchParams(e)?e.toString():new _e(e,r).toString(n)){var a=t.indexOf("#");-1!==a&&(t=t.slice(0,a)),t+=(-1===t.indexOf("?")?"?":"&")+i}return t}Me.append=function(t,e){this._pairs.push([t,e])},Me.toString=function(t){var e=t?function(e){return t.call(this,e,qe)}:qe;return this._pairs.map((function(t){return e(t[0])+"="+e(t[1])}),"").join("&")};var He=g((function t(){d(this,t),this.handlers=[]}),[{key:"use",value:function(t,e,r){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!r&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1}},{key:"eject",value:function(t){this.handlers[t]&&(this.handlers[t]=null)}},{key:"clear",value:function(){this.handlers&&(this.handlers=[])}},{key:"forEach",value:function(t){Te.forEach(this.handlers,(function(e){null!==e&&t(e)}))}}]),Ie={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Be={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:_e,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},Ue="undefined"!=typeof window&&"undefined"!=typeof document,We="object"===("undefined"==typeof navigator?"undefined":j(navigator))&&navigator||void 0,Ye=Ue&&(!We||["ReactNative","NativeScript","NS"].indexOf(We.product)<0),Qe="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,Ge=Ue&&window.location.href||"http://localhost",Je=E(E({},Object.freeze({__proto__:null,hasBrowserEnv:Ue,hasStandardBrowserEnv:Ye,hasStandardBrowserWebWorkerEnv:Qe,navigator:We,origin:Ge})),Be);function Xe(t){function e(t,r,n,i){var o=t[i++];if("__proto__"===o)return!0;var a=Number.isFinite(+o),s=i>=t.length;return o=!o&&Te.isArray(n)?n.length:o,s?(Te.hasOwnProp(n,o)?n[o]=[n[o],r]:n[o]=r,!a):(n[o]&&Te.isObject(n[o])||(n[o]=[]),e(t,r,n[o],i)&&Te.isArray(n[o])&&(n[o]=function(t){var e,r,n={},i=Object.keys(t),o=i.length;for(e=0;e-1,o=Te.isObject(t);if(o&&Te.isHTMLForm(t)&&(t=new FormData(t)),Te.isFormData(t))return i?JSON.stringify(Xe(t)):t;if(Te.isArrayBuffer(t)||Te.isBuffer(t)||Te.isStream(t)||Te.isFile(t)||Te.isBlob(t)||Te.isReadableStream(t))return t;if(Te.isArrayBufferView(t))return t.buffer;if(Te.isURLSearchParams(t))return e.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();if(o){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(t,e){return Ne(t,new Je.classes.URLSearchParams,Object.assign({visitor:function(t,e,r,n){return Je.isNode&&Te.isBuffer(t)?(this.append(e,t.toString("base64")),!1):n.defaultVisitor.apply(this,arguments)}},e))}(t,this.formSerializer).toString();if((r=Te.isFileList(t))||n.indexOf("multipart/form-data")>-1){var a=this.env&&this.env.FormData;return Ne(r?{"files[]":t}:t,a&&new a,this.formSerializer)}}return o||i?(e.setContentType("application/json",!1),function(t){if(Te.isString(t))try{return(0,JSON.parse)(t),Te.trim(t)}catch(t){if("SyntaxError"!==t.name)throw t}return(0,JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){var e=this.transitional||Ke.transitional,r=e&&e.forcedJSONParsing,n="json"===this.responseType;if(Te.isResponse(t)||Te.isReadableStream(t))return t;if(t&&Te.isString(t)&&(r&&!this.responseType||n)){var i=!(e&&e.silentJSONParsing)&&n;try{return JSON.parse(t)}catch(t){if(i){if("SyntaxError"===t.name)throw Re.from(t,Re.ERR_BAD_RESPONSE,this,null,this.response);throw t}}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Je.classes.FormData,Blob:Je.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};Te.forEach(["delete","get","head","post","put","patch"],(function(t){Ke.headers[t]={}}));var Ve=Te.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Ze=Symbol("internals");function tr(t){return t&&String(t).trim().toLowerCase()}function er(t){return!1===t||null==t?t:Te.isArray(t)?t.map(er):String(t)}function rr(t,e,r,n,i){return Te.isFunction(n)?n.call(this,e,r):(i&&(e=r),Te.isString(e)?Te.isString(n)?-1!==e.indexOf(n):Te.isRegExp(n)?n.test(e):void 0:void 0)}var nr=g((function t(e){d(this,t),e&&this.set(e)}),[{key:"set",value:function(t,e,r){var n=this;function i(t,e,r){var i=tr(e);if(!i)throw new Error("header name must be a non-empty string");var o=Te.findKey(n,i);(!o||void 0===n[o]||!0===r||void 0===r&&!1!==n[o])&&(n[o||e]=er(t))}var o=function(t,e){return Te.forEach(t,(function(t,r){return i(t,r,e)}))};if(Te.isPlainObject(t)||t instanceof this.constructor)o(t,e);else if(Te.isString(t)&&(t=t.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim()))o(function(t){var e,r,n,i={};return t&&t.split("\n").forEach((function(t){n=t.indexOf(":"),e=t.substring(0,n).trim().toLowerCase(),r=t.substring(n+1).trim(),!e||i[e]&&Ve[e]||("set-cookie"===e?i[e]?i[e].push(r):i[e]=[r]:i[e]=i[e]?i[e]+", "+r:r)})),i}(t),e);else if(Te.isHeaders(t)){var a,s=v(t.entries());try{for(s.s();!(a=s.n()).done;){var u=T(a.value,2),c=u[0];i(u[1],c,r)}}catch(t){s.e(t)}finally{s.f()}}else null!=t&&i(e,t,r);return this}},{key:"get",value:function(t,e){if(t=tr(t)){var r=Te.findKey(this,t);if(r){var n=this[r];if(!e)return n;if(!0===e)return function(t){for(var e,r=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;e=n.exec(t);)r[e[1]]=e[2];return r}(n);if(Te.isFunction(e))return e.call(this,n,r);if(Te.isRegExp(e))return e.exec(n);throw new TypeError("parser must be boolean|regexp|function")}}}},{key:"has",value:function(t,e){if(t=tr(t)){var r=Te.findKey(this,t);return!(!r||void 0===this[r]||e&&!rr(0,this[r],r,e))}return!1}},{key:"delete",value:function(t,e){var r=this,n=!1;function i(t){if(t=tr(t)){var i=Te.findKey(r,t);!i||e&&!rr(0,r[i],i,e)||(delete r[i],n=!0)}}return Te.isArray(t)?t.forEach(i):i(t),n}},{key:"clear",value:function(t){for(var e=Object.keys(this),r=e.length,n=!1;r--;){var i=e[r];t&&!rr(0,this[i],i,t,!0)||(delete this[i],n=!0)}return n}},{key:"normalize",value:function(t){var e=this,r={};return Te.forEach(this,(function(n,i){var o=Te.findKey(r,i);if(o)return e[o]=er(n),void delete e[i];var a=t?function(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(function(t,e,r){return e.toUpperCase()+r}))}(i):String(i).trim();a!==i&&delete e[i],e[a]=er(n),r[a]=!0})),this}},{key:"concat",value:function(){for(var t,e=arguments.length,r=new Array(e),n=0;n1?r-1:0),i=1;i2&&void 0!==arguments[2]?arguments[2]:3,n=0,i=function(t,e){t=t||10;var r,n=new Array(t),i=new Array(t),o=0,a=0;return e=void 0!==e?e:1e3,function(s){var u=Date.now(),c=i[a];r||(r=u),n[o]=s,i[o]=u;for(var h=a,l=0;h!==o;)l+=n[h++],h%=t;if((o=(o+1)%t)===a&&(a=(a+1)%t),!(u-r1&&void 0!==arguments[1]?arguments[1]:Date.now();i=o,r=null,n&&(clearTimeout(n),n=null),t.apply(null,e)};return[function(){for(var t=Date.now(),e=t-i,s=arguments.length,u=new Array(s),c=0;c=o?a(u,t):(r=u,n||(n=setTimeout((function(){n=null,a(r)}),o-e)))},function(){return r&&a(r)}]}((function(r){var o=r.loaded,a=r.lengthComputable?r.total:void 0,s=o-n,u=i(s);n=o;var c=y({loaded:o,total:a,progress:a?o/a:void 0,bytes:s,rate:u||void 0,estimated:u&&a&&o<=a?(a-o)/u:void 0,event:r,lengthComputable:null!=a},e?"download":"upload",!0);t(c)}),r)},cr=function(t,e){var r=null!=t;return[function(n){return e[0]({lengthComputable:r,total:t,loaded:n})},e[1]]},hr=function(t){return function(){for(var e=arguments.length,r=new Array(e),n=0;n1?e-1:0),n=1;n1?"since :\n"+s.map(qr).join("\n"):" "+qr(s[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return r};function $r(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new ar(null,t)}function zr(t){return $r(t),t.headers=nr.from(t.headers),t.data=ir.call(t,t.transformRequest),-1!==["post","put","patch"].indexOf(t.method)&&t.headers.setContentType("application/x-www-form-urlencoded",!1),Mr(t.adapter||Ke.adapter)(t).then((function(e){return $r(t),e.data=ir.call(t,t.transformResponse,e),e.headers=nr.from(e.headers),e}),(function(e){return or(e)||($r(t),e&&e.response&&(e.response.data=ir.call(t,t.transformResponse,e.response),e.response.headers=nr.from(e.response.headers))),Promise.reject(e)}))}var Hr={};["object","boolean","number","function","string","symbol"].forEach((function(t,e){Hr[t]=function(r){return j(r)===t||"a"+(e<1?"n ":" ")+t}}));var Ir={};Hr.transitional=function(t,e,r){function n(t,e){return"[Axios v1.7.9] Transitional option '"+t+"'"+e+(r?". "+r:"")}return function(r,i,o){if(!1===t)throw new Re(n(i," has been removed"+(e?" in "+e:"")),Re.ERR_DEPRECATED);return e&&!Ir[i]&&(Ir[i]=!0,console.warn(n(i," has been deprecated since v"+e+" and will be removed in the near future"))),!t||t(r,i,o)}},Hr.spelling=function(t){return function(e,r){return console.warn("".concat(r," is likely a misspelling of ").concat(t)),!0}};var Br={assertOptions:function(t,e,r){if("object"!==j(t))throw new Re("options must be an object",Re.ERR_BAD_OPTION_VALUE);for(var n=Object.keys(t),i=n.length;i-- >0;){var o=n[i],a=e[o];if(a){var s=t[o],u=void 0===s||a(s,o,t);if(!0!==u)throw new Re("option "+o+" must be "+u,Re.ERR_BAD_OPTION_VALUE)}else if(!0!==r)throw new Re("Unknown option "+o,Re.ERR_BAD_OPTION)}},validators:Hr},Ur=Br.validators,Wr=function(){return g((function t(e){d(this,t),this.defaults=e,this.interceptors={request:new He,response:new He}}),[{key:"request",value:(t=c(S().mark((function t(e,r){var n,i;return S().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,this._request(e,r);case 3:return t.abrupt("return",t.sent);case 6:if(t.prev=6,t.t0=t.catch(0),t.t0 instanceof Error){n={},Error.captureStackTrace?Error.captureStackTrace(n):n=new Error,i=n.stack?n.stack.replace(/^.+\n/,""):"";try{t.t0.stack?i&&!String(t.t0.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(t.t0.stack+="\n"+i):t.t0.stack=i}catch(t){}}throw t.t0;case 10:case"end":return t.stop()}}),t,this,[[0,6]])}))),function(e,r){return t.apply(this,arguments)})},{key:"_request",value:function(t,e){"string"==typeof t?(e=e||{}).url=t:e=t||{};var r=e=gr(this.defaults,e),n=r.transitional,i=r.paramsSerializer,o=r.headers;void 0!==n&&Br.assertOptions(n,{silentJSONParsing:Ur.transitional(Ur.boolean),forcedJSONParsing:Ur.transitional(Ur.boolean),clarifyTimeoutError:Ur.transitional(Ur.boolean)},!1),null!=i&&(Te.isFunction(i)?e.paramsSerializer={serialize:i}:Br.assertOptions(i,{encode:Ur.function,serialize:Ur.function},!0)),Br.assertOptions(e,{baseUrl:Ur.spelling("baseURL"),withXsrfToken:Ur.spelling("withXSRFToken")},!0),e.method=(e.method||this.defaults.method||"get").toLowerCase();var a=o&&Te.merge(o.common,o[e.method]);o&&Te.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete o[t]})),e.headers=nr.concat(a,o);var s=[],u=!0;this.interceptors.request.forEach((function(t){"function"==typeof t.runWhen&&!1===t.runWhen(e)||(u=u&&t.synchronous,s.unshift(t.fulfilled,t.rejected))}));var c,h=[];this.interceptors.response.forEach((function(t){h.push(t.fulfilled,t.rejected)}));var l,d=0;if(!u){var f=[zr.bind(this),void 0];for(f.unshift.apply(f,s),f.push.apply(f,h),l=f.length,c=Promise.resolve(e);d0;)n._listeners[e](t);n._listeners=null}})),this.promise.then=function(t){var e,r=new Promise((function(t){n.subscribe(t),e=t})).then(t);return r.cancel=function(){n.unsubscribe(e)},r},e((function(t,e,i){n.reason||(n.reason=new ar(t,e,i),r(n.reason))}))}return g(t,[{key:"throwIfRequested",value:function(){if(this.reason)throw this.reason}},{key:"subscribe",value:function(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t]}},{key:"unsubscribe",value:function(t){if(this._listeners){var e=this._listeners.indexOf(t);-1!==e&&this._listeners.splice(e,1)}}},{key:"toAbortSignal",value:function(){var t=this,e=new AbortController,r=function(t){e.abort(t)};return this.subscribe(r),e.signal.unsubscribe=function(){return t.unsubscribe(r)},e.signal}}],[{key:"source",value:function(){var e;return{token:new t((function(t){e=t})),cancel:e}}}])}(),Qr={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Qr).forEach((function(t){var e=T(t,2),r=e[0],n=e[1];Qr[n]=r}));var Gr=function t(e){var r=new Wr(e),n=qt(Wr.prototype.request,r);return Te.extend(n,Wr.prototype,r,{allOwnKeys:!0}),Te.extend(n,r,null,{allOwnKeys:!0}),n.create=function(r){return t(gr(e,r))},n}(Ke);Gr.Axios=Wr,Gr.CanceledError=ar,Gr.CancelToken=Yr,Gr.isCancel=or,Gr.VERSION="1.7.9",Gr.toFormData=Ne,Gr.AxiosError=Re,Gr.Cancel=Gr.CanceledError,Gr.all=function(t){return Promise.all(t)},Gr.spread=function(t){return function(e){return t.apply(null,e)}},Gr.isAxiosError=function(t){return Te.isObject(t)&&!0===t.isAxiosError},Gr.mergeConfig=gr,Gr.AxiosHeaders=nr,Gr.formToJSON=function(t){return Xe(Te.isHTMLForm(t)?new FormData(t):t)},Gr.getAdapter=Mr,Gr.HttpStatusCode=Qr,Gr.default=Gr,Gr.Axios,Gr.AxiosError,Gr.CanceledError,Gr.isCancel,Gr.CancelToken,Gr.VERSION,Gr.all,Gr.Cancel,Gr.isAxiosError,Gr.spread,Gr.toFormData,Gr.AxiosHeaders,Gr.HttpStatusCode,Gr.formToJSON,Gr.getAdapter,Gr.mergeConfig;var Jr=function(){function t(e){var r;return d(this,t),(r=l(this,t,[e])).axiosInstance=Gr.create({baseURL:"".concat(r.host,"/").concat(r.namespace),headers:{Authorization:"Bearer ".concat(e.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;node"}}),r.axiosInstance.interceptors.response.use((function(t){return t.data}),(function(t){if(t.response){var e=t.response.data;if(U(e.errors)&&e.errors.length)throw new Error(e.errors[0]);if(e.error)throw new Error(e.error)}throw t})),r}return w(t,Ft),g(t,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.axiosInstance.defaults.headers.common=E(E({},this.axiosInstance.defaults.headers.common),t),this}},{key:"request",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axiosInstance.request(E({method:t,url:e},r))}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request("GET",t,E({params:e},r))}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request("POST",t,E({data:e},r))}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request("PUT",t,E({data:e},r))}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request("DELETE",t,e)}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request("PATCH",t,E({data:e},r))}}])}();z("adapter","NodeAdapter",Jr);var Xr=function(){function t(){return d(this,t),l(this,t,arguments)}return w(t,Ft),g(t)}();z("adapter","EmberJsAdapter",Xr),function(){function t(e){var r,n,i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(d(this,t),this.version=null!==(r=o.version)&&void 0!==r?r:"v1",this.options={version:this.version,host:null!==(n=o.host)&&void 0!==n?n:"https://api.fleetbase.io",namespace:null!==(i=o.namespace)&&void 0!==i?i:this.version,debug:a,publicKey:e},"string"!=typeof e||0===e.length)throw new Error("⚠️ Invalid public key given to Fleetbase SDK");if(!nt()&&e.toLowerCase().startsWith("$"))throw new Error("Secret key provided. You must use a public key with Fleetbase Javascript SDK!");this.adapter=o.adapter||it(this.options),this.orders=new ft("order",this.adapter).extendActions(pt),this.entities=new ft("entity",this.adapter),this.places=new ft("place",this.adapter),this.drivers=new ft("driver",this.adapter).extendActions(St),this.vehicles=new ft("vehicle",this.adapter),this.vendors=new ft("vendor",this.adapter),this.contacts=new ft("contact",this.adapter),this.serviceAreas=new ft("service-area",this.adapter),this.zones=new ft("zone",this.adapter),this.fleets=new ft("fleet",this.adapter),this.organizations=new ft("organization",this.adapter).extendActions(xt)}g(t,[{key:"setAdapter",value:function(t){this.adapter=t}},{key:"getAdapter",value:function(){return this.adapter}}],[{key:"newInstance",value:function(){return f(t,Array.prototype.slice.call(arguments))}}])}();class Kr extends ft{constructor(t,e,r={}){super(t,e,r)}extendActions(t=[]){return ct(this,t)}serialize(t){return I("resource",M(this.resource),t,this.adapter)}}function Vr(t=0,e="USD",r="symbol"){return new Intl.NumberFormat("en-US",{style:"currency",currency:e,currencyDisplay:r}).format(t)}function Zr(t){const e=null==t;if(e)return e;const r=typeof t;return"object"==typeof t&&"number"==typeof t.size?!t.size:("object"==typeof t||"string"==typeof t)&&"number"==typeof t.length&&"function"!==r&&!t.length}class tn extends dt{setAdapter(t){return this.adapter=t,this.store=new Kr(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:this.options?.actions}),this}}z("resource","StorefrontResource",tn);const en=new ht({count:function(t,e={}){const r={};return t&&(r.store=t),this.adapter.get(`${this.namespace}/count`,r,e)}});class rn extends tn{constructor(t={},e,r={}){super(t,e,"review",r)}getMedia(){return this.getPhotos()}getPhotos(){return this.getAttribute("photos")??[]}getVideos(){return this.getMedia().filter((t=>"string"==typeof t?.type&&t.type.startsWith("video/")))}}z("resource","Review",rn);const nn=6048e5,on=Symbol.for("constructDateFrom");function an(t,e){return"function"==typeof t?t(e):t&&"object"==typeof t&&on in t?t[on](e):t instanceof Date?new t.constructor(e):new Date(e)}function sn(t,e){return an(e||t,t)}function un(t,e,r){const n=sn(t,r?.in);return isNaN(e)?an(r?.in||t,NaN):e?(n.setDate(n.getDate()+e),n):n}let cn={};function hn(){return cn}function ln(t,e){const r=hn(),n=e?.weekStartsOn??e?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,i=sn(t,e?.in),o=i.getDay(),a=(o=o.getTime()?n+1:r.getTime()>=s.getTime()?n:n-1}function pn(t){const e=sn(t),r=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return r.setUTCFullYear(e.getFullYear()),+t-+r}function gn(t,e){const r=sn(t,e?.in);return r.setHours(0,0,0,0),r}function vn(t,e,r){const[n,i]=function(t,...e){const r=an.bind(null,e.find((t=>"object"==typeof t)));return e.map(r)}(0,t,e),o=gn(n),a=gn(i),s=+o-pn(o),u=+a-pn(a);return Math.round((s-u)/864e5)}function yn(t){return!(!((e=t)instanceof Date||"object"==typeof e&&"[object Date]"===Object.prototype.toString.call(e))&&"number"!=typeof t||isNaN(+sn(t)));var e}const mn={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function wn(t){return(e={})=>{const r=e.width?String(e.width):t.defaultWidth;return t.formats[r]||t.formats[t.defaultWidth]}}const bn={date:wn({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:wn({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:wn({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},kn={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function xn(t){return(e,r)=>{let n;if("formatting"===(r?.context?String(r.context):"standalone")&&t.formattingValues){const e=t.defaultFormattingWidth||t.defaultWidth,i=r?.width?String(r.width):e;n=t.formattingValues[i]||t.formattingValues[e]}else{const e=t.defaultWidth,i=r?.width?String(r.width):t.defaultWidth;n=t.values[i]||t.values[e]}return n[t.argumentCallback?t.argumentCallback(e):e]}}function An(t){return(e,r={})=>{const n=r.width,i=n&&t.matchPatterns[n]||t.matchPatterns[t.defaultMatchWidth],o=e.match(i);if(!o)return null;const a=o[0],s=n&&t.parsePatterns[n]||t.parsePatterns[t.defaultParseWidth],u=Array.isArray(s)?function(t,e){for(let r=0;rt.test(a))):function(t,e){for(const r in t)if(Object.prototype.hasOwnProperty.call(t,r)&&e(t[r]))return r;return}(s,(t=>t.test(a)));let c;c=t.valueCallback?t.valueCallback(u):u,c=r.valueCallback?r.valueCallback(c):c;return{value:c,rest:e.slice(a.length)}}}var En;const Sn={code:"en-US",formatDistance:(t,e,r)=>{let n;const i=mn[t];return n="string"==typeof i?i:1===e?i.one:i.other.replace("{{count}}",e.toString()),r?.addSuffix?r.comparison&&r.comparison>0?"in "+n:n+" ago":n},formatLong:bn,formatRelative:(t,e,r,n)=>kn[t],localize:{ordinalNumber:(t,e)=>{const r=Number(t),n=r%100;if(n>20||n<10)switch(n%10){case 1:return r+"st";case 2:return r+"nd";case 3:return r+"rd"}return r+"th"},era:xn({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:xn({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:t=>t-1}),month:xn({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:xn({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:xn({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(En={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:t=>parseInt(t,10)},(t,e={})=>{const r=t.match(En.matchPattern);if(!r)return null;const n=r[0],i=t.match(En.parsePattern);if(!i)return null;let o=En.valueCallback?En.valueCallback(i[0]):i[0];return o=e.valueCallback?e.valueCallback(o):o,{value:o,rest:t.slice(n.length)}}),era:An({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:An({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:t=>t+1}),month:An({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:An({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:An({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function On(t,e){const r=sn(t,e?.in),n=vn(r,function(t,e){const r=sn(t,e?.in);return r.setFullYear(r.getFullYear(),0,1),r.setHours(0,0,0,0),r}(r));return n+1}function Tn(t,e){const r=sn(t,e?.in),n=+dn(r)-+function(t,e){const r=fn(t,e),n=an(t,0);return n.setFullYear(r,0,4),n.setHours(0,0,0,0),dn(n)}(r);return Math.round(n/nn)+1}function Rn(t,e){const r=sn(t,e?.in),n=r.getFullYear(),i=hn(),o=e?.firstWeekContainsDate??e?.locale?.options?.firstWeekContainsDate??i.firstWeekContainsDate??i.locale?.options?.firstWeekContainsDate??1,a=an(e?.in||t,0);a.setFullYear(n+1,0,o),a.setHours(0,0,0,0);const s=ln(a,e),u=an(e?.in||t,0);u.setFullYear(n,0,o),u.setHours(0,0,0,0);const c=ln(u,e);return+r>=+s?n+1:+r>=+c?n:n-1}function Pn(t,e){const r=sn(t,e?.in),n=+ln(r,e)-+function(t,e){const r=hn(),n=e?.firstWeekContainsDate??e?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,i=Rn(t,e),o=an(e?.in||t,0);return o.setFullYear(i,0,n),o.setHours(0,0,0,0),ln(o,e)}(r,e);return Math.round(n/nn)+1}function jn(t,e){return(t<0?"-":"")+Math.abs(t).toString().padStart(e,"0")}const Cn={y(t,e){const r=t.getFullYear(),n=r>0?r:1-r;return jn("yy"===e?n%100:n,e.length)},M(t,e){const r=t.getMonth();return"M"===e?String(r+1):jn(r+1,2)},d:(t,e)=>jn(t.getDate(),e.length),a(t,e){const r=t.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return r.toUpperCase();case"aaa":return r;case"aaaaa":return r[0];default:return"am"===r?"a.m.":"p.m."}},h:(t,e)=>jn(t.getHours()%12||12,e.length),H:(t,e)=>jn(t.getHours(),e.length),m:(t,e)=>jn(t.getMinutes(),e.length),s:(t,e)=>jn(t.getSeconds(),e.length),S(t,e){const r=e.length,n=t.getMilliseconds();return jn(Math.trunc(n*Math.pow(10,r-3)),e.length)}},Dn="midnight",Ln="noon",Fn="morning",Nn="afternoon",qn="evening",_n="night",Mn={G:function(t,e,r){const n=t.getFullYear()>0?1:0;switch(e){case"G":case"GG":case"GGG":return r.era(n,{width:"abbreviated"});case"GGGGG":return r.era(n,{width:"narrow"});default:return r.era(n,{width:"wide"})}},y:function(t,e,r){if("yo"===e){const e=t.getFullYear(),n=e>0?e:1-e;return r.ordinalNumber(n,{unit:"year"})}return Cn.y(t,e)},Y:function(t,e,r,n){const i=Rn(t,n),o=i>0?i:1-i;if("YY"===e){return jn(o%100,2)}return"Yo"===e?r.ordinalNumber(o,{unit:"year"}):jn(o,e.length)},R:function(t,e){return jn(fn(t),e.length)},u:function(t,e){return jn(t.getFullYear(),e.length)},Q:function(t,e,r){const n=Math.ceil((t.getMonth()+1)/3);switch(e){case"Q":return String(n);case"QQ":return jn(n,2);case"Qo":return r.ordinalNumber(n,{unit:"quarter"});case"QQQ":return r.quarter(n,{width:"abbreviated",context:"formatting"});case"QQQQQ":return r.quarter(n,{width:"narrow",context:"formatting"});default:return r.quarter(n,{width:"wide",context:"formatting"})}},q:function(t,e,r){const n=Math.ceil((t.getMonth()+1)/3);switch(e){case"q":return String(n);case"qq":return jn(n,2);case"qo":return r.ordinalNumber(n,{unit:"quarter"});case"qqq":return r.quarter(n,{width:"abbreviated",context:"standalone"});case"qqqqq":return r.quarter(n,{width:"narrow",context:"standalone"});default:return r.quarter(n,{width:"wide",context:"standalone"})}},M:function(t,e,r){const n=t.getMonth();switch(e){case"M":case"MM":return Cn.M(t,e);case"Mo":return r.ordinalNumber(n+1,{unit:"month"});case"MMM":return r.month(n,{width:"abbreviated",context:"formatting"});case"MMMMM":return r.month(n,{width:"narrow",context:"formatting"});default:return r.month(n,{width:"wide",context:"formatting"})}},L:function(t,e,r){const n=t.getMonth();switch(e){case"L":return String(n+1);case"LL":return jn(n+1,2);case"Lo":return r.ordinalNumber(n+1,{unit:"month"});case"LLL":return r.month(n,{width:"abbreviated",context:"standalone"});case"LLLLL":return r.month(n,{width:"narrow",context:"standalone"});default:return r.month(n,{width:"wide",context:"standalone"})}},w:function(t,e,r,n){const i=Pn(t,n);return"wo"===e?r.ordinalNumber(i,{unit:"week"}):jn(i,e.length)},I:function(t,e,r){const n=Tn(t);return"Io"===e?r.ordinalNumber(n,{unit:"week"}):jn(n,e.length)},d:function(t,e,r){return"do"===e?r.ordinalNumber(t.getDate(),{unit:"date"}):Cn.d(t,e)},D:function(t,e,r){const n=On(t);return"Do"===e?r.ordinalNumber(n,{unit:"dayOfYear"}):jn(n,e.length)},E:function(t,e,r){const n=t.getDay();switch(e){case"E":case"EE":case"EEE":return r.day(n,{width:"abbreviated",context:"formatting"});case"EEEEE":return r.day(n,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(n,{width:"short",context:"formatting"});default:return r.day(n,{width:"wide",context:"formatting"})}},e:function(t,e,r,n){const i=t.getDay(),o=(i-n.weekStartsOn+8)%7||7;switch(e){case"e":return String(o);case"ee":return jn(o,2);case"eo":return r.ordinalNumber(o,{unit:"day"});case"eee":return r.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return r.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(i,{width:"short",context:"formatting"});default:return r.day(i,{width:"wide",context:"formatting"})}},c:function(t,e,r,n){const i=t.getDay(),o=(i-n.weekStartsOn+8)%7||7;switch(e){case"c":return String(o);case"cc":return jn(o,e.length);case"co":return r.ordinalNumber(o,{unit:"day"});case"ccc":return r.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return r.day(i,{width:"narrow",context:"standalone"});case"cccccc":return r.day(i,{width:"short",context:"standalone"});default:return r.day(i,{width:"wide",context:"standalone"})}},i:function(t,e,r){const n=t.getDay(),i=0===n?7:n;switch(e){case"i":return String(i);case"ii":return jn(i,e.length);case"io":return r.ordinalNumber(i,{unit:"day"});case"iii":return r.day(n,{width:"abbreviated",context:"formatting"});case"iiiii":return r.day(n,{width:"narrow",context:"formatting"});case"iiiiii":return r.day(n,{width:"short",context:"formatting"});default:return r.day(n,{width:"wide",context:"formatting"})}},a:function(t,e,r){const n=t.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return r.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"aaa":return r.dayPeriod(n,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return r.dayPeriod(n,{width:"narrow",context:"formatting"});default:return r.dayPeriod(n,{width:"wide",context:"formatting"})}},b:function(t,e,r){const n=t.getHours();let i;switch(i=12===n?Ln:0===n?Dn:n/12>=1?"pm":"am",e){case"b":case"bb":return r.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"bbb":return r.dayPeriod(i,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return r.dayPeriod(i,{width:"narrow",context:"formatting"});default:return r.dayPeriod(i,{width:"wide",context:"formatting"})}},B:function(t,e,r){const n=t.getHours();let i;switch(i=n>=17?qn:n>=12?Nn:n>=4?Fn:_n,e){case"B":case"BB":case"BBB":return r.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"BBBBB":return r.dayPeriod(i,{width:"narrow",context:"formatting"});default:return r.dayPeriod(i,{width:"wide",context:"formatting"})}},h:function(t,e,r){if("ho"===e){let e=t.getHours()%12;return 0===e&&(e=12),r.ordinalNumber(e,{unit:"hour"})}return Cn.h(t,e)},H:function(t,e,r){return"Ho"===e?r.ordinalNumber(t.getHours(),{unit:"hour"}):Cn.H(t,e)},K:function(t,e,r){const n=t.getHours()%12;return"Ko"===e?r.ordinalNumber(n,{unit:"hour"}):jn(n,e.length)},k:function(t,e,r){let n=t.getHours();return 0===n&&(n=24),"ko"===e?r.ordinalNumber(n,{unit:"hour"}):jn(n,e.length)},m:function(t,e,r){return"mo"===e?r.ordinalNumber(t.getMinutes(),{unit:"minute"}):Cn.m(t,e)},s:function(t,e,r){return"so"===e?r.ordinalNumber(t.getSeconds(),{unit:"second"}):Cn.s(t,e)},S:function(t,e){return Cn.S(t,e)},X:function(t,e,r){const n=t.getTimezoneOffset();if(0===n)return"Z";switch(e){case"X":return zn(n);case"XXXX":case"XX":return Hn(n);default:return Hn(n,":")}},x:function(t,e,r){const n=t.getTimezoneOffset();switch(e){case"x":return zn(n);case"xxxx":case"xx":return Hn(n);default:return Hn(n,":")}},O:function(t,e,r){const n=t.getTimezoneOffset();switch(e){case"O":case"OO":case"OOO":return"GMT"+$n(n,":");default:return"GMT"+Hn(n,":")}},z:function(t,e,r){const n=t.getTimezoneOffset();switch(e){case"z":case"zz":case"zzz":return"GMT"+$n(n,":");default:return"GMT"+Hn(n,":")}},t:function(t,e,r){return jn(Math.trunc(+t/1e3),e.length)},T:function(t,e,r){return jn(+t,e.length)}};function $n(t,e=""){const r=t>0?"-":"+",n=Math.abs(t),i=Math.trunc(n/60),o=n%60;return 0===o?r+String(i):r+String(i)+e+jn(o,2)}function zn(t,e){if(t%60==0){return(t>0?"-":"+")+jn(Math.abs(t)/60,2)}return Hn(t,e)}function Hn(t,e=""){const r=t>0?"-":"+",n=Math.abs(t);return r+jn(Math.trunc(n/60),2)+e+jn(n%60,2)}const In=(t,e)=>{switch(t){case"P":return e.date({width:"short"});case"PP":return e.date({width:"medium"});case"PPP":return e.date({width:"long"});default:return e.date({width:"full"})}},Bn=(t,e)=>{switch(t){case"p":return e.time({width:"short"});case"pp":return e.time({width:"medium"});case"ppp":return e.time({width:"long"});default:return e.time({width:"full"})}},Un={p:Bn,P:(t,e)=>{const r=t.match(/(P+)(p+)?/)||[],n=r[1],i=r[2];if(!i)return In(t,e);let o;switch(n){case"P":o=e.dateTime({width:"short"});break;case"PP":o=e.dateTime({width:"medium"});break;case"PPP":o=e.dateTime({width:"long"});break;default:o=e.dateTime({width:"full"})}return o.replace("{{date}}",In(n,e)).replace("{{time}}",Bn(i,e))}},Wn=/^D+$/,Yn=/^Y+$/,Qn=["D","DD","YY","YYYY"];function Gn(t){return Wn.test(t)}function Jn(t){return Yn.test(t)}function Xn(t,e,r){const n=function(t,e,r){const n="Y"===t[0]?"years":"days of the month";return`Use \`${t.toLowerCase()}\` instead of \`${t}\` (in \`${e}\`) for formatting ${n} to the input \`${r}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}(t,e,r);if(console.warn(n),Qn.includes(t))throw new RangeError(n)}const Kn=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Vn=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Zn=/^'([^]*?)'?$/,ti=/''/g,ei=/[a-zA-Z]/;function ri(t,e,r){const n=hn(),i=n.locale??Sn,o=n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,a=n.weekStartsOn??n.locale?.options?.weekStartsOn??0,s=sn(t,r?.in);if(!yn(s))throw new RangeError("Invalid time value");let u=e.match(Vn).map((t=>{const e=t[0];if("p"===e||"P"===e){return(0,Un[e])(t,i.formatLong)}return t})).join("").match(Kn).map((t=>{if("''"===t)return{isToken:!1,value:"'"};const e=t[0];if("'"===e)return{isToken:!1,value:ni(t)};if(Mn[e])return{isToken:!0,value:t};if(e.match(ei))throw new RangeError("Format string contains an unescaped latin alphabet character `"+e+"`");return{isToken:!1,value:t}}));i.localize.preprocessor&&(u=i.localize.preprocessor(s,u));const c={firstWeekContainsDate:o,weekStartsOn:a,locale:i};return u.map((r=>{if(!r.isToken)return r.value;const n=r.value;(Jn(n)||Gn(n))&&Xn(n,e,String(t));return(0,Mn[n[0]])(s,n,i.localize,c)})).join("")}function ni(t){const e=t.match(Zn);return e?e[1].replace(ti,"'"):t}class ii{subPriority=0;validate(t,e){return!0}}class oi extends ii{constructor(t,e,r,n,i){super(),this.value=t,this.validateValue=e,this.setValue=r,this.priority=n,i&&(this.subPriority=i)}validate(t,e){return this.validateValue(t,this.value,e)}set(t,e,r){return this.setValue(t,e,this.value,r)}}class ai extends ii{priority=10;subPriority=-1;constructor(t,e){super(),this.context=t||(t=>an(e,t))}set(t,e){return e.timestampIsSet?t:an(t,function(t,e){const r=function(t){return"function"==typeof t&&t.prototype?.constructor===t}(e)?new e(0):an(e,0);return r.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),r.setHours(t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()),r}(t,this.context))}}class si{run(t,e,r,n){const i=this.parse(t,e,r,n);return i?{setter:new oi(i.value,this.validate,this.set,this.priority,this.subPriority),rest:i.rest}:null}validate(t,e,r){return!0}}const ui=/^(1[0-2]|0?\d)/,ci=/^(3[0-1]|[0-2]?\d)/,hi=/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,li=/^(5[0-3]|[0-4]?\d)/,di=/^(2[0-3]|[0-1]?\d)/,fi=/^(2[0-4]|[0-1]?\d)/,pi=/^(1[0-1]|0?\d)/,gi=/^(1[0-2]|0?\d)/,vi=/^[0-5]?\d/,yi=/^[0-5]?\d/,mi=/^\d/,wi=/^\d{1,2}/,bi=/^\d{1,3}/,ki=/^\d{1,4}/,xi=/^-?\d+/,Ai=/^-?\d/,Ei=/^-?\d{1,2}/,Si=/^-?\d{1,3}/,Oi=/^-?\d{1,4}/,Ti=/^([+-])(\d{2})(\d{2})?|Z/,Ri=/^([+-])(\d{2})(\d{2})|Z/,Pi=/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,ji=/^([+-])(\d{2}):(\d{2})|Z/,Ci=/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/;function Di(t,e){return t?{value:e(t.value),rest:t.rest}:t}function Li(t,e){const r=e.match(t);return r?{value:parseInt(r[0],10),rest:e.slice(r[0].length)}:null}function Fi(t,e){const r=e.match(t);if(!r)return null;if("Z"===r[0])return{value:0,rest:e.slice(1)};return{value:("+"===r[1]?1:-1)*(36e5*(r[2]?parseInt(r[2],10):0)+6e4*(r[3]?parseInt(r[3],10):0)+1e3*(r[5]?parseInt(r[5],10):0)),rest:e.slice(r[0].length)}}function Ni(t){return Li(xi,t)}function qi(t,e){switch(t){case 1:return Li(mi,e);case 2:return Li(wi,e);case 3:return Li(bi,e);case 4:return Li(ki,e);default:return Li(new RegExp("^\\d{1,"+t+"}"),e)}}function _i(t,e){switch(t){case 1:return Li(Ai,e);case 2:return Li(Ei,e);case 3:return Li(Si,e);case 4:return Li(Oi,e);default:return Li(new RegExp("^-?\\d{1,"+t+"}"),e)}}function Mi(t){switch(t){case"morning":return 4;case"evening":return 17;case"pm":case"noon":case"afternoon":return 12;default:return 0}}function $i(t,e){const r=e>0,n=r?e:1-e;let i;if(n<=50)i=t||100;else{const e=n+50;i=t+100*Math.trunc(e/100)-(t>=e%100?100:0)}return r?i:1-i}function zi(t){return t%400==0||t%4==0&&t%100!=0}const Hi=[31,28,31,30,31,30,31,31,30,31,30,31],Ii=[31,29,31,30,31,30,31,31,30,31,30,31];function Bi(t,e,r){const n=hn(),i=r?.weekStartsOn??r?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,o=sn(t,r?.in),a=o.getDay(),s=7-i;return un(o,e<0||e>6?e-(a+s)%7:((e%7+7)%7+s)%7-(a+s)%7,r)}function Ui(t,e,r){const n=sn(t,r?.in),i=function(t,e){const r=sn(t,e?.in).getDay();return 0===r?7:r}(n,r);return un(n,e-i,r)}const Wi={G:new class extends si{priority=140;parse(t,e,r){switch(e){case"G":case"GG":case"GGG":return r.era(t,{width:"abbreviated"})||r.era(t,{width:"narrow"});case"GGGGG":return r.era(t,{width:"narrow"});default:return r.era(t,{width:"wide"})||r.era(t,{width:"abbreviated"})||r.era(t,{width:"narrow"})}}set(t,e,r){return e.era=r,t.setFullYear(r,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["R","u","t","T"]},y:new class extends si{priority=130;incompatibleTokens=["Y","R","u","w","I","i","e","c","t","T"];parse(t,e,r){const n=t=>({year:t,isTwoDigitYear:"yy"===e});switch(e){case"y":return Di(qi(4,t),n);case"yo":return Di(r.ordinalNumber(t,{unit:"year"}),n);default:return Di(qi(e.length,t),n)}}validate(t,e){return e.isTwoDigitYear||e.year>0}set(t,e,r){const n=t.getFullYear();if(r.isTwoDigitYear){const e=$i(r.year,n);return t.setFullYear(e,0,1),t.setHours(0,0,0,0),t}const i="era"in e&&1!==e.era?1-r.year:r.year;return t.setFullYear(i,0,1),t.setHours(0,0,0,0),t}},Y:new class extends si{priority=130;parse(t,e,r){const n=t=>({year:t,isTwoDigitYear:"YY"===e});switch(e){case"Y":return Di(qi(4,t),n);case"Yo":return Di(r.ordinalNumber(t,{unit:"year"}),n);default:return Di(qi(e.length,t),n)}}validate(t,e){return e.isTwoDigitYear||e.year>0}set(t,e,r,n){const i=Rn(t,n);if(r.isTwoDigitYear){const e=$i(r.year,i);return t.setFullYear(e,0,n.firstWeekContainsDate),t.setHours(0,0,0,0),ln(t,n)}const o="era"in e&&1!==e.era?1-r.year:r.year;return t.setFullYear(o,0,n.firstWeekContainsDate),t.setHours(0,0,0,0),ln(t,n)}incompatibleTokens=["y","R","u","Q","q","M","L","I","d","D","i","t","T"]},R:new class extends si{priority=130;parse(t,e){return _i("R"===e?4:e.length,t)}set(t,e,r){const n=an(t,0);return n.setFullYear(r,0,4),n.setHours(0,0,0,0),dn(n)}incompatibleTokens=["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"]},u:new class extends si{priority=130;parse(t,e){return _i("u"===e?4:e.length,t)}set(t,e,r){return t.setFullYear(r,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["G","y","Y","R","w","I","i","e","c","t","T"]},Q:new class extends si{priority=120;parse(t,e,r){switch(e){case"Q":case"QQ":return qi(e.length,t);case"Qo":return r.ordinalNumber(t,{unit:"quarter"});case"QQQ":return r.quarter(t,{width:"abbreviated",context:"formatting"})||r.quarter(t,{width:"narrow",context:"formatting"});case"QQQQQ":return r.quarter(t,{width:"narrow",context:"formatting"});default:return r.quarter(t,{width:"wide",context:"formatting"})||r.quarter(t,{width:"abbreviated",context:"formatting"})||r.quarter(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=1&&e<=4}set(t,e,r){return t.setMonth(3*(r-1),1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","M","L","w","I","d","D","i","e","c","t","T"]},q:new class extends si{priority=120;parse(t,e,r){switch(e){case"q":case"qq":return qi(e.length,t);case"qo":return r.ordinalNumber(t,{unit:"quarter"});case"qqq":return r.quarter(t,{width:"abbreviated",context:"standalone"})||r.quarter(t,{width:"narrow",context:"standalone"});case"qqqqq":return r.quarter(t,{width:"narrow",context:"standalone"});default:return r.quarter(t,{width:"wide",context:"standalone"})||r.quarter(t,{width:"abbreviated",context:"standalone"})||r.quarter(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=1&&e<=4}set(t,e,r){return t.setMonth(3*(r-1),1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","Q","M","L","w","I","d","D","i","e","c","t","T"]},M:new class extends si{incompatibleTokens=["Y","R","q","Q","L","w","I","D","i","e","c","t","T"];priority=110;parse(t,e,r){const n=t=>t-1;switch(e){case"M":return Di(Li(ui,t),n);case"MM":return Di(qi(2,t),n);case"Mo":return Di(r.ordinalNumber(t,{unit:"month"}),n);case"MMM":return r.month(t,{width:"abbreviated",context:"formatting"})||r.month(t,{width:"narrow",context:"formatting"});case"MMMMM":return r.month(t,{width:"narrow",context:"formatting"});default:return r.month(t,{width:"wide",context:"formatting"})||r.month(t,{width:"abbreviated",context:"formatting"})||r.month(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.setMonth(r,1),t.setHours(0,0,0,0),t}},L:new class extends si{priority=110;parse(t,e,r){const n=t=>t-1;switch(e){case"L":return Di(Li(ui,t),n);case"LL":return Di(qi(2,t),n);case"Lo":return Di(r.ordinalNumber(t,{unit:"month"}),n);case"LLL":return r.month(t,{width:"abbreviated",context:"standalone"})||r.month(t,{width:"narrow",context:"standalone"});case"LLLLL":return r.month(t,{width:"narrow",context:"standalone"});default:return r.month(t,{width:"wide",context:"standalone"})||r.month(t,{width:"abbreviated",context:"standalone"})||r.month(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.setMonth(r,1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","w","I","D","i","e","c","t","T"]},w:new class extends si{priority=100;parse(t,e,r){switch(e){case"w":return Li(li,t);case"wo":return r.ordinalNumber(t,{unit:"week"});default:return qi(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,e,r,n){return ln(function(t,e,r){const n=sn(t,r?.in),i=Pn(n,r)-e;return n.setDate(n.getDate()-7*i),sn(n,r?.in)}(t,r,n),n)}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","i","t","T"]},I:new class extends si{priority=100;parse(t,e,r){switch(e){case"I":return Li(li,t);case"Io":return r.ordinalNumber(t,{unit:"week"});default:return qi(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,e,r){return dn(function(t,e,r){const n=sn(t,r?.in),i=Tn(n,r)-e;return n.setDate(n.getDate()-7*i),n}(t,r))}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","e","c","t","T"]},d:new class extends si{priority=90;subPriority=1;parse(t,e,r){switch(e){case"d":return Li(ci,t);case"do":return r.ordinalNumber(t,{unit:"date"});default:return qi(e.length,t)}}validate(t,e){const r=zi(t.getFullYear()),n=t.getMonth();return r?e>=1&&e<=Ii[n]:e>=1&&e<=Hi[n]}set(t,e,r){return t.setDate(r),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","w","I","D","i","e","c","t","T"]},D:new class extends si{priority=90;subpriority=1;parse(t,e,r){switch(e){case"D":case"DD":return Li(hi,t);case"Do":return r.ordinalNumber(t,{unit:"date"});default:return qi(e.length,t)}}validate(t,e){return zi(t.getFullYear())?e>=1&&e<=366:e>=1&&e<=365}set(t,e,r){return t.setMonth(0,r),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","L","w","I","d","E","i","e","c","t","T"]},E:new class extends si{priority=90;parse(t,e,r){switch(e){case"E":case"EE":case"EEE":return r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});case"EEEEE":return r.day(t,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});default:return r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=Bi(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["D","i","e","c","t","T"]},e:new class extends si{priority=90;parse(t,e,r,n){const i=t=>{const e=7*Math.floor((t-1)/7);return(t+n.weekStartsOn+6)%7+e};switch(e){case"e":case"ee":return Di(qi(e.length,t),i);case"eo":return Di(r.ordinalNumber(t,{unit:"day"}),i);case"eee":return r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});case"eeeee":return r.day(t,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});default:return r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=Bi(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","c","t","T"]},c:new class extends si{priority=90;parse(t,e,r,n){const i=t=>{const e=7*Math.floor((t-1)/7);return(t+n.weekStartsOn+6)%7+e};switch(e){case"c":case"cc":return Di(qi(e.length,t),i);case"co":return Di(r.ordinalNumber(t,{unit:"day"}),i);case"ccc":return r.day(t,{width:"abbreviated",context:"standalone"})||r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"});case"ccccc":return r.day(t,{width:"narrow",context:"standalone"});case"cccccc":return r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"});default:return r.day(t,{width:"wide",context:"standalone"})||r.day(t,{width:"abbreviated",context:"standalone"})||r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=Bi(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","e","t","T"]},i:new class extends si{priority=90;parse(t,e,r){const n=t=>0===t?7:t;switch(e){case"i":case"ii":return qi(e.length,t);case"io":return r.ordinalNumber(t,{unit:"day"});case"iii":return Di(r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n);case"iiiii":return Di(r.day(t,{width:"narrow",context:"formatting"}),n);case"iiiiii":return Di(r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n);default:return Di(r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n)}}validate(t,e){return e>=1&&e<=7}set(t,e,r){return(t=Ui(t,r)).setHours(0,0,0,0),t}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","E","e","c","t","T"]},a:new class extends si{priority=80;parse(t,e,r){switch(e){case"a":case"aa":case"aaa":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"aaaaa":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(Mi(r),0,0,0),t}incompatibleTokens=["b","B","H","k","t","T"]},b:new class extends si{priority=80;parse(t,e,r){switch(e){case"b":case"bb":case"bbb":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"bbbbb":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(Mi(r),0,0,0),t}incompatibleTokens=["a","B","H","k","t","T"]},B:new class extends si{priority=80;parse(t,e,r){switch(e){case"B":case"BB":case"BBB":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"BBBBB":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(Mi(r),0,0,0),t}incompatibleTokens=["a","b","t","T"]},h:new class extends si{priority=70;parse(t,e,r){switch(e){case"h":return Li(gi,t);case"ho":return r.ordinalNumber(t,{unit:"hour"});default:return qi(e.length,t)}}validate(t,e){return e>=1&&e<=12}set(t,e,r){const n=t.getHours()>=12;return n&&r<12?t.setHours(r+12,0,0,0):n||12!==r?t.setHours(r,0,0,0):t.setHours(0,0,0,0),t}incompatibleTokens=["H","K","k","t","T"]},H:new class extends si{priority=70;parse(t,e,r){switch(e){case"H":return Li(di,t);case"Ho":return r.ordinalNumber(t,{unit:"hour"});default:return qi(e.length,t)}}validate(t,e){return e>=0&&e<=23}set(t,e,r){return t.setHours(r,0,0,0),t}incompatibleTokens=["a","b","h","K","k","t","T"]},K:new class extends si{priority=70;parse(t,e,r){switch(e){case"K":return Li(pi,t);case"Ko":return r.ordinalNumber(t,{unit:"hour"});default:return qi(e.length,t)}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.getHours()>=12&&r<12?t.setHours(r+12,0,0,0):t.setHours(r,0,0,0),t}incompatibleTokens=["h","H","k","t","T"]},k:new class extends si{priority=70;parse(t,e,r){switch(e){case"k":return Li(fi,t);case"ko":return r.ordinalNumber(t,{unit:"hour"});default:return qi(e.length,t)}}validate(t,e){return e>=1&&e<=24}set(t,e,r){const n=r<=24?r%24:r;return t.setHours(n,0,0,0),t}incompatibleTokens=["a","b","h","H","K","t","T"]},m:new class extends si{priority=60;parse(t,e,r){switch(e){case"m":return Li(vi,t);case"mo":return r.ordinalNumber(t,{unit:"minute"});default:return qi(e.length,t)}}validate(t,e){return e>=0&&e<=59}set(t,e,r){return t.setMinutes(r,0,0),t}incompatibleTokens=["t","T"]},s:new class extends si{priority=50;parse(t,e,r){switch(e){case"s":return Li(yi,t);case"so":return r.ordinalNumber(t,{unit:"second"});default:return qi(e.length,t)}}validate(t,e){return e>=0&&e<=59}set(t,e,r){return t.setSeconds(r,0),t}incompatibleTokens=["t","T"]},S:new class extends si{priority=30;parse(t,e){return Di(qi(e.length,t),(t=>Math.trunc(t*Math.pow(10,3-e.length))))}set(t,e,r){return t.setMilliseconds(r),t}incompatibleTokens=["t","T"]},X:new class extends si{priority=10;parse(t,e){switch(e){case"X":return Fi(Ti,t);case"XX":return Fi(Ri,t);case"XXXX":return Fi(Pi,t);case"XXXXX":return Fi(Ci,t);default:return Fi(ji,t)}}set(t,e,r){return e.timestampIsSet?t:an(t,t.getTime()-pn(t)-r)}incompatibleTokens=["t","T","x"]},x:new class extends si{priority=10;parse(t,e){switch(e){case"x":return Fi(Ti,t);case"xx":return Fi(Ri,t);case"xxxx":return Fi(Pi,t);case"xxxxx":return Fi(Ci,t);default:return Fi(ji,t)}}set(t,e,r){return e.timestampIsSet?t:an(t,t.getTime()-pn(t)-r)}incompatibleTokens=["t","T","X"]},t:new class extends si{priority=40;parse(t){return Ni(t)}set(t,e,r){return[an(t,1e3*r),{timestampIsSet:!0}]}incompatibleTokens="*"},T:new class extends si{priority=20;parse(t){return Ni(t)}set(t,e,r){return[an(t,r),{timestampIsSet:!0}]}incompatibleTokens="*"}},Yi=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Qi=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Gi=/^'([^]*?)'?$/,Ji=/''/g,Xi=/\S/,Ki=/[a-zA-Z]/;function Vi(t,e,r,n){const i=()=>an(r,NaN),o=Object.assign({},hn()),a=o.locale??Sn,s=o.firstWeekContainsDate??o.locale?.options?.firstWeekContainsDate??1,u=o.weekStartsOn??o.locale?.options?.weekStartsOn??0;if(!e)return t?i():sn(r,n?.in);const c={firstWeekContainsDate:s,weekStartsOn:u,locale:a},h=[new ai(n?.in,r)],l=e.match(Qi).map((t=>{const e=t[0];if(e in Un){return(0,Un[e])(t,a.formatLong)}return t})).join("").match(Yi),d=[];for(let r of l){Jn(r)&&Xn(r,e,t),Gn(r)&&Xn(r,e,t);const n=r[0],o=Wi[n];if(o){const{incompatibleTokens:e}=o;if(Array.isArray(e)){const t=d.find((t=>e.includes(t.token)||t.token===n));if(t)throw new RangeError(`The format string mustn't contain \`${t.fullToken}\` and \`${r}\` at the same time`)}else if("*"===o.incompatibleTokens&&d.length>0)throw new RangeError(`The format string mustn't contain \`${r}\` and any other token at the same time`);d.push({token:n,fullToken:r});const s=o.run(t,r,a.match,c);if(!s)return i();h.push(s.setter),t=s.rest}else{if(n.match(Ki))throw new RangeError("Format string contains an unescaped latin alphabet character `"+n+"`");if("''"===r?r="'":"'"===n&&(r=r.match(Gi)[1].replace(Ji,"'")),0!==t.indexOf(r))return i();t=t.slice(r.length)}}if(t.length>0&&Xi.test(t))return i();const f=h.map((t=>t.priority)).sort(((t,e)=>e-t)).filter(((t,e,r)=>r.indexOf(t)===e)).map((t=>h.filter((e=>e.priority===t)).sort(((t,e)=>e.subPriority-t.subPriority)))).map((t=>t[0]));let p=sn(r,n?.in);if(isNaN(+p))return i();const g={};for(const t of f){if(!t.validate(p,c))return i();const e=t.set(p,g,c);Array.isArray(e)?(p=e[0],Object.assign(g,e[1])):p=e}return p}class Zi extends tn{constructor(t={},e,r={}){super(t,e,"store-hour",r)}get day(){return this.getAttribute("day")}get isClosed(){return null===this.getAttribute("start")&&null===this.getAttribute("end")}get is24Hours(){const t=this.startDateInstance,e=this.endDateInstance;if(null===t||null===e||!yn(t)||!yn(e))return!1;const r=Math.abs(t.getTime()-e.getTime());return Math.floor(r/1e3/60)/60>23}get startDateInstance(){if(!this.hasAttribute("start"))return null;const t=this.getAttribute("start");if("string"!=typeof t)return null;const e=3===t.split(":").length;return Vi(t,e?"HH:mm:ss":"HH:mm",new Date)}get endDateInstance(){if(!this.hasAttribute("end"))return null;const t=this.getAttribute("end");if("string"!=typeof t)return null;const e=3===t.split(":").length;return Vi(t,e?"HH:mm:ss":"HH:mm",new Date)}get humanReadableHoursRange(){const t=this.startDateInstance,e=this.endDateInstance;return null!==t&&null!==e&&yn(t)&&yn(e)?`${ri(t,"p")} - ${ri(e,"p")}`:`${this.getAttribute("start")} - ${this.getAttribute("end")}`}get humanReadableHours(){return this.isClosed?"Closed":this.is24Hours?"24 Hours":this.humanReadableHoursRange}create(){throw new Error("There is no create() method store location!")}update(){throw new Error("There is no update() method store location!")}destroy(){throw new Error("There is no destroy() method store location!")}reload(){throw new Error("There is no reload() method store location!")}}z("resource","StoreHour",Zi);class to extends tn{constructor(t={},e,r={}){super(t,e,"store-location",r)}get latitude(){return this.getAttribute("place.location.coordinates.1")}get longitude(){return this.getAttribute("place.location.coordinates.0")}get hours(){const t=this.getAttribute("hours",[]);return new et((t||[]).map((t=>new Zi(t,this.adapter))))}get storeData(){const t=this.getAttribute("store_data"),e=this.getAttribute("store");return t||(e&&"object"==typeof e?e:null)}get storeId(){const t=this.getAttribute("store"),e=this.storeData;return"string"==typeof t?t:e?.id||e?.public_id}get merchant(){return this.storeData?I("resource","Store",this.storeData,this.adapter):null}get isAlwaysOpen(){return this.hours.length>0&&this.hours.every((t=>t?.is24Hours))}get today(){const t=ri(new Date,"EEEE");return this.schedule[t]}get schedule(){const t={},e=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"];for(let r=0;rnew et(t.map((t=>new rn(t,this.adapter))))))}getTags(t={}){return this.adapter.get("tags",t)}getLocations(t={}){return this.adapter.get("locations",{store:this.id,...t}).then((t=>new et(t.map((t=>(t.place&&(t.place=new mt(t.place,this.adapter)),new to(t,this.adapter)))))))}getLocation(t){return this.adapter.get(`locations/${t}`,{store:this.id}).then((t=>new to(t,this.adapter)))}getPaymentGateways(t={}){return this.adapter.get("gateways",t).then((t=>new et(t.map((t=>new eo(t,this.adapter))))))}getPaymentGateway(t){return this.adapter.get(`gateways/${t}`).then((t=>new eo(t,this.adapter)))}}z("resource","Store",ro);class no extends tn{constructor(t={},e,r={}){super(t,e,"product",r)}variants(){return this.getAttribute("variants")}addons(){return this.getAttribute("addon_categories")}images(){return this.getAttribute("images")??[]}videos(){return this.getAttribute("videos")??[]}hours(){return this.getAttribute("hours")??[]}get isOnSale(){return this.getAttribute("is_on_sale")}get isNotOnSale(){return!this.getAttribute("is_on_sale")}get formattedAmount(){const{price:t,sale_price:e,currency:r}=this.getAttributes(["price","sale_price","currency"]);return this.isOnSale?Zr(e)||Zr(r)?null:Vr(e/100,r):Zr(t)||Zr(r)?null:Vr(t/100,r)}get merchant(){const t=this.getAttribute("store");return t&&"object"==typeof t?new ro(t,this.adapter):null}getReviews(){return this.adapter.get("reviews",{store:this.id}).then((t=>new et(t.map((t=>new rn(t,this.adapter))))))}}z("resource","Product",no);class io extends tn{constructor(t={},e,r={}){super(t,e,"category",r)}getProducts(){return this.adapter.get("products",{category:this.id}).then((t=>new et(t.map((t=>new no(t,this.adapter))))))}}z("resource","Category",io);const oo=new ht({login:function(t,e=null,r={}){if(function(t=""){return/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/.test(t)}(t))return this.adapter.post("customers/login-with-sms",{phone:t});if(!e)throw new Error("Login requires password!");return this.adapter.post("customers/login",{identity:t,password:e,...r}).then(this.afterFetch.bind(this))},loginWithApple:function(t,e,r,n,i,o={}){return this.adapter.post("customers/login-with-apple",{appleUserId:t,identityToken:e,authorizationCode:r,email:n,name:i,...o}).then(this.afterFetch.bind(this))},loginWithFacebook:function(t,e,r,n,i={}){return this.adapter.post("customers/login-with-facebook",{facebookUserId:t,email:e,name:r,avatarUrl:n,...i}).then(this.afterFetch.bind(this))},loginWithGoogle:function(t,e,r={}){return this.adapter.post("customers/login-with-google",{idToken:t,clientId:e,...r}).then(this.afterFetch.bind(this))},verifyCode:function(t,e,r={}){return this.adapter.post("customers/verify-code",{identity:t,code:e,...r}).then(this.afterFetch.bind(this))},requestCreationCode(t,e="email"){return this.adapter.post("customers/request-creation-code",{identity:t,mode:e})},create(t,e,r={}){return this.adapter.post("customers",{identity:t,code:e,...r}).then(this.afterFetch.bind(this))},retrieve:function(t){return this.findRecord(t)}});class ao extends tn{constructor(t={},e,r={}){super(t,e,"customer",{actions:oo,...r})}setAdapter(t){return this.adapter=t,this.store=new Kr(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:this.options?.actions}),this}get token(){const t=this.getAttribute("token");return"string"==typeof t?t:void 0}async syncDevice(t,e){return this.performAuthorizedRequest("customers/register-device",{token:t,platform:e},"POST")}performAuthorizedRequest(t,e={},r="GET",n={}){const i={...n,headers:{...n.headers,"Customer-Token":this.token}};return this.adapter[r.toLowerCase()](t,e,i)}async getSavedPlaces(){const t=await this.performAuthorizedRequest("customers/places");return new et(t.map((t=>new mt(t,this.adapter))))}async getOrderHistory(t={}){const e=await this.performAuthorizedRequest("customers/orders",t);return new et(e.map((t=>new gt(t,this.adapter))))}getStripeEphemeralKey(t={}){return this.performAuthorizedRequest("customers/stripe-ephemeral-key",t,"POST")}getStripeSetupIntent(t={}){return this.performAuthorizedRequest("customers/stripe-setup-intent",t,"POST")}startAccountClosure(t={},e={}){return this.performAuthorizedRequest("customers/account-closure",t,"POST",e)}confirmAccountClosure(t,e={},r={}){return this.performAuthorizedRequest("customers/confirm-account-closure",{code:t,...e},"POST",r)}requestPhoneVerification(t,e={},r={}){return this.performAuthorizedRequest("customers/request-phone-verification",{phone:t,...e},"POST",r)}verifyPhoneNumber(t,e,r={},n={}){return this.performAuthorizedRequest("customers/verify-phone-number",{code:t,phone:e,...r},"POST",n)}updateContactAlias(t={},e={}){return this.performAuthorizedRequest(`contacts/${this.id}`,t,"PUT",e).then((t=>(this.syncAttributes(t),this)))}}z("resource","Customer",ao);const{isArray:so}=Array,uo=new ht({create:void 0,findAll:void 0,query:void 0,queryRecord:void 0,add:function(t,e,r=1,n={},i={}){return this.adapter.post(`${this.namespace}/${t}/${e}`,{...n,quantity:r},i).then(this.afterFetch.bind(this))},update:function(t,e,r,n={},i={}){return this.adapter.put(`${this.namespace}/${t}/${e}`,{...n,quantity:r},i).then(this.afterFetch.bind(this))},remove:function(t,e,r={}){return this.adapter.delete(`${this.namespace}/${t}/${e}`,{},r).then(this.afterFetch.bind(this))},empty:function(t,e={}){return this.adapter.put(`${this.namespace}/${t}/empty`,{},e).then(this.afterFetch.bind(this))},retrieve:function(t=""){return this.findRecord(t)}});class co extends tn{constructor(t={},e,r={}){super(t,e,"cart",{actions:uo,...r})}add(t,e=1,r={},n={}){return t instanceof no&&(t=t.id),this.store.add(this.id,t,e,r,n)}update(t,e,r={},n={}){return this.store.update.call(this.store,this.id,t,e,r,n)}remove(t,e={}){return this.store.remove(this.id,t,e)}empty(t={}){return this.store.empty(this.id,t)}delete(){return this.destroy()}refresh(){return this.store.retrieve(this.id)}subtotal(){return this.contents().reduce(((t,e)=>t+Number(e?.subtotal||0)),0)}contents(){const t=this.getAttribute("items",[]);return so(t)?t:[]}hasProduct(t){return-1!==this.contents().findIndex((e=>e.product_id===t))}get isEmpty(){return 0===this.contents().length}get isNotEmpty(){return!this.isEmpty}}z("resource","Cart",co);class ho extends tn{constructor(t={},e,r={}){super(t,e,"network",r)}getTags(t={}){return this.adapter.get("tags",t)}async getResourceCollection(t,e,r={}){const n=await this.adapter.get(t,r);return new et(n.map((t=>new e(t,this.adapter))))}async getStores(t={}){return this.getResourceCollection("stores",ro,t)}async getStoreLocations(t={}){return this.getResourceCollection("store-locations",to,t)}async getCategories(t={}){return this.getResourceCollection("categories",io,t)}async search(t,e={}){return this.getResourceCollection("search",no,{query:t,with_store:!0,...e})}async lookupStore(t){const e=await this.adapter.get(`lookup/${t}`);return new ro(e,this.adapter)}async getReviews(t,e={}){return this.getResourceCollection("reviews",rn,{store:t,...e})}async getPaymentGateways(t={}){return this.getResourceCollection("gateways",eo,t)}}z("resource","Network",ho);class lo extends Dt{constructor(t={},e,r={}){let n=t,i=e;(t instanceof Ft||t&&"function"==typeof t.get&&"function"==typeof t.post)&&(n={},i=t),super(n,i,"service-quote",r)}setAdapter(t){return this.adapter=t,this.store=new Kr(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:this.options?.actions}),this}get formattedAmount(){const{amount:t,currency:e}=this.getAttributes(["amount","currency"]);return Zr(t)||Zr(e)?null:Vr(t/100,e)}async fromCart(...t){return this.fetchServiceQuotesFromCart(...t)}async fetchServiceQuotesFromCart(t,e,r,n="storefront",i=!1){"object"==typeof t&&t?.id&&(t=t.id),"object"==typeof e&&e?.id&&(e=e.id),"object"==typeof r&&r?.id&&(r=r.id);const o=await this.adapter.get("service-quotes/from-cart",{origin:t,destination:e,cart:r,config:n,all:i});return a=o,Array.isArray(a)?new et(o.map((t=>new lo(t,this.adapter)))):new lo(o,this.adapter);var a}static async getFromCart(t,e,r,n,i="storefront",o=!1){return new lo(t).fetchServiceQuotesFromCart(e,r,n,i,o)}}z("resource","DeliveryServiceQuote",lo);class fo extends gt{constructor(t={},e,r={}){super(t,e,r)}}z("resource","Order",fo);const po=new ht({create:void 0,findAll:void 0,query:void 0,queryRecord:void 0,initialize:function(t,e,r,n,i={},o={}){return lt(t)&&(t=t.id),lt(e)&&(e=e.id),lt(r)&&(r=r.id),lt(n)&&(n=n.getAttribute("code")),this.adapter.get(`${this.namespace}/before`,{...i,customer:t,cart:e,serviceQuote:r,gateway:n},o)},captureOrder:function(t,e={},r={}){return this.adapter.post(`${this.namespace}/capture`,{token:t,...e},r).then((t=>new fo(t,this.adapter)))},createStripeSetupIntent:function(t,e={},r={}){return lt(t)&&(t=t.id),this.adapter.post(`${this.namespace}/stripe-setup-intent`,{customer:t,...e},r)},updateStripePaymentIntent:function(t,e,r,n,i={},o={}){return lt(e)&&(e=e.id),lt(r)&&(r=r.id),lt(n)&&(n=n.id),this.adapter.put(`${this.namespace}/stripe-update-payment-intent`,{paymentIntent:t,customer:e,cart:r,serviceQuote:n,...i},o)},getStatus:function(t,e,r={}){return lt(t)&&(t=t.id),this.adapter.get(`${this.namespace}/status`,{checkout:t,token:e},r)},captureQPay:function(t,e={},r={}){return lt(t)&&(t=t.id),this.adapter.post(`${this.namespace}/capture-qpay`,{checkout:t,...e},r)},captureQPayCallback:function(t,e={},r={}){return lt(t)&&(t=t.id),this.adapter.get(`${this.namespace}/capture-qpay`,{checkout:t,...e},r)}});class go extends tn{constructor(t={},e,r={}){super(t,e,"checkout",{actions:po,...r})}initialize(t,e,r,n,i={},o={}){return this.store.initialize(t,e,r,n,i,o)}captureOrder(t,e={},r={}){return this.store.captureOrder(t,e,r)}createStripeSetupIntent(t,e={},r={}){return this.store.createStripeSetupIntent(t,e,r)}updateStripePaymentIntent(t,e,r,n,i={},o={}){return this.store.updateStripePaymentIntent(t,e,r,n,i,o)}getStatus(t,e,r={}){return this.store.getStatus(t,e,r)}captureQPay(t,e={},r={}){return this.store.captureQPay(t,e,r)}captureQPayCallback(t,e={},r={}){return this.store.captureQPayCallback(t,e,r)}}z("resource","Checkout",go);class vo extends tn{constructor(t={},e,r={}){super(t,e,"food-truck",r)}}function yo(t){return lt(t)?t.id:t}z("resource","FoodTruck",vo);const mo=new ht({create:void 0,update:void 0,findAll:void 0,query:void 0,queryRecord:void 0,completePickup:function(t,e={},r={}){return this.adapter.put(`${this.namespace}/picked-up`,{order:yo(t),...e},r)},getReceipt:function(t,e={},r={}){return this.adapter.post(`${this.namespace}/receipt`,{order:yo(t),...e},r)}});class wo{version;options;adapter;products;categories;foodTrucks;reviews;customers;cart;checkout;orders;constructor(t,e={},r=!1){if(this.version=e.version||"v1",this.options={version:this.version,host:e.host||"https://api.fleetbase.io",namespace:e.namespace||`storefront/${this.version}`,publicKey:t,debug:r},!("string"==typeof(n=t)&&n.length>30&&(n.startsWith("store_")||n.startsWith("network_"))))throw new Error("⚠️ Invalid Storefront key given to Storefront SDK");var n;this.adapter=e.adapter||it(this.options),this.initializeStores()}initializeStores(){return this.products=new Kr("product",this.adapter),this.categories=new Kr("category",this.adapter),this.foodTrucks=new Kr("food-truck",this.adapter),this.reviews=new Kr("review",this.adapter).extendActions(en),this.customers=new Kr("customer",this.adapter).extendActions(oo),this.cart=new Kr("cart",this.adapter).extendActions(uo),this.checkout=new Kr("checkout",this.adapter).extendActions(po),this.orders=new Kr("order",this.adapter).extendActions(mo),this}about(t={}){return this.adapter.get("about").then((e=>t.resource?this.hydrateOwner(e):e))}getOwner(){return this.about({resource:!0})}lookup(t,e={}){return this.adapter.get(`lookup/${t}`).then((t=>e.resource?this.hydrateOwner(t):t))}lookupResource(t){return this.lookup(t,{resource:!0})}search(t,e={}){return this.adapter.get("search",{query:t,...e}).then((t=>new et(t.map((t=>new no(t,this.adapter))))))}hydrateOwner(t={}){return!0===t?.is_network?new ho(t,this.adapter):new ro(t,this.adapter)}static newInstance(...t){return new wo(...t)}setAdapter(t){return this.adapter=t,this.initializeStores()}getAdapter(){return this.adapter}}t.Cart=co,t.Category=io,t.Checkout=go,t.Customer=ao,t.DeliveryServiceQuote=lo,t.FoodTruck=vo,t.Network=ho,t.Order=fo,t.PaymentGateway=eo,t.Product=no,t.Review=rn,t.Store=ro,t.StoreHour=Zi,t.StoreLocation=to,t.default=wo,t.lookup=I,Object.defineProperty(t,"__esModule",{value:!0})})); //# sourceMappingURL=@storefront.min.js.map diff --git a/dist/@storefront.min.js.map b/dist/@storefront.min.js.map index ceac22d..a22fcfa 100644 --- a/dist/@storefront.min.js.map +++ b/dist/@storefront.min.js.map @@ -1 +1 @@ -{"version":3,"file":"@storefront.min.js","sources":["../node_modules/.pnpm/@fleetbase+sdk@1.2.13/node_modules/@fleetbase/sdk/dist/esm/fleetbase.js","../src/store.js","../src/utils/format-currency.js","../src/utils/is-empty.js","../src/utils/array.js","../src/resource.js","../src/resources/review.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constants.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constructFrom.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/toDate.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addDays.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/defaultOptions.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfWeek.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfISOWeek.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISOWeekYear.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfDay.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInCalendarDays.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/normalizeDates.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isValid.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isDate.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildFormatLongFn.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildLocalizeFn.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/localize.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchFn.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/match.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDayOfYear.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfYear.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISOWeek.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfISOWeekYear.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getWeekYear.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getWeek.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfWeekYear.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/addLeadingZeros.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/lightFormatters.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/formatters.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/longFormatters.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/protectedTokens.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/format.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/Setter.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/transpose.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/Parser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/EraParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/constants.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/utils.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/YearParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/QuarterParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/MonthParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setWeek.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setISOWeek.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DateParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setDay.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DayParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setISODay.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISODay.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISODayParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/AMPMParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/MinuteParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/SecondParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDefaultOptions.js","../src/resources/store-hour.js","../src/resources/store-location.js","../src/resources/payment-gateway.js","../src/resources/store.js","../src/resources/product.js","../src/resources/category.js","../src/resources/customer.js","../src/utils/is-phone.js","../src/resources/cart.js","../src/resources/network.js","../src/resources/delivery-service-quote.js","../src/resources/checkout.js","../src/resources/food-truck.js","../src/storefront.js","../src/utils/is-key-valid.js"],"sourcesContent":["function t(t,e){this.v=t,this.k=e}function e(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,a=!0,s=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function g(t,e,n){return(e=j(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function y(t){return y=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},y(t)}function b(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,\"prototype\",{writable:!1}),e&&O(t,e)}function m(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(m=function(){return!!t})()}function w(t){if(\"undefined\"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t[\"@@iterator\"])return Array.from(t)}function k(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}function E(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function A(t){for(var e=1;e=0;--o){var a=this.tryEntries[o],s=a.completion;if(\"root\"===a.tryLoc)return i(\"end\");if(a.tryLoc<=this.prev){var u=r.call(a,\"catchLoc\"),c=r.call(a,\"finallyLoc\");if(u&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,\"finallyLoc\")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),_(n),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var i=r.arg;_(n)}return i}}throw Error(\"illegal catch attempt\")},delegateYield:function(e,n,r){return this.delegate={iterator:L(e),resultName:n,nextLoc:r},\"next\"===this.method&&(this.arg=t),g}},e}function O(t,e){return O=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},O(t,e)}function R(t,e){return n(t)||function(t,e){var n=null==t?null:\"undefined\"!=typeof Symbol&&t[Symbol.iterator]||t[\"@@iterator\"];if(null!=n){var r,i,o,a,s=[],u=!0,c=!1;try{if(o=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=o.call(n)).done)&&(s.push(r.value),s.length!==e);u=!0);}catch(t){c=!0,i=t}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw i}}return s}}(t,e)||_(t,e)||k()}function S(t){return function(t){if(Array.isArray(t))return e(t)}(t)||w(t)||_(t)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function j(t){var e=function(t,e){if(\"object\"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||\"default\");if(\"object\"!=typeof r)return r;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===e?String:Number)(t)}(t,\"string\");return\"symbol\"==typeof e?e:e+\"\"}function T(t){return T=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},T(t)}function _(t,n){if(t){if(\"string\"==typeof t)return e(t,n);var r={}.toString.call(t).slice(8,-1);return\"Object\"===r&&t.constructor&&(r=t.constructor.name),\"Map\"===r||\"Set\"===r?Array.from(t):\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?e(t,n):void 0}}function P(t){return function(){return new L(t.apply(this,arguments))}}function L(e){var n,r;function i(n,r){try{var a=e[n](r),s=a.value,u=s instanceof t;Promise.resolve(u?s.v:s).then((function(t){if(u){var r=\"return\"===n?\"return\":\"next\";if(!s.k||t.done)return i(r,t);t=e[r](t).value}o(a.done?\"return\":\"normal\",t)}),(function(t){i(\"throw\",t)}))}catch(t){o(\"throw\",t)}}function o(t,e){switch(t){case\"return\":n.resolve({value:e,done:!0});break;case\"throw\":n.reject(e);break;default:n.resolve({value:e,done:!1})}(n=n.next)?i(n.key,n.arg):r=null}this._invoke=function(t,e){return new Promise((function(o,a){var s={key:t,arg:e,resolve:o,reject:a,next:null};r?r=r.next=s:(n=r=s,i(t,e))}))},\"function\"!=typeof e.return&&(this.return=void 0)}function C(t){var e=\"function\"==typeof Map?new Map:void 0;return C=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf(\"[native code]\")}catch(e){return\"function\"==typeof t}}(t))return t;if(\"function\"!=typeof t)throw new TypeError(\"Super expression must either be null or a function\");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return f(t,arguments,y(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),O(n,t)},C(t)}L.prototype[\"function\"==typeof Symbol&&Symbol.asyncIterator||\"@@asyncIterator\"]=function(){return this},L.prototype.next=function(t){return this._invoke(\"next\",t)},L.prototype.throw=function(t){return this._invoke(\"throw\",t)},L.prototype.return=function(t){return this._invoke(\"return\",t)};var N=function(){function t(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];h(this,t),g(this,\"uncountableWords\",[\"equipment\",\"information\",\"rice\",\"money\",\"species\",\"series\",\"fish\",\"sheep\",\"moose\",\"deer\",\"news\"]),g(this,\"pluralRules\",[[new RegExp(\"(m)an$\",\"gi\"),\"$1en\"],[new RegExp(\"(pe)rson$\",\"gi\"),\"$1ople\"],[new RegExp(\"(child)$\",\"gi\"),\"$1ren\"],[new RegExp(\"^(ox)$\",\"gi\"),\"$1en\"],[new RegExp(\"(ax|test)is$\",\"gi\"),\"$1es\"],[new RegExp(\"(octop|vir)us$\",\"gi\"),\"$1i\"],[new RegExp(\"(alias|status)$\",\"gi\"),\"$1es\"],[new RegExp(\"(bu)s$\",\"gi\"),\"$1ses\"],[new RegExp(\"(buffal|tomat|potat)o$\",\"gi\"),\"$1oes\"],[new RegExp(\"([ti])um$\",\"gi\"),\"$1a\"],[new RegExp(\"sis$\",\"gi\"),\"ses\"],[new RegExp(\"(?:([^f])fe|([lr])f)$\",\"gi\"),\"$1$2ves\"],[new RegExp(\"(hive)$\",\"gi\"),\"$1s\"],[new RegExp(\"([^aeiouy]|qu)y$\",\"gi\"),\"$1ies\"],[new RegExp(\"(x|ch|ss|sh)$\",\"gi\"),\"$1es\"],[new RegExp(\"(matr|vert|ind)ix|ex$\",\"gi\"),\"$1ices\"],[new RegExp(\"([m|l])ouse$\",\"gi\"),\"$1ice\"],[new RegExp(\"(quiz)$\",\"gi\"),\"$1zes\"],[new RegExp(\"s$\",\"gi\"),\"s\"],[new RegExp(\"$\",\"gi\"),\"s\"]]),g(this,\"singularRules\",[[new RegExp(\"(m)en$\",\"gi\"),\"$1an\"],[new RegExp(\"(pe)ople$\",\"gi\"),\"$1rson\"],[new RegExp(\"(child)ren$\",\"gi\"),\"$1\"],[new RegExp(\"([ti])a$\",\"gi\"),\"$1um\"],[new RegExp(\"((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$\",\"gi\"),\"$1$2sis\"],[new RegExp(\"(hive)s$\",\"gi\"),\"$1\"],[new RegExp(\"(tive)s$\",\"gi\"),\"$1\"],[new RegExp(\"(curve)s$\",\"gi\"),\"$1\"],[new RegExp(\"([lr])ves$\",\"gi\"),\"$1f\"],[new RegExp(\"([^fo])ves$\",\"gi\"),\"$1fe\"],[new RegExp(\"([^aeiouy]|qu)ies$\",\"gi\"),\"$1y\"],[new RegExp(\"(s)eries$\",\"gi\"),\"$1eries\"],[new RegExp(\"(m)ovies$\",\"gi\"),\"$1ovie\"],[new RegExp(\"(x|ch|ss|sh)es$\",\"gi\"),\"$1\"],[new RegExp(\"([m|l])ice$\",\"gi\"),\"$1ouse\"],[new RegExp(\"(bus)es$\",\"gi\"),\"$1\"],[new RegExp(\"(o)es$\",\"gi\"),\"$1\"],[new RegExp(\"(shoe)s$\",\"gi\"),\"$1\"],[new RegExp(\"(cris|ax|test)es$\",\"gi\"),\"$1is\"],[new RegExp(\"(octop|vir)i$\",\"gi\"),\"$1us\"],[new RegExp(\"(alias|status)es$\",\"gi\"),\"$1\"],[new RegExp(\"^(ox)en\",\"gi\"),\"$1\"],[new RegExp(\"(vert|ind)ices$\",\"gi\"),\"$1ex\"],[new RegExp(\"(matr)ices$\",\"gi\"),\"$1ix\"],[new RegExp(\"(quiz)zes$\",\"gi\"),\"$1\"],[new RegExp(\"s$\",\"gi\"),\"\"]]),g(this,\"nonTitlecasedWords\",[\"and\",\"or\",\"nor\",\"a\",\"an\",\"the\",\"so\",\"but\",\"to\",\"of\",\"at\",\"by\",\"from\",\"into\",\"on\",\"onto\",\"off\",\"out\",\"in\",\"over\",\"with\",\"for\"]),g(this,\"idSuffix\",new RegExp(\"(_ids|_id)$\",\"g\")),g(this,\"underbar\",new RegExp(\"_\",\"g\")),g(this,\"spaceOrUnderbar\",new RegExp(\"[ _]\",\"g\")),g(this,\"uppercase\",new RegExp(\"([A-Z])\",\"g\")),g(this,\"underbarPrefix\",new RegExp(\"^_\")),this.str=e,this.chain=n}return v(t,[{key:\"get\",value:function(){return this.str}},{key:\"applyRules\",value:function(t,e,n,r){if(r)t=r;else if(!(n.indexOf(t.toLowerCase())>-1))for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:null;return t=t||this.str,this.applyRules(t,this.pluralRules,this.uncountableWords,e)}},{key:\"singularize\",value:function(t,e){return t=t||this.str,this.applyRules(t,this.singularRules,this.uncountableWords,e)}},{key:\"camelize\",value:function(t,e){for(var n=(t=t||this.str).split(\"/\"),r=0;r1&&void 0!==arguments[1]&&arguments[1];return t=t||this.str,t=this.underscore(this.demodulize(t))+(e?\"\":\"_\")+\"id\",this.str=t,!0===this.chain?this:t}},{key:\"ordinalize\",value:function(t){for(var e=(t=t||this.str).split(\" \"),n=0;n2?i-2:0),a=2;a2?n-2:0),i=2;i2?n-2:0),i=2;i2?n-2:0),i=2;i1?e-1:0),r=1;r3&&void 0!==arguments[3]?arguments[3]:[];if(V(t))if(r.length<=X)t.splice.apply(t,[e,n].concat(S(r)));else{t.splice(e,n);for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:0,r=t.length,i=n;i2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3?arguments[3]:void 0,i=t.length;return n<0&&(n+=i),nt(t,r&&e!=e?function(t){return t!=t}:function(t){return t===e},n)}function it(t,e,n){return Q(t,e,0,[n]),n}function ot(){return f(at,Array.prototype.slice.call(arguments))}var at=function(){function t(){return h(this,t),r(V(arguments[0])?l(this,t,S(arguments[0])):l(this,t,arguments))}return b(t,C(Array)),v(t,[{key:\"notEmpty\",get:function(){return this.length>0}},{key:\"empty\",get:function(){return 0===this.length}},{key:\"first\",get:function(){return tt(this,0)}},{key:\"last\",get:function(){return tt(this,this.length-1)}},{key:\"replace\",value:function(t,e){return Q(this,t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:[]),this}},{key:\"objectsAt\",value:function(t){var e=this;return t.map((function(t){return tt(e,t)}))}},{key:\"objectAt\",value:function(t){return tt(this,t)}},{key:\"indexOf\",value:function(t,e){return rt(this,t,e,!1)}},{key:\"lastIndexOf\",value:function(t,e){var n=this.length;(void 0===e||e>=n)&&(e=n-1),e<0&&(e+=n);for(var r=e;r>=0;r--)if(tt(this,r)===t)return r;return-1}},{key:\"includes\",value:function(t,e){return-1!==rt(this,t,e,!0)}},{key:\"findBy\",value:function(){return t=this,e=et.apply(void 0,arguments),-1===(r=nt(t,e.bind(n),0))?void 0:tt(t,r);var t,e,n,r}},{key:\"findIndexBy\",value:function(){return nt(this,et.apply(void 0,arguments))}},{key:\"isEvery\",value:function(){return t=this,e=et.apply(void 0,arguments),r=e.bind(n),-1===nt(t,(function(t,e,n){return!r(t,e,n)}),0);var t,e,n,r}},{key:\"isAny\",value:function(){return t=this,e=et.apply(void 0,arguments),-1!==nt(t,e.bind(n),0);var t,e,n}},{key:\"invoke\",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:Y,n=[],r=new Set,i=\"function\"==typeof e?e:function(t){return get(t,e)};return t.forEach((function(t){var e=i(t);r.has(e)||(r.add(e),n.push(t))})),n}(this,t)}},{key:\"without\",value:function(t){if(!this.includes(t))return this;var e=t==t?function(e){return e!==t}:function(t){return t==t};return this.filter(e)}},{key:\"clear\",value:function(){var t=this.length;return 0===t||this.replace(0,t,[]),this}},{key:\"insertAt\",value:function(t,e){return it(this,t,e),this}},{key:\"replaceAt\",value:function(t,e){return this.replace(t,1,[e])}},{key:\"removeAt\",value:function(t,e){return function(t,e){return Q(t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,[]),t}(this,t,e)}},{key:\"pushObject\",value:function(t){return this.insertAt(this.length,t)}},{key:\"pushObjects\",value:function(t){return this.replace(this.length,0,t),this}},{key:\"popObject\",value:function(){var t=this.length;if(0===t)return null;var e=tt(this,t-1);return this.removeAt(t-1,1),e}},{key:\"shiftObject\",value:function(){if(0===this.length)return null;var t=tt(this,0);return this.removeAt(0),t}},{key:\"unshiftObject\",value:function(t){return it(this,0,t)}},{key:\"unshiftObjects\",value:function(t){return this.replace(0,0,t),this}},{key:\"reverseObjects\",value:function(){var t=this.length;if(0===t)return this;var e=this.toArray().reverse();return this.replace(0,t,e),this}},{key:\"setObjects\",value:function(t){if(0===t.length)return this.clear();var e=this.length;return this.replace(0,e,t),this}},{key:\"removeObject\",value:function(t){for(var e=this.length||0;--e>=0;){tt(this,e)===t&&this.removeAt(e)}return this}},{key:\"removeObjects\",value:function(t){for(var e=t.length-1;e>=0;e--)this.removeObject(t[e]);return this}},{key:\"addObject\",value:function(t){return this.includes(t)||this.pushObject(t),this}},{key:\"addObjects\",value:function(t){var e=this;return t.forEach((function(t){return e.addObject(t)})),this}}])}();function st(t){var e=null==t;if(e)return e;if(\"number\"==typeof t.size)return!t.size;var n=T(t);if(\"object\"===n){var r=t.size;if(\"number\"==typeof r)return!r}if(\"number\"==typeof t.length&&\"function\"!==n)return!t.length;if(\"object\"===n){var i=t.length;if(\"number\"==typeof i)return!i}return!1}function ut(t){return isFinite(t)&&Math.abs(t)<=90}function ct(t){return isFinite(t)&&Math.abs(t)<=180&&Math.abs(t)>=90}function lt(){var t,e,n;return!(\"undefined\"==typeof process||\"object\"!==T(null===(t=process)||void 0===t?void 0:t.env)&&-1===(null===(e=process.release)||void 0===e||null===(e=e.name)||void 0===e?void 0:e.search(/node|io.js/))||\"undefined\"!=typeof window&&\"ReactNative\"!==(null===(n=window)||void 0===n||null===(n=n.navigator)||void 0===n?void 0:n.product))}function ht(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return lt()?W(\"adapter\",\"NodeAdapter\",t):W(\"adapter\",\"BrowserAdapter\",t)}var ft=function(){return v((function t(e){h(this,t),this.place=e,this.geometry=null==e?void 0:e.geometry,this.components=this.parseComponents(),this.attributes=this.parseProperties()}),[{key:\"parse\",value:function(){this.parseComponents(),this.parseProperties()}},{key:\"parseComponents\",value:function(){var t;return((null===(t=this.place)||void 0===t?void 0:t.address_components)||[]).reduce((function(t,e){return e.types.forEach((function(n){t[n]=e})),t}),{})}},{key:\"parseProperties\",value:function(){var t,e={streetNumber:this.get(\"street_number\"),streetName:this.get(\"route\"),coordinates:null!==(t=this.geometry)&&void 0!==t&&t.location?Object.values(this.geometry.location):[0,0],city:this.or([\"locality\",\"sublocality\",\"sublocality_level_1\",\"neighborhood\",\"administrative_area_level_3\",\"administrative_area_level_2\"]),county:this.get(\"administrative_area_level_2\"),stateShort:this.get(\"administrative_area_level_1\",!0),stateLong:this.get(\"administrative_area_level_1\"),countryShort:this.get(\"country\",!0),country:this.get(\"country\",!0),countryLong:this.get(\"country\"),postalCode:this.get(\"postal_code\")};return e.address=[e.streetNumber,e.streetName].filter(Boolean).join(\" \"),e}},{key:\"all\",value:function(){return this.attributes}},{key:\"or\",value:function(){var t,e=p(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]);try{for(e.s();!(t=e.n()).done;){var n=t.value;if(V(n)){var r=n[0],i=n[1];if(this.has(r))return this.get(r,i)}else if(this.has(n))return this.get(n)}}catch(t){e.e(t)}finally{e.f()}return null}},{key:\"has\",value:function(t){return t in this.components}},{key:\"get\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t in this.components?e?this.components[t].short_name:this.components[t].long_name:null}},{key:\"setAttributes\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.attributes=A(A({},this.attributes),t),this}},{key:\"setAttribute\",value:function(t,e){return this.attributes[t]=e,this}},{key:\"getAttribute\",value:function(t){return this.attributes[t]||null}}])}(),dt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;h(this,t),this.type=\"Point\",this.coordinates=[n,e]}return v(t,[{key:\"latitude\",get:function(){return this.coordinates[1]}},{key:\"longitude\",get:function(){return this.coordinates[0]}},{key:\"lat\",value:function(){return this.latitude}},{key:\"lng\",value:function(){return this.longitude}},{key:\"serialize\",value:function(){return{type:\"Point\",coorindates:[this.lat(),this.lng()]}}},{key:\"toJson\",value:function(){return this.serialize()}},{key:\"toString\",value:function(){return\"(\".concat(this.latitude,\", \").concat(this.longitude,\")\")}}],[{key:\"fromGeoJson\",value:function(e){var n=R(e.coordinates,2),r=n[0];return new t(n[1],r)}}])}();function vt(t,e){var n=t();return Array.isArray(n)||\"object\"===T(n)?pt(n,e):null}function pt(t,e){var n,r=t,i=T(t),o=\"object\"===i,a=\"function\"===i,s=Array.isArray(t),u=\"string\"===T(e)&&e.includes(\".\")?e.split(\".\"):[e];if(s||o){for(var c=0;c1&&void 0!==arguments[1]?arguments[1]:[];if(t.actions=V(e)?e:[e],!V(e))return e instanceof mt&&e.extend(t),t;var n,r=p(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;t.extendActions(i)}}catch(t){r.e(t)}finally{r.f()}}function bt(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;h(this,t),this.actions=e,this.bind=n}),[{key:\"extend\",value:function(){var t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||this.bind;if(!t)return this;if(null!=this&&this.actions&&\"object\"===T(this.actions))for(var e in this.actions){var n=this.actions[e];\"function\"==typeof n?gt(t,e,n.bind(t)):gt(t,e,n)}return this}}])}();function wt(t){return t instanceof kt}var kt=function(){return v((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};h(this,t),this.attributes=e,this.dirtyAttributes={},this.changes={},this.isLoading=!1,this.isSaving=!1,this.isDestroying=!1,this.isReloading=!1,this.resource=r,this.options=i,this.version=i.version||\"v1\",this.setAdapter(n)}),[{key:\"setAdapter\",value:function(t){var e;return this.adapter=t,this.store=M(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:\"id\",get:function(){return this.getAttribute(\"id\")}},{key:\"create\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.mergeAttributes(e);return this.setFlags([\"isLoading\",\"isSaving\"]),this.store.create(n).then((function(e){return t.setFlags([\"isLoading\",\"isSaving\"],!1),e}))}},{key:\"update\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setFlags([\"isLoading\",\"isSaving\"]),this.store.update(this.attributes.id,e).then((function(e){return t.setFlags([\"isLoading\",\"isSaving\"],!1),e}))}},{key:\"destroy\",value:function(){var t=this;return this.setFlags([\"isLoading\",\"isDestroying\"]),this.store.destroy(this.attributes.id).then((function(e){return t.setFlags([\"isLoading\",\"isDestroying\"],!1),e}))}},{key:\"reload\",value:function(){var t=this;return this.setFlags([\"isLoading\",\"isReloading\"]),this.store.findRecord(this.attributes.id).then((function(e){return t.reset(),e}))}},{key:\"setFlags\",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=[\"isLoading\",\"isSaving\",\"isReloading\",\"isDestroying\"],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=this.getAttributes();return st(this.id)?this.create(e):!0===t.onlyDirty?this.savedirty():this.update(e)}},{key:\"saveDirty\",value:function(){for(var t=Object.keys(this.dirtyAttributes),e={},n=0;n0}},{key:\"mutate\",value:function(t,e){this.attributes[t]=e}},{key:\"setAttribute\",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null===n&&\"object\"===T(t))return this.setAttributes(t);var r=null!==(e=null==this?void 0:this.attributes[t])&&void 0!==e?e:null;return gt(this.attributes,t,n),gt(this.dirtyAttributes,t,r),V(null==this?void 0:this.changes[t])||(this.changes[t]=[]),this.changes[t].push({property:t,previousValue:r,value:n,changedAt:new Date}),this}},{key:\"setAttributes\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var e in t)this.setAttribute(e,t[e]);return this}},{key:\"getAttribute\",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=pt(null!==(e=null==this?void 0:this.attributes)&&void 0!==e?e:{},t);return void 0===r?n:r}},{key:\"hasAttribute\",value:function(t){if(V(t)){var e,n=t,r=Object.keys(null!==(e=this.attributes)&&void 0!==e?e:{});return n.every((function(t){return r.includes(t)}))}return!(null==this||!this.attributes)&&t in this.attributes}},{key:\"hasAttributes\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.hasAttribute(t)}},{key:\"isAttributeFilled\",value:function(t){var e=this;return V(t)?this.hasAttribute(t)&&t.every((function(t){return!st(e.getAttribute(t))})):this.hasAttribute(t)&&!st(this.getAttribute(t))}},{key:\"getAttributes\",value:function(t){var e={};if(null==t)return this.getAttributes(Object.keys(this.attributes));if(\"string\"==typeof t)return this.getAttribute(Array.prototype.slice.call(arguments));if(!V(t))throw new Error(\"No attribute properties provided!\");var n,r=p(t);try{for(r.s();!(n=r.n()).done;){var i,o,a=n.value;if(\"string\"==typeof a){var s=this.getAttribute(a);\"object\"!==T(null===(i=s)||void 0===i?void 0:i.attributes)||V(null===(o=s)||void 0===o?void 0:o.attributes)||(s=s.attributes),e[a]=s}}}catch(t){r.e(t)}finally{r.f()}return e}},{key:\"serialize\",value:function(){return this.getAttributes()}},{key:\"mergeAttributes\",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=null!==(t=null==this?void 0:this.attributes)&&void 0!==t?t:{};return this.attributes=A(A({},n),e),this.attributes}},{key:\"syncAttributes\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attributes=t}}])}();q(\"resource\",\"Resource\",kt);var Et=function(){return v((function t(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};h(this,t),this.resource=e,this.adapter=n||ht(),this.namespace=F(e),this.storage=ot(),this.options=r,this.extendActions(r.actions)}),[{key:\"extendActions\",value:function(){return yt(this,arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])}},{key:\"deposit\",value:function(t){return t}},{key:\"serialize\",value:function(t){return W(\"resource\",z(this.resource),t,this.adapter)}},{key:\"afterFetch\",value:function(t){return function(t,e){if(\"function\"==typeof t.options.onAfterFetch&&t.options.onAfterFetch(e),V(e)){var n,r=[],i=p(e);try{for(i.s();!(n=i.n()).done;){var o=n.value;r.push(t.afterFetch(o))}}catch(t){i.e(t)}finally{i.f()}return ot.apply(void 0,r)}var a=t.serialize(e);return t.deposit(a)}(this,t)}},{key:\"create\",value:(a=u(x().mark((function t(){var e,n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=4,this.adapter.post(\"\".concat(this.namespace),e,n);case 4:return r=t.sent,t.abrupt(\"return\",this.afterFetch(r));case 6:case\"end\":return t.stop()}}),t,this)}))),function(){return a.apply(this,arguments)})},{key:\"update\",value:(o=u(x().mark((function t(e){var n,r,i,o=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=o.length>1&&void 0!==o[1]?o[1]:{},r=o.length>2&&void 0!==o[2]?o[2]:{},t.next=4,this.adapter.put(\"\".concat(this.namespace,\"/\").concat(e),n,r);case 4:return i=t.sent,t.abrupt(\"return\",this.afterFetch(i));case 6:case\"end\":return t.stop()}}),t,this)}))),function(t){return o.apply(this,arguments)})},{key:\"findRecord\",value:(i=u(x().mark((function t(e){var n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=3,this.adapter.get(\"\".concat(this.namespace,\"/\").concat(e),{},n);case 3:return r=t.sent,t.abrupt(\"return\",this.afterFetch(r));case 5:case\"end\":return t.stop()}}),t,this)}))),function(t){return i.apply(this,arguments)})},{key:\"findAll\",value:(r=u(x().mark((function t(){var e,n,r=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=r.length>0&&void 0!==r[0]?r[0]:{},t.next=3,this.adapter.get(\"\".concat(this.namespace),{},e);case 3:return n=t.sent,t.abrupt(\"return\",this.afterFetch(n));case 5:case\"end\":return t.stop()}}),t,this)}))),function(){return r.apply(this,arguments)})},{key:\"query\",value:(n=u(x().mark((function t(){var e,n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=4,this.adapter.get(\"\".concat(this.namespace),e,n);case 4:return r=t.sent,t.abrupt(\"return\",this.afterFetch(r));case 6:case\"end\":return t.stop()}}),t,this)}))),function(){return n.apply(this,arguments)})},{key:\"queryRecord\",value:(e=u(x().mark((function t(){var e,n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},(e=i.length>0&&void 0!==i[0]?i[0]:{}).single=!0,t.next=5,this.adapter.get(\"\".concat(this.namespace),e,n);case 5:return r=t.sent,t.abrupt(\"return\",this.afterFetch(r));case 7:case\"end\":return t.stop()}}),t,this)}))),function(){return e.apply(this,arguments)})},{key:\"destroy\",value:(t=u(x().mark((function t(e){var n,r,i,o=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=o.length>1&&void 0!==o[1]?o[1]:{},r=wt(e)?e.getAttribute(\"id\"):e,t.next=4,this.adapter.delete(\"\".concat(this.namespace,\"/\").concat(r),{},n);case 4:return i=t.sent,t.abrupt(\"return\",this.afterFetch(i));case 6:case\"end\":return t.stop()}}),t,this)}))),function(e){return t.apply(this,arguments)})}]);var t,e,n,r,i,o,a}();q(\"store\",\"Store\",Et);var At=new mt({getDistanceAndTime:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get(\"\".concat(this.namespace,\"/\").concat(t,\"/distance-and-time\"),e,n)},getNextActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get(\"\".concat(this.namespace,\"/\").concat(t,\"/next-activity\"),e,n)},dispatch:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/dispatch\"),e,n).then(this.afterFetch.bind(this))},start:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/start\"),e,n).then(this.afterFetch.bind(this))},updateActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/update-activity\"),e,n).then(this.afterFetch.bind(this))},setDestination:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return wt(e)&&(e=e.id),this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/set-destination/\").concat(e),n,r).then(this.afterFetch.bind(this))},captureQrCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return wt(e)&&(e=e.id),this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/capture-qr\").concat(e?\"/\"+e:\"\"),n,r)},captureSignature:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return wt(e)&&(e=e.id),this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/capture-signature\").concat(e?\"/\"+e:\"\"),n,r)},complete:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/complete\"),e,n).then(this.afterFetch.bind(this))},cancel:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete(\"\".concat(this.namespace,\"/\").concat(t,\"/cancel\"),e,n).then(this.afterFetch.bind(this))}}),xt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"order\",A({actions:At},r)])}return b(t,kt),v(t,[{key:\"getDistanceAndTime\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getDistanceAndTime(this.id,t,e)}},{key:\"dispatch\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.dispatch(this.id,t,e)}},{key:\"start\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.start(this.id,t,e)}},{key:\"setDestination\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.setDestination(this.id,t,e,n)}},{key:\"captureQrCode\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureQrCode(this.id,t,e,n)}},{key:\"captureSignature\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureSignature(this.id,t,e,n)}},{key:\"getNextActivity\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getNextActivity(this.id,t,e)}},{key:\"updateActivity\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.updateActivity(this.id,t,e)}},{key:\"cancel\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.cancel(this.id,t,e)}},{key:\"complete\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.complete(this.id,t,e)}},{key:\"isDispatched\",get:function(){return null!==this.getAttribute(\"dispatched_at\")}},{key:\"isNotDispatched\",get:function(){return null==this.getAttribute(\"dispatched_at\")}},{key:\"isStarted\",get:function(){return null!==this.getAttribute(\"started_at\")}},{key:\"isNotStarted\",get:function(){return null==this.getAttribute(\"started_at\")}},{key:\"isCompleted\",get:function(){return\"completed\"==this.getAttribute(\"status\")}},{key:\"isCanceled\",get:function(){return\"canceled\"==this.getAttribute(\"status\")}},{key:\"isEnroute\",get:function(){return\"driver_enroute\"==this.getAttribute(\"status\")||\"enroute\"===this.getAttribute(\"status\")}},{key:\"isInProgress\",get:function(){return this.isStarted&&!this.isCanceled&&!this.isCompleted}},{key:\"scheduledAt\",get:function(){return this.isAttributeFilled(\"scheduled_at\")?new Date(this.getAttribute(\"scheduled_at\")):null}},{key:\"startedAt\",get:function(){return this.isAttributeFilled(\"started_at\")?new Date(this.getAttribute(\"started_at\")):null}},{key:\"dispatchedAt\",get:function(){return this.isAttributeFilled(\"dispatched_at\")?new Date(this.getAttribute(\"dispatched_at\")):null}},{key:\"status\",get:function(){return this.getAttribute(\"status\")}}])}();q(\"resource\",\"Order\",xt);var Ot=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"payload\",r])}return b(t,kt),v(t,[{key:\"attach\",value:function(t){}},{key:\"entities\",get:function(){var t=this;return ot(this.entities.map((function(e){return G(\"Entity\",e,t.adapter)})))}},{key:\"dropoff\",get:function(){return this.dropoff?G(\"Place\",this.dropoff,this.adapter):null}},{key:\"pickup\",get:function(){return this.pickup?G(\"Place\",this.pickup,this.adapter):null}},{key:\"waypoints\",get:function(){var t=this;return ot(this.waypoints.map((function(e){return G(\"Waypoint\",e,t.adapter)})))}}])}();q(\"resource\",\"Payload\",Ot);var Rt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"entity\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Entity\",Rt);var St=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"place\",r])}return b(t,kt),v(t,[{key:\"latitude\",get:function(){var t;return null===(t=this.getAttribute(\"location\",new dt))||void 0===t?void 0:t.coordinates[1]}},{key:\"longitude\",get:function(){var t;return null===(t=this.getAttribute(\"location\",new dt))||void 0===t?void 0:t.coordinates[0]}},{key:\"coordinates\",get:function(){return[this.latitude,this.longitude]}},{key:\"setOwner\",value:function(t){return wt(t)&&this.setAttribute(\"owner\",t.id),\"string\"==typeof t&&this.setAttribute(\"owner\",t),this}}],[{key:\"fromGoogleAddress\",value:function(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=R(e.getAttribute(\"coordinates\"),2),o=i[0],a=i[1];return new t({name:null,address:e.getAttribute(\"address\"),location:new dt(o,a),street1:e.getAttribute(\"address\"),street2:null,city:e.getAttribute(\"city\"),province:e.getAttribute(\"stateLong\"),postal_code:e.getAttribute(\"postalCode\"),neighborhood:e.get(\"neighborhood\"),district:e.getAttribute(\"county\"),building:e.get(\"building\"),country:e.getAttribute(\"countryShort\"),phone:null,security_access_code:null},n,r)}}])}();q(\"resource\",\"Place\",St);var jt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"waypoint\",r])}return b(t,St),v(t)}();q(\"resource\",\"Waypoint\",jt);var Tt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"tracking-status\",r])}return b(t,kt),v(t)}();q(\"resource\",\"TrackingStatus\",Tt);var _t=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"vehicle\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Vehicle\",_t);var Pt=new mt({current:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.get(\"\".concat(this.namespace,\"/current\"),t,e)}}),Lt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"organization\",A({actions:Pt},r)])}return b(t,kt),v(t)}();q(\"resource\",\"Organization\",Lt);var Ct=function(t,e){return V(t)?t.map((function(t){return new Lt(t,e)})):new Lt(t,e)},Nt=new mt({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(function(){return/^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/g.test(arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\")}(t))return this.adapter.post(\"drivers/login-with-sms\",{phone:t});if(!e)throw new Error(\"Login requires password!\");return this.adapter.post(\"drivers/login\",A({identity:t,password:e},n)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"drivers/verify-code\",A({identity:t,code:e},n)).then(this.afterFetch.bind(this))},track:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"drivers/\".concat(t,\"/track\"),e,n).then(this.afterFetch.bind(this))},listOrganizations:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get(\"drivers/\".concat(t,\"/organizations\"),n,r).then((function(t){return Ct(t,e.adapter)}))},switchOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"drivers/\".concat(t,\"/switch-organization\"),n,r).then((function(t){return Ct(t,e.adapter)}))},currentOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get(\"drivers/\".concat(t,\"/current-organization\"),n,r).then((function(t){return Ct(t,e.adapter)}))},retrieve:function(t){return this.findRecord(t)},syncDevice:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"drivers/\".concat(t,\"/register-device\"),e,n)}}),Ft=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"driver\",A({actions:Nt},r)])}return b(t,kt),v(t,[{key:\"token\",get:function(){return this.getAttribute(\"token\")}},{key:\"isOnline\",get:function(){return!0===this.getAttribute(\"online\")}},{key:\"latitude\",get:function(){var t;return null===(t=this.getAttribute(\"location\",new dt))||void 0===t?void 0:t.coordinates[1]}},{key:\"longitude\",get:function(){var t;return null===(t=this.getAttribute(\"location\",new dt))||void 0===t?void 0:t.coordinates[0]}},{key:\"coordinates\",get:function(){return[this.latitude,this.longitude]}},{key:\"track\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.track(this.id,t,e)}},{key:\"syncDevice\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.syncDevice(this.id,t,e)}},{key:\"listOrganizations\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.listOrganizations(this.id,t,e)}},{key:\"switchOrganization\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.switchOrganization(this.id,{next:t},e)}},{key:\"currentOrganization\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.currentOrganization(this.id,t,e)}}])}();q(\"resource\",\"Driver\",Ft);var Dt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"vendor\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Vendor\",Dt);var $t=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"contact\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Contact\",$t);var Ut=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"zone\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Zone\",Ut);var zt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"service-area\",r])}return b(t,kt),v(t)}();q(\"resource\",\"ServiceArea\",zt);var Bt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"service-rate\",r])}return b(t,kt),v(t)}();q(\"resource\",\"ServiceRate\",Bt);var qt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"service-quote\",r])}return b(t,kt),v(t,[{key:\"fromPreliminary\",value:function(){}},{key:\"fromPayload\",value:function(){}}])}();q(\"resource\",\"ServiceQuote\",qt);var It=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"fleet\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Fleet\",It);var Mt=v((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};h(this,t),this.version=e.version||\"v1\",this.host=e.host||null,this.namespace=e.namespace||null,this.headers=e.headers||{}}));q(\"adapter\",\"Adapter\",Mt);var Ht=function(){function t(e){var n;return h(this,t),(n=l(this,t,[e])).setHeaders({Authorization:\"Bearer \".concat(e.publicKey),\"Content-Type\":\"application/json\",\"User-Agent\":\"@fleetbase/sdk;browser\"}),n}return b(t,Mt),v(t,[{key:\"setHeaders\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.headers=A(A({},this.headers),t),this}},{key:\"parseJSON\",value:function(t){return new Promise((function(e,n){t.json().then((function(n){e({statusText:t.statusText,status:t.status,ok:t.ok,json:n})})).catch((function(){n(new Error(\"Oops! Something went wrong when handling your request.\"))}))}))}},{key:\"request\",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"GET\",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new Promise((function(o,a){fetch(i.url||\"\".concat(e.host,\"/\").concat(e.namespace,\"/\").concat(t),A({method:n,mode:i.mode||\"cors\",headers:new Headers(A(A({},e.headers||{}),i.headers||{}))},r)).then(e.parseJSON).then((function(t){if(t.ok)return o(t.json);a(new Error(t.json.errors?t.json.errors[0]:t.statusText))})).catch((function(t){a(t)}))}))}},{key:\"get\",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=st(e=n)||\"string\"==typeof e&&!1===/\\S/.test(e)?\"\":new URLSearchParams(n).toString();return this.request(\"\".concat(t).concat(i?\"?\".concat(i):\"\"),\"GET\",{},r)}},{key:\"post\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,\"POST\",{body:JSON.stringify(e)},n)}},{key:\"put\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,\"PUT\",{body:JSON.stringify(e)},n)}},{key:\"delete\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(t,\"DELETE\",{},e)}},{key:\"patch\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,\"PATCH\",{body:JSON.stringify(e)},n)}}])}();function Jt(t,e){return function(){return t.apply(e,arguments)}}q(\"adapter\",\"BrowserAdapter\",Ht);var Wt,Kt=Object.prototype.toString,Gt=Object.getPrototypeOf,Vt=(Wt=Object.create(null),function(t){var e=Kt.call(t);return Wt[e]||(Wt[e]=e.slice(8,-1).toLowerCase())}),Xt=function(t){return t=t.toLowerCase(),function(e){return Vt(e)===t}},Qt=function(t){return function(e){return T(e)===t}},Yt=Array.isArray,Zt=Qt(\"undefined\");var te=Xt(\"ArrayBuffer\");var ee=Qt(\"string\"),ne=Qt(\"function\"),re=Qt(\"number\"),ie=function(t){return null!==t&&\"object\"===T(t)},oe=function(t){if(\"object\"!==Vt(t))return!1;var e=Gt(t);return!(null!==e&&e!==Object.prototype&&null!==Object.getPrototypeOf(e)||Symbol.toStringTag in t||Symbol.iterator in t)},ae=Xt(\"Date\"),se=Xt(\"File\"),ue=Xt(\"Blob\"),ce=Xt(\"FileList\"),le=Xt(\"URLSearchParams\"),he=R([\"ReadableStream\",\"Request\",\"Response\",\"Headers\"].map(Xt),4),fe=he[0],de=he[1],ve=he[2],pe=he[3];function ge(t,e){var n,r,i=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).allOwnKeys,o=void 0!==i&&i;if(null!=t)if(\"object\"!==T(t)&&(t=[t]),Yt(t))for(n=0,r=t.length;n0;)if(e===(n=r[i]).toLowerCase())return n;return null}var be=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:global,me=function(t){return!Zt(t)&&t!==be};var we,ke=(we=\"undefined\"!=typeof Uint8Array&&Gt(Uint8Array),function(t){return we&&t instanceof we}),Ee=Xt(\"HTMLFormElement\"),Ae=function(){var t=Object.prototype.hasOwnProperty;return function(e,n){return t.call(e,n)}}(),xe=Xt(\"RegExp\"),Oe=function(t,e){var n=Object.getOwnPropertyDescriptors(t),r={};ge(n,(function(n,i){var o;!1!==(o=e(n,i,t))&&(r[i]=o||n)})),Object.defineProperties(t,r)},Re=\"abcdefghijklmnopqrstuvwxyz\",Se=\"0123456789\",je={DIGIT:Se,ALPHA:Re,ALPHA_DIGIT:Re+Re.toUpperCase()+Se};var Te,_e,Pe,Le,Ce=Xt(\"AsyncFunction\"),Ne=(Te=\"function\"==typeof setImmediate,_e=ne(be.postMessage),Te?setImmediate:_e?(Pe=\"axios@\".concat(Math.random()),Le=[],be.addEventListener(\"message\",(function(t){var e=t.source,n=t.data;e===be&&n===Pe&&Le.length&&Le.shift()()}),!1),function(t){Le.push(t),be.postMessage(Pe,\"*\")}):function(t){return setTimeout(t)}),Fe=\"undefined\"!=typeof queueMicrotask?queueMicrotask.bind(be):\"undefined\"!=typeof process&&process.nextTick||Ne,De={isArray:Yt,isArrayBuffer:te,isBuffer:function(t){return null!==t&&!Zt(t)&&null!==t.constructor&&!Zt(t.constructor)&&ne(t.constructor.isBuffer)&&t.constructor.isBuffer(t)},isFormData:function(t){var e;return t&&(\"function\"==typeof FormData&&t instanceof FormData||ne(t.append)&&(\"formdata\"===(e=Vt(t))||\"object\"===e&&ne(t.toString)&&\"[object FormData]\"===t.toString()))},isArrayBufferView:function(t){return\"undefined\"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&te(t.buffer)},isString:ee,isNumber:re,isBoolean:function(t){return!0===t||!1===t},isObject:ie,isPlainObject:oe,isReadableStream:fe,isRequest:de,isResponse:ve,isHeaders:pe,isUndefined:Zt,isDate:ae,isFile:se,isBlob:ue,isRegExp:xe,isFunction:ne,isStream:function(t){return ie(t)&&ne(t.pipe)},isURLSearchParams:le,isTypedArray:ke,isFileList:ce,forEach:ge,merge:function t(){for(var e=(me(this)&&this||{}).caseless,n={},r=function(r,i){var o=e&&ye(n,i)||i;oe(n[o])&&oe(r)?n[o]=t(n[o],r):oe(r)?n[o]=t({},r):Yt(r)?n[o]=r.slice():n[o]=r},i=0,o=arguments.length;i3&&void 0!==arguments[3]?arguments[3]:{}).allOwnKeys}),t},trim:function(t){return t.trim?t.trim():t.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\"\")},stripBOM:function(t){return 65279===t.charCodeAt(0)&&(t=t.slice(1)),t},inherits:function(t,e,n,r){t.prototype=Object.create(e.prototype,r),t.prototype.constructor=t,Object.defineProperty(t,\"super\",{value:e.prototype}),n&&Object.assign(t.prototype,n)},toFlatObject:function(t,e,n,r){var i,o,a,s={};if(e=e||{},null==t)return e;do{for(o=(i=Object.getOwnPropertyNames(t)).length;o-- >0;)a=i[o],r&&!r(a,t,e)||s[a]||(e[a]=t[a],s[a]=!0);t=!1!==n&&Gt(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},kindOf:Vt,kindOfTest:Xt,endsWith:function(t,e,n){t=String(t),(void 0===n||n>t.length)&&(n=t.length),n-=e.length;var r=t.indexOf(e,n);return-1!==r&&r===n},toArray:function(t){if(!t)return null;if(Yt(t))return t;var e=t.length;if(!re(e))return null;for(var n=new Array(e);e-- >0;)n[e]=t[e];return n},forEachEntry:function(t,e){for(var n,r=(t&&t[Symbol.iterator]).call(t);(n=r.next())&&!n.done;){var i=n.value;e.call(t,i[0],i[1])}},matchAll:function(t,e){for(var n,r=[];null!==(n=t.exec(e));)r.push(n);return r},isHTMLForm:Ee,hasOwnProperty:Ae,hasOwnProp:Ae,reduceDescriptors:Oe,freezeMethods:function(t){Oe(t,(function(e,n){if(ne(t)&&-1!==[\"arguments\",\"caller\",\"callee\"].indexOf(n))return!1;var r=t[n];ne(r)&&(e.enumerable=!1,\"writable\"in e?e.writable=!1:e.set||(e.set=function(){throw Error(\"Can not rewrite read-only method '\"+n+\"'\")}))}))},toObjectSet:function(t,e){var n={},r=function(t){t.forEach((function(t){n[t]=!0}))};return Yt(t)?r(t):r(String(t).split(e)),n},toCamelCase:function(t){return t.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,(function(t,e,n){return e.toUpperCase()+n}))},noop:function(){},toFiniteNumber:function(t,e){return null!=t&&Number.isFinite(t=+t)?t:e},findKey:ye,global:be,isContextDefined:me,ALPHABET:je,generateString:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:je.ALPHA_DIGIT,n=\"\",r=e.length;t--;)n+=e[Math.random()*r|0];return n},isSpecCompliantForm:function(t){return!!(t&&ne(t.append)&&\"FormData\"===t[Symbol.toStringTag]&&t[Symbol.iterator])},toJSONObject:function(t){var e=new Array(10),n=function(t,r){if(ie(t)){if(e.indexOf(t)>=0)return;if(!(\"toJSON\"in t)){e[r]=t;var i=Yt(t)?[]:{};return ge(t,(function(t,e){var o=n(t,r+1);!Zt(o)&&(i[e]=o)})),e[r]=void 0,i}}return t};return n(t,0)},isAsyncFn:Ce,isThenable:function(t){return t&&(ie(t)||ne(t))&&ne(t.then)&&ne(t.catch)},setImmediate:Ne,asap:Fe};function $e(t,e,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=t,this.name=\"AxiosError\",e&&(this.code=e),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status?i.status:null)}De.inherits($e,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:De.toJSONObject(this.config),code:this.code,status:this.status}}});var Ue=$e.prototype,ze={};[\"ERR_BAD_OPTION_VALUE\",\"ERR_BAD_OPTION\",\"ECONNABORTED\",\"ETIMEDOUT\",\"ERR_NETWORK\",\"ERR_FR_TOO_MANY_REDIRECTS\",\"ERR_DEPRECATED\",\"ERR_BAD_RESPONSE\",\"ERR_BAD_REQUEST\",\"ERR_CANCELED\",\"ERR_NOT_SUPPORT\",\"ERR_INVALID_URL\"].forEach((function(t){ze[t]={value:t}})),Object.defineProperties($e,ze),Object.defineProperty(Ue,\"isAxiosError\",{value:!0}),$e.from=function(t,e,n,r,i,o){var a=Object.create(Ue);return De.toFlatObject(t,a,(function(t){return t!==Error.prototype}),(function(t){return\"isAxiosError\"!==t})),$e.call(a,t.message,e,n,r,i),a.cause=t,a.name=t.name,o&&Object.assign(a,o),a};function Be(t){return De.isPlainObject(t)||De.isArray(t)}function qe(t){return De.endsWith(t,\"[]\")?t.slice(0,-2):t}function Ie(t,e,n){return t?t.concat(e).map((function(t,e){return t=qe(t),!n&&e?\"[\"+t+\"]\":t})).join(n?\".\":\"\"):e}var Me=De.toFlatObject(De,{},null,(function(t){return/^is[A-Z]/.test(t)}));function He(t,e,n){if(!De.isObject(t))throw new TypeError(\"target must be an object\");e=e||new FormData;var r=(n=De.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(t,e){return!De.isUndefined(e[t])}))).metaTokens,i=n.visitor||c,o=n.dots,a=n.indexes,s=(n.Blob||\"undefined\"!=typeof Blob&&Blob)&&De.isSpecCompliantForm(e);if(!De.isFunction(i))throw new TypeError(\"visitor must be a function\");function u(t){if(null===t)return\"\";if(De.isDate(t))return t.toISOString();if(!s&&De.isBlob(t))throw new $e(\"Blob is not supported. Use a Buffer instead.\");return De.isArrayBuffer(t)||De.isTypedArray(t)?s&&\"function\"==typeof Blob?new Blob([t]):Buffer.from(t):t}function c(t,n,i){var s=t;if(t&&!i&&\"object\"===T(t))if(De.endsWith(n,\"{}\"))n=r?n:n.slice(0,-2),t=JSON.stringify(t);else if(De.isArray(t)&&function(t){return De.isArray(t)&&!t.some(Be)}(t)||(De.isFileList(t)||De.endsWith(n,\"[]\"))&&(s=De.toArray(t)))return n=qe(n),s.forEach((function(t,r){!De.isUndefined(t)&&null!==t&&e.append(!0===a?Ie([n],r,o):null===a?n:n+\"[]\",u(t))})),!1;return!!Be(t)||(e.append(Ie(i,n,o),u(t)),!1)}var l=[],h=Object.assign(Me,{defaultVisitor:c,convertValue:u,isVisitable:Be});if(!De.isObject(t))throw new TypeError(\"data must be an object\");return function t(n,r){if(!De.isUndefined(n)){if(-1!==l.indexOf(n))throw Error(\"Circular reference detected in \"+r.join(\".\"));l.push(n),De.forEach(n,(function(n,o){!0===(!(De.isUndefined(n)||null===n)&&i.call(e,n,De.isString(o)?o.trim():o,r,h))&&t(n,r?r.concat(o):[o])})),l.pop()}}(t),e}function Je(t){var e={\"!\":\"%21\",\"'\":\"%27\",\"(\":\"%28\",\")\":\"%29\",\"~\":\"%7E\",\"%20\":\"+\",\"%00\":\"\\0\"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,(function(t){return e[t]}))}function We(t,e){this._pairs=[],t&&He(t,this,e)}var Ke=We.prototype;function Ge(t){return encodeURIComponent(t).replace(/%3A/gi,\":\").replace(/%24/g,\"$\").replace(/%2C/gi,\",\").replace(/%20/g,\"+\").replace(/%5B/gi,\"[\").replace(/%5D/gi,\"]\")}function Ve(t,e,n){if(!e)return t;var r=n&&n.encode||Ge;De.isFunction(n)&&(n={serialize:n});var i,o=n&&n.serialize;if(i=o?o(e,n):De.isURLSearchParams(e)?e.toString():new We(e,n).toString(r)){var a=t.indexOf(\"#\");-1!==a&&(t=t.slice(0,a)),t+=(-1===t.indexOf(\"?\")?\"?\":\"&\")+i}return t}Ke.append=function(t,e){this._pairs.push([t,e])},Ke.toString=function(t){var e=t?function(e){return t.call(this,e,Je)}:Je;return this._pairs.map((function(t){return e(t[0])+\"=\"+e(t[1])}),\"\").join(\"&\")};var Xe=function(){return v((function t(){h(this,t),this.handlers=[]}),[{key:\"use\",value:function(t,e,n){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}},{key:\"eject\",value:function(t){this.handlers[t]&&(this.handlers[t]=null)}},{key:\"clear\",value:function(){this.handlers&&(this.handlers=[])}},{key:\"forEach\",value:function(t){De.forEach(this.handlers,(function(e){null!==e&&t(e)}))}}])}(),Qe={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Ye={isBrowser:!0,classes:{URLSearchParams:\"undefined\"!=typeof URLSearchParams?URLSearchParams:We,FormData:\"undefined\"!=typeof FormData?FormData:null,Blob:\"undefined\"!=typeof Blob?Blob:null},protocols:[\"http\",\"https\",\"file\",\"blob\",\"url\",\"data\"]},Ze=\"undefined\"!=typeof window&&\"undefined\"!=typeof document,tn=\"object\"===(\"undefined\"==typeof navigator?\"undefined\":T(navigator))&&navigator||void 0,en=Ze&&(!tn||[\"ReactNative\",\"NativeScript\",\"NS\"].indexOf(tn.product)<0),nn=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&\"function\"==typeof self.importScripts,rn=Ze&&window.location.href||\"http://localhost\",on=A(A({},Object.freeze({__proto__:null,hasBrowserEnv:Ze,hasStandardBrowserEnv:en,hasStandardBrowserWebWorkerEnv:nn,navigator:tn,origin:rn})),Ye);function an(t){function e(t,n,r,i){var o=t[i++];if(\"__proto__\"===o)return!0;var a=Number.isFinite(+o),s=i>=t.length;return o=!o&&De.isArray(r)?r.length:o,s?(De.hasOwnProp(r,o)?r[o]=[r[o],n]:r[o]=n,!a):(r[o]&&De.isObject(r[o])||(r[o]=[]),e(t,n,r[o],i)&&De.isArray(r[o])&&(r[o]=function(t){var e,n,r={},i=Object.keys(t),o=i.length;for(e=0;e-1,o=De.isObject(t);if(o&&De.isHTMLForm(t)&&(t=new FormData(t)),De.isFormData(t))return i?JSON.stringify(an(t)):t;if(De.isArrayBuffer(t)||De.isBuffer(t)||De.isStream(t)||De.isFile(t)||De.isBlob(t)||De.isReadableStream(t))return t;if(De.isArrayBufferView(t))return t.buffer;if(De.isURLSearchParams(t))return e.setContentType(\"application/x-www-form-urlencoded;charset=utf-8\",!1),t.toString();if(o){if(r.indexOf(\"application/x-www-form-urlencoded\")>-1)return function(t,e){return He(t,new on.classes.URLSearchParams,Object.assign({visitor:function(t,e,n,r){return on.isNode&&De.isBuffer(t)?(this.append(e,t.toString(\"base64\")),!1):r.defaultVisitor.apply(this,arguments)}},e))}(t,this.formSerializer).toString();if((n=De.isFileList(t))||r.indexOf(\"multipart/form-data\")>-1){var a=this.env&&this.env.FormData;return He(n?{\"files[]\":t}:t,a&&new a,this.formSerializer)}}return o||i?(e.setContentType(\"application/json\",!1),function(t,e){if(De.isString(t))try{return(e||JSON.parse)(t),De.trim(t)}catch(t){if(\"SyntaxError\"!==t.name)throw t}return(0,JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){var e=this.transitional||sn.transitional,n=e&&e.forcedJSONParsing,r=\"json\"===this.responseType;if(De.isResponse(t)||De.isReadableStream(t))return t;if(t&&De.isString(t)&&(n&&!this.responseType||r)){var i=!(e&&e.silentJSONParsing)&&r;try{return JSON.parse(t)}catch(t){if(i){if(\"SyntaxError\"===t.name)throw $e.from(t,$e.ERR_BAD_RESPONSE,this,null,this.response);throw t}}}return t}],timeout:0,xsrfCookieName:\"XSRF-TOKEN\",xsrfHeaderName:\"X-XSRF-TOKEN\",maxContentLength:-1,maxBodyLength:-1,env:{FormData:on.classes.FormData,Blob:on.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:\"application/json, text/plain, */*\",\"Content-Type\":void 0}}};De.forEach([\"delete\",\"get\",\"head\",\"post\",\"put\",\"patch\"],(function(t){sn.headers[t]={}}));var un=De.toObjectSet([\"age\",\"authorization\",\"content-length\",\"content-type\",\"etag\",\"expires\",\"from\",\"host\",\"if-modified-since\",\"if-unmodified-since\",\"last-modified\",\"location\",\"max-forwards\",\"proxy-authorization\",\"referer\",\"retry-after\",\"user-agent\"]),cn=Symbol(\"internals\");function ln(t){return t&&String(t).trim().toLowerCase()}function hn(t){return!1===t||null==t?t:De.isArray(t)?t.map(hn):String(t)}function fn(t,e,n,r,i){return De.isFunction(r)?r.call(this,e,n):(i&&(e=n),De.isString(e)?De.isString(r)?-1!==e.indexOf(r):De.isRegExp(r)?r.test(e):void 0:void 0)}var dn=function(){return v((function t(e){h(this,t),e&&this.set(e)}),[{key:\"set\",value:function(t,e,n){var r=this;function i(t,e,n){var i=ln(e);if(!i)throw new Error(\"header name must be a non-empty string\");var o=De.findKey(r,i);(!o||void 0===r[o]||!0===n||void 0===n&&!1!==r[o])&&(r[o||e]=hn(t))}var o=function(t,e){return De.forEach(t,(function(t,n){return i(t,n,e)}))};if(De.isPlainObject(t)||t instanceof this.constructor)o(t,e);else if(De.isString(t)&&(t=t.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim()))o(function(t){var e,n,r,i={};return t&&t.split(\"\\n\").forEach((function(t){r=t.indexOf(\":\"),e=t.substring(0,r).trim().toLowerCase(),n=t.substring(r+1).trim(),!e||i[e]&&un[e]||(\"set-cookie\"===e?i[e]?i[e].push(n):i[e]=[n]:i[e]=i[e]?i[e]+\", \"+n:n)})),i}(t),e);else if(De.isHeaders(t)){var a,s=p(t.entries());try{for(s.s();!(a=s.n()).done;){var u=R(a.value,2),c=u[0];i(u[1],c,n)}}catch(t){s.e(t)}finally{s.f()}}else null!=t&&i(e,t,n);return this}},{key:\"get\",value:function(t,e){if(t=ln(t)){var n=De.findKey(this,t);if(n){var r=this[n];if(!e)return r;if(!0===e)return function(t){for(var e,n=Object.create(null),r=/([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;e=r.exec(t);)n[e[1]]=e[2];return n}(r);if(De.isFunction(e))return e.call(this,r,n);if(De.isRegExp(e))return e.exec(r);throw new TypeError(\"parser must be boolean|regexp|function\")}}}},{key:\"has\",value:function(t,e){if(t=ln(t)){var n=De.findKey(this,t);return!(!n||void 0===this[n]||e&&!fn(0,this[n],n,e))}return!1}},{key:\"delete\",value:function(t,e){var n=this,r=!1;function i(t){if(t=ln(t)){var i=De.findKey(n,t);!i||e&&!fn(0,n[i],i,e)||(delete n[i],r=!0)}}return De.isArray(t)?t.forEach(i):i(t),r}},{key:\"clear\",value:function(t){for(var e=Object.keys(this),n=e.length,r=!1;n--;){var i=e[n];t&&!fn(0,this[i],i,t,!0)||(delete this[i],r=!0)}return r}},{key:\"normalize\",value:function(t){var e=this,n={};return De.forEach(this,(function(r,i){var o=De.findKey(n,i);if(o)return e[o]=hn(r),void delete e[i];var a=t?function(t){return t.trim().toLowerCase().replace(/([a-z\\d])(\\w*)/g,(function(t,e,n){return e.toUpperCase()+n}))}(i):String(i).trim();a!==i&&delete e[i],e[a]=hn(r),n[a]=!0})),this}},{key:\"concat\",value:function(){for(var t,e=arguments.length,n=new Array(e),r=0;r1?n-1:0),i=1;i2&&void 0!==arguments[2]?arguments[2]:3,r=0,i=function(t,e){t=t||10;var n,r=new Array(t),i=new Array(t),o=0,a=0;return e=void 0!==e?e:1e3,function(s){var u=Date.now(),c=i[a];n||(n=u),r[o]=s,i[o]=u;for(var l=a,h=0;l!==o;)h+=r[l++],l%=t;if((o=(o+1)%t)===a&&(a=(a+1)%t),!(u-n1&&void 0!==arguments[1]?arguments[1]:Date.now();i=o,n=null,r&&(clearTimeout(r),r=null),t.apply(null,e)};return[function(){for(var t=Date.now(),e=t-i,s=arguments.length,u=new Array(s),c=0;c=o?a(u,t):(n=u,r||(r=setTimeout((function(){r=null,a(n)}),o-e)))},function(){return n&&a(n)}]}((function(n){var o=n.loaded,a=n.lengthComputable?n.total:void 0,s=o-r,u=i(s);r=o;var c=g({loaded:o,total:a,progress:a?o/a:void 0,bytes:s,rate:u||void 0,estimated:u&&a&&o<=a?(a-o)/u:void 0,event:n,lengthComputable:null!=a},e?\"download\":\"upload\",!0);t(c)}),n)},mn=function(t,e){var n=null!=t;return[function(r){return e[0]({lengthComputable:n,total:t,loaded:r})},e[1]]},wn=function(t){return function(){for(var e=arguments.length,n=new Array(e),r=0;r1?e-1:0),r=1;r1?\"since :\\n\"+s.map(Wn).join(\"\\n\"):\" \"+Wn(s[0]):\"as no adapter specified\"),\"ERR_NOT_SUPPORT\")}return n};function Vn(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new gn(null,t)}function Xn(t){return Vn(t),t.headers=dn.from(t.headers),t.data=vn.call(t,t.transformRequest),-1!==[\"post\",\"put\",\"patch\"].indexOf(t.method)&&t.headers.setContentType(\"application/x-www-form-urlencoded\",!1),Gn(t.adapter||sn.adapter)(t).then((function(e){return Vn(t),e.data=vn.call(t,t.transformResponse,e),e.headers=dn.from(e.headers),e}),(function(e){return pn(e)||(Vn(t),e&&e.response&&(e.response.data=vn.call(t,t.transformResponse,e.response),e.response.headers=dn.from(e.response.headers))),Promise.reject(e)}))}var Qn=\"1.7.9\",Yn={};[\"object\",\"boolean\",\"number\",\"function\",\"string\",\"symbol\"].forEach((function(t,e){Yn[t]=function(n){return T(n)===t||\"a\"+(e<1?\"n \":\" \")+t}}));var Zn={};Yn.transitional=function(t,e,n){function r(t,e){return\"[Axios v1.7.9] Transitional option '\"+t+\"'\"+e+(n?\". \"+n:\"\")}return function(n,i,o){if(!1===t)throw new $e(r(i,\" has been removed\"+(e?\" in \"+e:\"\")),$e.ERR_DEPRECATED);return e&&!Zn[i]&&(Zn[i]=!0,console.warn(r(i,\" has been deprecated since v\"+e+\" and will be removed in the near future\"))),!t||t(n,i,o)}},Yn.spelling=function(t){return function(e,n){return console.warn(\"\".concat(n,\" is likely a misspelling of \").concat(t)),!0}};var tr={assertOptions:function(t,e,n){if(\"object\"!==T(t))throw new $e(\"options must be an object\",$e.ERR_BAD_OPTION_VALUE);for(var r=Object.keys(t),i=r.length;i-- >0;){var o=r[i],a=e[o];if(a){var s=t[o],u=void 0===s||a(s,o,t);if(!0!==u)throw new $e(\"option \"+o+\" must be \"+u,$e.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new $e(\"Unknown option \"+o,$e.ERR_BAD_OPTION)}},validators:Yn},er=tr.validators,nr=function(){return v((function t(e){h(this,t),this.defaults=e,this.interceptors={request:new Xe,response:new Xe}}),[{key:\"request\",value:(t=u(x().mark((function t(e,n){var r,i;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,this._request(e,n);case 3:return t.abrupt(\"return\",t.sent);case 6:if(t.prev=6,t.t0=t.catch(0),t.t0 instanceof Error){r={},Error.captureStackTrace?Error.captureStackTrace(r):r=new Error,i=r.stack?r.stack.replace(/^.+\\n/,\"\"):\"\";try{t.t0.stack?i&&!String(t.t0.stack).endsWith(i.replace(/^.+\\n.+\\n/,\"\"))&&(t.t0.stack+=\"\\n\"+i):t.t0.stack=i}catch(t){}}throw t.t0;case 10:case\"end\":return t.stop()}}),t,this,[[0,6]])}))),function(e,n){return t.apply(this,arguments)})},{key:\"_request\",value:function(t,e){\"string\"==typeof t?(e=e||{}).url=t:e=t||{};var n=e=On(this.defaults,e),r=n.transitional,i=n.paramsSerializer,o=n.headers;void 0!==r&&tr.assertOptions(r,{silentJSONParsing:er.transitional(er.boolean),forcedJSONParsing:er.transitional(er.boolean),clarifyTimeoutError:er.transitional(er.boolean)},!1),null!=i&&(De.isFunction(i)?e.paramsSerializer={serialize:i}:tr.assertOptions(i,{encode:er.function,serialize:er.function},!0)),tr.assertOptions(e,{baseUrl:er.spelling(\"baseURL\"),withXsrfToken:er.spelling(\"withXSRFToken\")},!0),e.method=(e.method||this.defaults.method||\"get\").toLowerCase();var a=o&&De.merge(o.common,o[e.method]);o&&De.forEach([\"delete\",\"get\",\"head\",\"post\",\"put\",\"patch\",\"common\"],(function(t){delete o[t]})),e.headers=dn.concat(a,o);var s=[],u=!0;this.interceptors.request.forEach((function(t){\"function\"==typeof t.runWhen&&!1===t.runWhen(e)||(u=u&&t.synchronous,s.unshift(t.fulfilled,t.rejected))}));var c,l=[];this.interceptors.response.forEach((function(t){l.push(t.fulfilled,t.rejected)}));var h,f=0;if(!u){var d=[Xn.bind(this),void 0];for(d.unshift.apply(d,s),d.push.apply(d,l),h=d.length,c=Promise.resolve(e);f0;)r._listeners[e](t);r._listeners=null}})),this.promise.then=function(t){var e,n=new Promise((function(t){r.subscribe(t),e=t})).then(t);return n.cancel=function(){r.unsubscribe(e)},n},e((function(t,e,i){r.reason||(r.reason=new gn(t,e,i),n(r.reason))}))}return v(t,[{key:\"throwIfRequested\",value:function(){if(this.reason)throw this.reason}},{key:\"subscribe\",value:function(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t]}},{key:\"unsubscribe\",value:function(t){if(this._listeners){var e=this._listeners.indexOf(t);-1!==e&&this._listeners.splice(e,1)}}},{key:\"toAbortSignal\",value:function(){var t=this,e=new AbortController,n=function(t){e.abort(t)};return this.subscribe(n),e.signal.unsubscribe=function(){return t.unsubscribe(n)},e.signal}}],[{key:\"source\",value:function(){var e;return{token:new t((function(t){e=t})),cancel:e}}}])}();var ir={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(ir).forEach((function(t){var e=R(t,2),n=e[0],r=e[1];ir[r]=n}));var or=function t(e){var n=new nr(e),r=Jt(nr.prototype.request,n);return De.extend(r,nr.prototype,n,{allOwnKeys:!0}),De.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return t(On(e,n))},r}(sn);or.Axios=nr,or.CanceledError=gn,or.CancelToken=rr,or.isCancel=pn,or.VERSION=Qn,or.toFormData=He,or.AxiosError=$e,or.Cancel=or.CanceledError,or.all=function(t){return Promise.all(t)},or.spread=function(t){return function(e){return t.apply(null,e)}},or.isAxiosError=function(t){return De.isObject(t)&&!0===t.isAxiosError},or.mergeConfig=On,or.AxiosHeaders=dn,or.formToJSON=function(t){return an(De.isHTMLForm(t)?new FormData(t):t)},or.getAdapter=Gn,or.HttpStatusCode=ir,or.default=or,or.Axios,or.AxiosError,or.CanceledError,or.isCancel,or.CancelToken,or.VERSION,or.all,or.Cancel,or.isAxiosError,or.spread,or.toFormData,or.AxiosHeaders,or.HttpStatusCode,or.formToJSON,or.getAdapter,or.mergeConfig;var ar=function(){function t(e){var n;return h(this,t),(n=l(this,t,[e])).axiosInstance=or.create({baseURL:\"\".concat(n.host,\"/\").concat(n.namespace),headers:{Authorization:\"Bearer \".concat(e.publicKey),\"Content-Type\":\"application/json\",\"User-Agent\":\"@fleetbase/sdk;node\"}}),n.axiosInstance.interceptors.response.use((function(t){return t.data}),(function(t){if(t.response){var e=t.response.data;if(V(e.errors)&&e.errors.length)throw new Error(e.errors[0]);if(e.error)throw new Error(e.error)}throw t})),n}return b(t,Mt),v(t,[{key:\"setHeaders\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.axiosInstance.defaults.headers.common=A(A({},this.axiosInstance.defaults.headers.common),t),this}},{key:\"request\",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axiosInstance.request(A({method:t,url:e},n))}},{key:\"get\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(\"GET\",t,A({params:e},n))}},{key:\"post\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(\"POST\",t,A({data:e},n))}},{key:\"put\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(\"PUT\",t,A({data:e},n))}},{key:\"delete\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(\"DELETE\",t,e)}},{key:\"patch\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(\"PATCH\",t,A({data:e},n))}}])}();q(\"adapter\",\"NodeAdapter\",ar);var sr=function(){function t(){return h(this,t),l(this,t,arguments)}return b(t,Mt),v(t)}();q(\"adapter\",\"EmberJsAdapter\",sr);var ur=function(){function t(e){var n,r,i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(h(this,t),this.version=null!==(n=o.version)&&void 0!==n?n:\"v1\",this.options={version:this.version,host:null!==(r=o.host)&&void 0!==r?r:\"https://api.fleetbase.io\",namespace:null!==(i=o.namespace)&&void 0!==i?i:this.version,debug:a,publicKey:e},\"string\"!=typeof e||0===e.length)throw new Error(\"⚠️ Invalid public key given to Fleetbase SDK\");if(!lt()&&e.toLowerCase().startsWith(\"$\"))throw new Error(\"Secret key provided. You must use a public key with Fleetbase Javascript SDK!\");this.adapter=o.adapter||ht(this.options),this.orders=new Et(\"order\",this.adapter).extendActions(At),this.entities=new Et(\"entity\",this.adapter),this.places=new Et(\"place\",this.adapter),this.drivers=new Et(\"driver\",this.adapter).extendActions(Nt),this.vehicles=new Et(\"vehicle\",this.adapter),this.vendors=new Et(\"vendor\",this.adapter),this.contacts=new Et(\"contact\",this.adapter),this.serviceAreas=new Et(\"service-area\",this.adapter),this.zones=new Et(\"zone\",this.adapter),this.fleets=new Et(\"fleet\",this.adapter),this.organizations=new Et(\"organization\",this.adapter).extendActions(Pt)}return v(t,[{key:\"setAdapter\",value:function(t){this.adapter=t}},{key:\"getAdapter\",value:function(){return this.adapter}}],[{key:\"newInstance\",value:function(){return f(t,Array.prototype.slice.call(arguments))}}])}();export{Mt as Adapter,Ht as BrowserAdapter,at as Collection,$t as Contact,Ft as Driver,sr as EmberJsAdapter,Rt as Entity,It as Fleet,ft as GoogleAddress,ar as NodeAdapter,xt as Order,Lt as Organization,Ot as Payload,St as Place,dt as Point,J as Resolver,kt as Resource,zt as ServiceArea,qt as ServiceQuote,Bt as ServiceRate,Et as Store,mt as StoreActions,Tt as TrackingStatus,_t as Vehicle,Dt as Vendor,jt as Waypoint,Ut as Zone,$ as camelize,z as classify,ot as createCollection,H as createResource,M as createStore,bt as createStoreActions,U as dasherize,ur as default,ht as detectAdapter,yt as extendStoreActions,ut as isLatitude,ct as isLongitude,lt as isNodeEnvironment,wt as isResource,W as lookup,F as pluralize,q as register,K as resolve,G as resolveResource,D as singularize};\n//# sourceMappingURL=fleetbase.js.map\n","import { Store, classify, extendStoreActions, lookup } from '@fleetbase/sdk';\n\nexport default class StorefrontStore extends Store {\n constructor() {\n super(...arguments);\n }\n\n extendActions(actions = []) {\n return extendStoreActions(this, actions);\n }\n\n serialize(json) {\n return lookup('resource', classify(this.resource), json, this.adapter);\n }\n}\n","export function formatCurrency(amount = 0, currency = 'USD', currencyDisplay = 'symbol') {\n return new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency,\n currencyDisplay,\n }).format(amount);\n}\n\nexport default formatCurrency;\n","export function isEmpty(obj) {\n const none = obj === null || obj === undefined;\n if (none) {\n return none;\n }\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n const objectType = typeof obj;\n\n if (objectType === 'object') {\n const { size } = obj;\n if (typeof size === 'number') {\n return !size;\n }\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\n }\n\n if (objectType === 'object') {\n const { length } = obj;\n if (typeof length === 'number') {\n return !length;\n }\n }\n\n return false;\n}\n\nexport default isEmpty;\n","const { isArray } = Array;\n\nexport { isArray };\n","import { Resource, register } from '@fleetbase/sdk';\nimport StorefrontStore from './store.js';\n\nexport default class StorefrontResource extends Resource {\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new StorefrontStore(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions,\n });\n\n return this;\n }\n}\n\nregister('resource', 'StorefrontResource', StorefrontResource);\n","import Resource from '../resource.js';\nimport { StoreActions, register } from '@fleetbase/sdk';\n\nexport const reviewActions = new StoreActions({\n count: function (storeId, options = {}) {\n const params = {};\n\n if (storeId) {\n params.store = storeId;\n }\n\n return this.adapter.get(`${this.namespace}/count`, params, options);\n },\n});\n\nexport default class Review extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'review', options);\n }\n\n getMedia() {\n // @todo\n }\n\n getPhotos() {\n // @todo\n }\n\n getVideos() {\n // @todo\n }\n}\n\nregister('resource', 'Review', Review);\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n\n/**\n * @constant\n * @name constructFromSymbol\n * @summary Symbol enabling Date extensions to inherit properties from the reference date.\n *\n * The symbol is used to enable the `constructFrom` function to construct a date\n * using a reference date and a value. It allows to transfer extra properties\n * from the reference date to the new date. It's useful for extensions like\n * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as\n * a constructor argument.\n */\nexport const constructFromSymbol = Symbol.for(\"constructDateFrom\");\n","import { constructFromSymbol } from \"./constants.js\";\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * Starting from v3.7.0, it allows to construct a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from \"./constructFrom/date-fns\";\n *\n * // A function that clones a date preserving the original type\n * function cloneDate(date: DateType): DateType {\n * return constructFrom(\n * date, // Use constructor from the given date\n * date.getTime() // Use the date value to create a new date\n * );\n * }\n */\nexport function constructFrom(date, value) {\n if (typeof date === \"function\") return date(value);\n\n if (date && typeof date === \"object\" && constructFromSymbol in date)\n return date[constructFromSymbol](value);\n\n if (date instanceof Date) return new date.constructor(value);\n\n return new Date(value);\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * Starting from v3.7.0, it clones a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument, context) {\n // [TODO] Get rid of `toDate` or `constructFrom`?\n return constructFrom(context || argument, argument);\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addDays} function options.\n */\n\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be added.\n * @param options - An object with options\n *\n * @returns The new date with the days added\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nexport function addDays(date, amount, options) {\n const _date = toDate(date, options?.in);\n if (isNaN(amount)) return constructFrom(options?.in || date, NaN);\n\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n if (!amount) return _date;\n\n _date.setDate(_date.getDate() + amount);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addDays;\n","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date, options?.in);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n","import { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfISOWeek} function options.\n */\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfISOWeek(date, options) {\n return startOfWeek(date, { ...options, weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeek;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeekYear} function options.\n */\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport function getISOWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const fourthOfJanuaryOfNextYear = constructFrom(_date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n\n const fourthOfJanuaryOfThisYear = constructFrom(_date, 0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getISOWeekYear;\n","import { toDate } from \"../toDate.js\";\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const _date = toDate(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfDay} function options.\n */\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport function startOfDay(date, options) {\n const _date = toDate(date, options?.in);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n","import { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { millisecondsInDay } from \"./constants.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link differenceInCalendarDays} function options.\n */\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - The options object\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport function differenceInCalendarDays(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n\n const laterStartOfDay = startOfDay(laterDate_);\n const earlierStartOfDay = startOfDay(earlierDate_);\n\n const laterTimestamp =\n +laterStartOfDay - getTimezoneOffsetInMilliseconds(laterStartOfDay);\n const earlierTimestamp =\n +earlierStartOfDay - getTimezoneOffsetInMilliseconds(earlierStartOfDay);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((laterTimestamp - earlierTimestamp) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n","import { constructFrom } from \"../constructFrom.js\";\n\nexport function normalizeDates(context, ...dates) {\n const normalize = constructFrom.bind(\n null,\n context || dates.find((date) => typeof date === \"object\"),\n );\n return dates.map(normalize);\n}\n","import { isDate } from \"./isDate.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertible into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport function isValid(date) {\n return !((!isDate(date) && typeof date !== \"number\") || isNaN(+toDate(date)));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n","/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport function isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // [TODO] -- I challenge you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // [TODO] -- I challenge you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // [TODO] I challenge you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","import { formatDistance } from \"./en-US/_lib/formatDistance.js\";\nimport { formatLong } from \"./en-US/_lib/formatLong.js\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.js\";\nimport { localize } from \"./en-US/_lib/localize.js\";\nimport { match } from \"./en-US/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","import { differenceInCalendarDays } from \"./differenceInCalendarDays.js\";\nimport { startOfYear } from \"./startOfYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDayOfYear} function options.\n */\n\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * const result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nexport function getDayOfYear(date, options) {\n const _date = toDate(date, options?.in);\n const diff = differenceInCalendarDays(_date, startOfYear(_date));\n const dayOfYear = diff + 1;\n return dayOfYear;\n}\n\n// Fallback for modularized imports:\nexport default getDayOfYear;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfYear} function options.\n */\n\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport function startOfYear(date, options) {\n const date_ = toDate(date, options?.in);\n date_.setFullYear(date_.getFullYear(), 0, 1);\n date_.setHours(0, 0, 0, 0);\n return date_;\n}\n\n// Fallback for modularized imports:\nexport default startOfYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { startOfISOWeekYear } from \"./startOfISOWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeek} function options.\n */\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport function getISOWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getISOWeek;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { getISOWeekYear } from \"./getISOWeekYear.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\n\n/**\n * The {@link startOfISOWeekYear} function options.\n */\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfISOWeekYear(date, options) {\n const year = getISOWeekYear(date, options);\n const fourthOfJanuary = constructFrom(options?.in || date, 0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n return startOfISOWeek(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeekYear;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport function getWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const firstWeekOfNextYear = constructFrom(options?.in || date, 0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n\n const firstWeekOfThisYear = constructFrom(options?.in || date, 0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n\n if (+_date >= +startOfNextYear) {\n return year + 1;\n } else if (+_date >= +startOfThisYear) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getWeekYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { startOfWeekYear } from \"./startOfWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\nexport function getWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeek;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getWeekYear } from \"./getWeekYear.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = getWeekYear(date, options);\n const firstWeek = constructFrom(options?.in || date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = startOfWeek(firstWeek, options);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n","export function addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? \"-\" : \"\";\n const output = Math.abs(number).toString().padStart(targetLength, \"0\");\n return sign + output;\n}\n","import { addLeadingZeros } from \"../addLeadingZeros.js\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nexport const lightFormatters = {\n // Year\n y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === \"yy\" ? year % 100 : year, token.length);\n },\n\n // Month\n M(date, token) {\n const month = date.getMonth();\n return token === \"M\" ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n\n // Day of the month\n d(date, token) {\n return addLeadingZeros(date.getDate(), token.length);\n },\n\n // AM or PM\n a(date, token) {\n const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return dayPeriodEnumValue.toUpperCase();\n case \"aaa\":\n return dayPeriodEnumValue;\n case \"aaaaa\":\n return dayPeriodEnumValue[0];\n case \"aaaa\":\n default:\n return dayPeriodEnumValue === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n\n // Hour [1-12]\n h(date, token) {\n return addLeadingZeros(date.getHours() % 12 || 12, token.length);\n },\n\n // Hour [0-23]\n H(date, token) {\n return addLeadingZeros(date.getHours(), token.length);\n },\n\n // Minute\n m(date, token) {\n return addLeadingZeros(date.getMinutes(), token.length);\n },\n\n // Second\n s(date, token) {\n return addLeadingZeros(date.getSeconds(), token.length);\n },\n\n // Fraction of second\n S(date, token) {\n const numberOfDigits = token.length;\n const milliseconds = date.getMilliseconds();\n const fractionalSeconds = Math.trunc(\n milliseconds * Math.pow(10, numberOfDigits - 3),\n );\n return addLeadingZeros(fractionalSeconds, token.length);\n },\n};\n","import { getDayOfYear } from \"../../getDayOfYear.js\";\nimport { getISOWeek } from \"../../getISOWeek.js\";\nimport { getISOWeekYear } from \"../../getISOWeekYear.js\";\nimport { getWeek } from \"../../getWeek.js\";\nimport { getWeekYear } from \"../../getWeekYear.js\";\n\nimport { addLeadingZeros } from \"../addLeadingZeros.js\";\nimport { lightFormatters } from \"./lightFormatters.js\";\n\nconst dayPeriodEnum = {\n am: \"am\",\n pm: \"pm\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nexport const formatters = {\n // Era\n G: function (date, token, localize) {\n const era = date.getFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return localize.era(era, { width: \"abbreviated\" });\n // A, B\n case \"GGGGG\":\n return localize.era(era, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return localize.era(era, { width: \"wide\" });\n }\n },\n\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === \"yo\") {\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, { unit: \"year\" });\n }\n\n return lightFormatters.y(date, token);\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n const signedWeekYear = getWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === \"YY\") {\n const twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === \"Yo\") {\n return localize.ordinalNumber(weekYear, { unit: \"year\" });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n\n // ISO week-numbering year\n R: function (date, token) {\n const isoWeekYear = getISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n const year = date.getFullYear();\n return addLeadingZeros(year, token.length);\n },\n\n // Quarter\n Q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"QQ\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"qq\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // Month\n M: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n case \"M\":\n case \"MM\":\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // J, F, ..., D\n case \"MMMMM\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return localize.month(month, { width: \"wide\", context: \"formatting\" });\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return String(month + 1);\n // 01, 02, ..., 12\n case \"LL\":\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // J, F, ..., D\n case \"LLLLL\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return localize.month(month, { width: \"wide\", context: \"standalone\" });\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n const week = getWeek(date, options);\n\n if (token === \"wo\") {\n return localize.ordinalNumber(week, { unit: \"week\" });\n }\n\n return addLeadingZeros(week, token.length);\n },\n\n // ISO week of year\n I: function (date, token, localize) {\n const isoWeek = getISOWeek(date);\n\n if (token === \"Io\") {\n return localize.ordinalNumber(isoWeek, { unit: \"week\" });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n\n // Day of the month\n d: function (date, token, localize) {\n if (token === \"do\") {\n return localize.ordinalNumber(date.getDate(), { unit: \"date\" });\n }\n\n return lightFormatters.d(date, token);\n },\n\n // Day of year\n D: function (date, token, localize) {\n const dayOfYear = getDayOfYear(date);\n\n if (token === \"Do\") {\n return localize.ordinalNumber(dayOfYear, { unit: \"dayOfYear\" });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n\n // Day of week\n E: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"EEEEE\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"EEEE\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case \"e\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"ee\":\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case \"eo\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"eee\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"eeeee\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"eeee\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case \"c\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"cc\":\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case \"co\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"ccc\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // T\n case \"ccccc\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"standalone\",\n });\n // Tuesday\n case \"cccc\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // ISO day of week\n i: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case \"i\":\n return String(isoDayOfWeek);\n // 02\n case \"ii\":\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case \"io\":\n return localize.ordinalNumber(isoDayOfWeek, { unit: \"day\" });\n // Tue\n case \"iii\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"iiiii\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"iiiiii\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"iiii\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n const hours = date.getHours();\n const dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"aaa\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"aaaaa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n }\n\n switch (token) {\n case \"b\":\n case \"bb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"bbb\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"bbbbb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"BBBBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === \"ho\") {\n let hours = date.getHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return lightFormatters.h(date, token);\n },\n\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === \"Ho\") {\n return localize.ordinalNumber(date.getHours(), { unit: \"hour\" });\n }\n\n return lightFormatters.H(date, token);\n },\n\n // Hour [0-11]\n K: function (date, token, localize) {\n const hours = date.getHours() % 12;\n\n if (token === \"Ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Hour [1-24]\n k: function (date, token, localize) {\n let hours = date.getHours();\n if (hours === 0) hours = 24;\n\n if (token === \"ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Minute\n m: function (date, token, localize) {\n if (token === \"mo\") {\n return localize.ordinalNumber(date.getMinutes(), { unit: \"minute\" });\n }\n\n return lightFormatters.m(date, token);\n },\n\n // Second\n s: function (date, token, localize) {\n if (token === \"so\") {\n return localize.ordinalNumber(date.getSeconds(), { unit: \"second\" });\n }\n\n return lightFormatters.s(date, token);\n },\n\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return \"Z\";\n }\n\n switch (token) {\n // Hours and optional minutes\n case \"X\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case \"XXXX\":\n case \"XX\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case \"XXXXX\":\n case \"XXX\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case \"x\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case \"xxxx\":\n case \"xx\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case \"xxxxx\":\n case \"xxx\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"O\":\n case \"OO\":\n case \"OOO\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"OOOO\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"zzzz\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Seconds timestamp\n t: function (date, token, _localize) {\n const timestamp = Math.trunc(+date / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n\n // Milliseconds timestamp\n T: function (date, token, _localize) {\n return addLeadingZeros(+date, token.length);\n },\n};\n\nfunction formatTimezoneShort(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = Math.trunc(absOffset / 60);\n const minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n if (offset % 60 === 0) {\n const sign = offset > 0 ? \"-\" : \"+\";\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, delimiter);\n}\n\nfunction formatTimezone(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2);\n const minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n","const dateLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"P\":\n return formatLong.date({ width: \"short\" });\n case \"PP\":\n return formatLong.date({ width: \"medium\" });\n case \"PPP\":\n return formatLong.date({ width: \"long\" });\n case \"PPPP\":\n default:\n return formatLong.date({ width: \"full\" });\n }\n};\n\nconst timeLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"p\":\n return formatLong.time({ width: \"short\" });\n case \"pp\":\n return formatLong.time({ width: \"medium\" });\n case \"ppp\":\n return formatLong.time({ width: \"long\" });\n case \"pppp\":\n default:\n return formatLong.time({ width: \"full\" });\n }\n};\n\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n const matchResult = pattern.match(/(P+)(p+)?/) || [];\n const datePattern = matchResult[1];\n const timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n let dateTimeFormat;\n\n switch (datePattern) {\n case \"P\":\n dateTimeFormat = formatLong.dateTime({ width: \"short\" });\n break;\n case \"PP\":\n dateTimeFormat = formatLong.dateTime({ width: \"medium\" });\n break;\n case \"PPP\":\n dateTimeFormat = formatLong.dateTime({ width: \"long\" });\n break;\n case \"PPPP\":\n default:\n dateTimeFormat = formatLong.dateTime({ width: \"full\" });\n break;\n }\n\n return dateTimeFormat\n .replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong))\n .replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\n\nexport const longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter,\n};\n","const dayOfYearTokenRE = /^D+$/;\nconst weekYearTokenRE = /^Y+$/;\n\nconst throwTokens = [\"D\", \"DD\", \"YY\", \"YYYY\"];\n\nexport function isProtectedDayOfYearToken(token) {\n return dayOfYearTokenRE.test(token);\n}\n\nexport function isProtectedWeekYearToken(token) {\n return weekYearTokenRE.test(token);\n}\n\nexport function warnOrThrowProtectedError(token, format, input) {\n const _message = message(token, format, input);\n console.warn(_message);\n if (throwTokens.includes(token)) throw new RangeError(_message);\n}\n\nfunction message(token, format, input) {\n const subject = token[0] === \"Y\" ? \"years\" : \"days of the month\";\n return `Use \\`${token.toLowerCase()}\\` instead of \\`${token}\\` (in \\`${format}\\`) for formatting ${subject} to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;\n}\n","import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { formatters } from \"./_lib/format/formatters.js\";\nimport { longFormatters } from \"./_lib/format/longFormatters.js\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.js\";\nimport { isValid } from \"./isValid.js\";\nimport { toDate } from \"./toDate.js\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { formatters, longFormatters };\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\nexport { format as formatDate };\n\n/**\n * The {@link format} function options.\n */\n\n/**\n * @name format\n * @alias formatDate\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)\n * and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nexport function format(date, formatStr, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const originalDate = toDate(date, options?.in);\n\n if (!isValid(originalDate)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let parts = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp)\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return { isToken: false, value: \"'\" };\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return { isToken: false, value: cleanEscapedString(substring) };\n }\n\n if (formatters[firstCharacter]) {\n return { isToken: true, value: substring };\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return { isToken: false, value: substring };\n });\n\n // invoke localize preprocessor (only for french locales at the moment)\n if (locale.localize.preprocessor) {\n parts = locale.localize.preprocessor(originalDate, parts);\n }\n\n const formatterOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n return parts\n .map((part) => {\n if (!part.isToken) return part.value;\n\n const token = part.value;\n\n if (\n (!options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)) ||\n (!options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token))\n ) {\n warnOrThrowProtectedError(token, formatStr, String(date));\n }\n\n const formatter = formatters[token[0]];\n return formatter(originalDate, token, locale.localize, formatterOptions);\n })\n .join(\"\");\n}\n\nfunction cleanEscapedString(input) {\n const matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default format;\n","import { constructFrom } from \"../../constructFrom.js\";\nimport { transpose } from \"../../transpose.js\";\n\nconst TIMEZONE_UNIT_PRIORITY = 10;\n\nexport class Setter {\n subPriority = 0;\n\n validate(_utcDate, _options) {\n return true;\n }\n}\n\nexport class ValueSetter extends Setter {\n constructor(\n value,\n\n validateValue,\n\n setValue,\n\n priority,\n subPriority,\n ) {\n super();\n this.value = value;\n this.validateValue = validateValue;\n this.setValue = setValue;\n this.priority = priority;\n if (subPriority) {\n this.subPriority = subPriority;\n }\n }\n\n validate(date, options) {\n return this.validateValue(date, this.value, options);\n }\n\n set(date, flags, options) {\n return this.setValue(date, flags, this.value, options);\n }\n}\n\nexport class DateTimezoneSetter extends Setter {\n priority = TIMEZONE_UNIT_PRIORITY;\n subPriority = -1;\n\n constructor(context, reference) {\n super();\n this.context = context || ((date) => constructFrom(reference, date));\n }\n\n set(date, flags) {\n if (flags.timestampIsSet) return date;\n return constructFrom(date, transpose(date, this.context));\n }\n}\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name transpose\n * @category Generic Helpers\n * @summary Transpose the date to the given constructor.\n *\n * @description\n * The function transposes the date to the given constructor. It helps you\n * to transpose the date in the system time zone to say `UTCDate` or any other\n * date extension.\n *\n * @typeParam InputDate - The input `Date` type derived from the passed argument.\n * @typeParam ResultDate - The result `Date` type derived from the passed constructor.\n *\n * @param date - The date to use values from\n * @param constructor - The date constructor to use\n *\n * @returns Date transposed to the given constructor\n *\n * @example\n * // Create July 10, 2022 00:00 in locale time zone\n * const date = new Date(2022, 6, 10)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0800 (Singapore Standard Time)'\n *\n * @example\n * // Transpose the date to July 10, 2022 00:00 in UTC\n * transpose(date, UTCDate)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0000 (Coordinated Universal Time)'\n */\nexport function transpose(date, constructor) {\n const date_ = isConstructor(constructor)\n ? new constructor(0)\n : constructFrom(constructor, 0);\n date_.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());\n date_.setHours(\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds(),\n );\n return date_;\n}\n\nfunction isConstructor(constructor) {\n return (\n typeof constructor === \"function\" &&\n constructor.prototype?.constructor === constructor\n );\n}\n\n// Fallback for modularized imports:\nexport default transpose;\n","import { ValueSetter } from \"./Setter.js\";\n\nexport class Parser {\n run(dateString, token, match, options) {\n const result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n\n return {\n setter: new ValueSetter(\n result.value,\n this.validate,\n this.set,\n this.priority,\n this.subPriority,\n ),\n rest: result.rest,\n };\n }\n\n validate(_utcDate, _value, _options) {\n return true;\n }\n}\n","import { Parser } from \"../Parser.js\";\n\nexport class EraParser extends Parser {\n priority = 140;\n\n parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return (\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n\n // A, B\n case \"GGGGG\":\n return match.era(dateString, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return (\n match.era(dateString, { width: \"wide\" }) ||\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n }\n }\n\n set(date, flags, value) {\n flags.era = value;\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"R\", \"u\", \"t\", \"T\"];\n}\n","export const numericPatterns = {\n month: /^(1[0-2]|0?\\d)/, // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/, // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/, // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/, // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/, // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/, // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/, // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/, // 0 to 12\n minute: /^[0-5]?\\d/, // 0 to 59\n second: /^[0-5]?\\d/, // 0 to 59\n\n singleDigit: /^\\d/, // 0 to 9\n twoDigits: /^\\d{1,2}/, // 0 to 99\n threeDigits: /^\\d{1,3}/, // 0 to 999\n fourDigits: /^\\d{1,4}/, // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/, // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/, // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/, // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/, // 0 to 9999, -0 to -9999\n};\n\nexport const timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/,\n};\n","import {\n millisecondsInHour,\n millisecondsInMinute,\n millisecondsInSecond,\n} from \"../../constants.js\";\n\nimport { numericPatterns } from \"./constants.js\";\n\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest,\n };\n}\n\nexport function parseNumericPattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseTimezonePattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === \"Z\") {\n return {\n value: 0,\n rest: dateString.slice(1),\n };\n }\n\n const sign = matchResult[1] === \"+\" ? 1 : -1;\n const hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n const minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n const seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n\n return {\n value:\n sign *\n (hours * millisecondsInHour +\n minutes * millisecondsInMinute +\n seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\n\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^-?\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case \"morning\":\n return 4;\n case \"evening\":\n return 17;\n case \"pm\":\n case \"noon\":\n case \"afternoon\":\n return 12;\n case \"am\":\n case \"midnight\":\n case \"night\":\n default:\n return 0;\n }\n}\n\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n const isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n const absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n\n let result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n const rangeEnd = absCurrentYear + 50;\n const rangeEndCentury = Math.trunc(rangeEnd / 100) * 100;\n const isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport class YearParser extends Parser {\n priority = 130;\n incompatibleTokens = [\"Y\", \"R\", \"u\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"yy\",\n });\n\n switch (token) {\n case \"y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value) {\n const currentYear = date.getFullYear();\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(normalizedTwoDigitYear, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { getWeekYear } from \"../../../getWeekYear.js\";\n\nimport { startOfWeek } from \"../../../startOfWeek.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n\n// Local week-numbering year\nexport class LocalWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"YY\",\n });\n\n switch (token) {\n case \"Y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"Yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value, options) {\n const currentYear = getWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(\n normalizedTwoDigitYear,\n 0,\n options.firstWeekContainsDate,\n );\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, options.firstWeekContainsDate);\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { startOfISOWeek } from \"../../../startOfISOWeek.js\";\nimport { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigitsSigned } from \"../utils.js\";\n\n// ISO week-numbering year\nexport class ISOWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"R\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n const firstWeekOfYear = constructFrom(date, 0);\n firstWeekOfYear.setFullYear(value, 0, 4);\n firstWeekOfYear.setHours(0, 0, 0, 0);\n return startOfISOWeek(firstWeekOfYear);\n }\n\n incompatibleTokens = [\n \"G\",\n \"y\",\n \"Y\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigitsSigned } from \"../utils.js\";\n\nexport class ExtendedYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"u\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"G\", \"y\", \"Y\", \"R\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigits } from \"../utils.js\";\n\nexport class QuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n case \"QQ\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigits } from \"../utils.js\";\n\nexport class StandAloneQuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n case \"qq\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class MonthParser extends Parser {\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"L\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"M\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"MM\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // J, F, ..., D\n case \"MMMMM\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class StandAloneMonthParser extends Parser {\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"LL\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // J, F, ..., D\n case \"LLLLL\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setWeek } from \"../../../setWeek.js\";\nimport { startOfWeek } from \"../../../startOfWeek.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\n// Local week of year\nexport class LocalWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"w\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"wo\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value, options) {\n return startOfWeek(setWeek(date, value, options), options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { getWeek } from \"./getWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setWeek} function options.\n */\n\n/**\n * @name setWeek\n * @category Week Helpers\n * @summary Set the local week to the given date.\n *\n * @description\n * Set the local week to the given date, saving the weekday number.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param week - The week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the local week set\n *\n * @example\n * // Set the 1st week to 2 January 2005 with default options:\n * const result = setWeek(new Date(2005, 0, 2), 1)\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // Set the 1st week to 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January:\n * const result = setWeek(new Date(2005, 0, 2), 1, {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Sun Jan 4 2004 00:00:00\n */\nexport function setWeek(date, week, options) {\n const date_ = toDate(date, options?.in);\n const diff = getWeek(date_, options) - week;\n date_.setDate(date_.getDate() - diff * 7);\n return toDate(date_, options?.in);\n}\n\n// Fallback for modularized imports:\nexport default setWeek;\n","import { setISOWeek } from \"../../../setISOWeek.js\";\nimport { startOfISOWeek } from \"../../../startOfISOWeek.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\n// ISO week of year\nexport class ISOWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"I\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"Io\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value) {\n return startOfISOWeek(setISOWeek(date, value));\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getISOWeek } from \"./getISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setISOWeek} function options.\n */\n\n/**\n * @name setISOWeek\n * @category ISO Week Helpers\n * @summary Set the ISO week to the given date.\n *\n * @description\n * Set the ISO week to the given date, saving the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The `Date` type of the context function.\n *\n * @param date - The date to be changed\n * @param week - The ISO week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the ISO week set\n *\n * @example\n * // Set the 53rd ISO week to 7 August 2004:\n * const result = setISOWeek(new Date(2004, 7, 7), 53)\n * //=> Sat Jan 01 2005 00:00:00\n */\nexport function setISOWeek(date, week, options) {\n const _date = toDate(date, options?.in);\n const diff = getISOWeek(_date, options) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setISOWeek;\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.js\";\n\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst DAYS_IN_MONTH_LEAP_YEAR = [\n 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,\n];\n\n// Day of the month\nexport class DateParser extends Parser {\n priority = 90;\n subPriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"d\":\n return parseNumericPattern(numericPatterns.date, dateString);\n case \"do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n const month = date.getMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n\n set(date, _flags, value) {\n date.setDate(value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.js\";\n\nexport class DayOfYearParser extends Parser {\n priority = 90;\n\n subpriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"D\":\n case \"DD\":\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case \"Do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n\n set(date, _flags, value) {\n date.setMonth(0, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"E\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { addDays } from \"./addDays.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setDay} function options.\n */\n\n/**\n * @name setDay\n * @category Weekday Helpers\n * @summary Set the day of the week to the given date.\n *\n * @description\n * Set the day of the week to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param day - The day of the week of the new date\n * @param options - An object with options.\n *\n * @returns The new date with the day of the week set\n *\n * @example\n * // Set week day to Sunday, with the default weekStartsOn of Sunday:\n * const result = setDay(new Date(2014, 8, 1), 0)\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Set week day to Sunday, with a weekStartsOn of Monday:\n * const result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setDay(date, day, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const date_ = toDate(date, options?.in);\n const currentDay = date_.getDay();\n\n const remainder = day % 7;\n const dayIndex = (remainder + 7) % 7;\n\n const delta = 7 - weekStartsOn;\n const diff =\n day < 0 || day > 6\n ? day - ((currentDay + delta) % 7)\n : ((dayIndex + delta) % 7) - ((currentDay + delta) % 7);\n return addDays(date_, diff, options);\n}\n\n// Fallback for modularized imports:\nexport default setDay;\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\n// Day of week\nexport class DayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"EEEEE\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"EEEE\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"D\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// Local day of week\nexport class LocalDayParser extends Parser {\n priority = 90;\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"e\":\n case \"ee\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"eo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"eee\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"eeeee\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"eeee\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// Stand-alone local day of week\nexport class StandAloneLocalDayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"c\":\n case \"cc\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"co\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"ccc\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // T\n case \"ccccc\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return (\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // Tuesday\n case \"cccc\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"e\",\n \"t\",\n \"T\",\n ];\n}\n","import { addDays } from \"./addDays.js\";\nimport { getISODay } from \"./getISODay.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setISODay} function options.\n */\n\n/**\n * @name setISODay\n * @category Weekday Helpers\n * @summary Set the day of the ISO week to the given date.\n *\n * @description\n * Set the day of the ISO week to the given date.\n * ISO week starts with Monday.\n * 7 is the index of Sunday, 1 is the index of Monday, etc.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param day - The day of the ISO week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the day of the ISO week set\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * const result = setISODay(new Date(2014, 8, 1), 7)\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setISODay(date, day, options) {\n const date_ = toDate(date, options?.in);\n const currentDay = getISODay(date_, options);\n const diff = day - currentDay;\n return addDays(date_, diff, options);\n}\n\n// Fallback for modularized imports:\nexport default setISODay;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISODay} function options.\n */\n\n/**\n * @name getISODay\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The day of ISO week\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * const result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\nexport function getISODay(date, options) {\n const day = toDate(date, options?.in).getDay();\n return day === 0 ? 7 : day;\n}\n\n// Fallback for modularized imports:\nexport default getISODay;\n","import { setISODay } from \"../../../setISODay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// ISO day of week\nexport class ISODayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n\n switch (token) {\n // 2\n case \"i\":\n case \"ii\": // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case \"io\":\n return match.ordinalNumber(dateString, { unit: \"day\" });\n // Tue\n case \"iii\":\n return mapValue(\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // T\n case \"iiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tu\n case \"iiiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tuesday\n case \"iiii\":\n default:\n return mapValue(\n match.day(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n\n set(date, _flags, value) {\n date = setISODay(date, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"E\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\nexport class AMPMParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"a\":\n case \"aa\":\n case \"aaa\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"aaaaa\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"b\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\nexport class AMPMMidnightParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"b\":\n case \"bb\":\n case \"bbb\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"bbbbb\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\n// in the morning, in the afternoon, in the evening, at night\nexport class DayPeriodParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"BBBBB\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour1to12Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"h\":\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case \"ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setHours(0, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"H\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour0to23Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"H\":\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case \"Ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n\n set(date, _flags, value) {\n date.setHours(value, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour0To11Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"K\":\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case \"Ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"h\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour1To24Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"k\":\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case \"ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n\n set(date, _flags, value) {\n const hours = value <= 24 ? value % 24 : value;\n date.setHours(hours, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"H\", \"K\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class MinuteParser extends Parser {\n priority = 60;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"m\":\n return parseNumericPattern(numericPatterns.minute, dateString);\n case \"mo\":\n return match.ordinalNumber(dateString, { unit: \"minute\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setMinutes(value, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class SecondParser extends Parser {\n priority = 50;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"s\":\n return parseNumericPattern(numericPatterns.second, dateString);\n case \"so\":\n return match.ordinalNumber(dateString, { unit: \"second\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setSeconds(value, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\nexport class FractionOfSecondParser extends Parser {\n priority = 30;\n\n parse(dateString, token) {\n const valueCallback = (value) =>\n Math.trunc(value * Math.pow(10, -token.length + 3));\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n\n set(date, _flags, value) {\n date.setMilliseconds(value);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseTimezonePattern } from \"../utils.js\";\n\n// Timezone (ISO-8601. +00:00 is `'Z'`)\nexport class ISOTimezoneWithZParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"X\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"XX\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"XXXX\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"XXXXX\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"XXX\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"x\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseTimezonePattern } from \"../utils.js\";\n\n// Timezone (ISO-8601)\nexport class ISOTimezoneParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"x\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"xx\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"xxxx\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"xxxxx\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"xxx\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"X\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseAnyDigitsSigned } from \"../utils.js\";\n\nexport class TimestampSecondsParser extends Parser {\n priority = 40;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value * 1000), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseAnyDigitsSigned } from \"../utils.js\";\n\nexport class TimestampMillisecondsParser extends Parser {\n priority = 20;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { EraParser } from \"./parsers/EraParser.js\";\nimport { YearParser } from \"./parsers/YearParser.js\";\nimport { LocalWeekYearParser } from \"./parsers/LocalWeekYearParser.js\";\nimport { ISOWeekYearParser } from \"./parsers/ISOWeekYearParser.js\";\nimport { ExtendedYearParser } from \"./parsers/ExtendedYearParser.js\";\nimport { QuarterParser } from \"./parsers/QuarterParser.js\";\nimport { StandAloneQuarterParser } from \"./parsers/StandAloneQuarterParser.js\";\nimport { MonthParser } from \"./parsers/MonthParser.js\";\nimport { StandAloneMonthParser } from \"./parsers/StandAloneMonthParser.js\";\nimport { LocalWeekParser } from \"./parsers/LocalWeekParser.js\";\nimport { ISOWeekParser } from \"./parsers/ISOWeekParser.js\";\nimport { DateParser } from \"./parsers/DateParser.js\";\nimport { DayOfYearParser } from \"./parsers/DayOfYearParser.js\";\nimport { DayParser } from \"./parsers/DayParser.js\";\nimport { LocalDayParser } from \"./parsers/LocalDayParser.js\";\nimport { StandAloneLocalDayParser } from \"./parsers/StandAloneLocalDayParser.js\";\nimport { ISODayParser } from \"./parsers/ISODayParser.js\";\nimport { AMPMParser } from \"./parsers/AMPMParser.js\";\nimport { AMPMMidnightParser } from \"./parsers/AMPMMidnightParser.js\";\nimport { DayPeriodParser } from \"./parsers/DayPeriodParser.js\";\nimport { Hour1to12Parser } from \"./parsers/Hour1to12Parser.js\";\nimport { Hour0to23Parser } from \"./parsers/Hour0to23Parser.js\";\nimport { Hour0To11Parser } from \"./parsers/Hour0To11Parser.js\";\nimport { Hour1To24Parser } from \"./parsers/Hour1To24Parser.js\";\nimport { MinuteParser } from \"./parsers/MinuteParser.js\";\nimport { SecondParser } from \"./parsers/SecondParser.js\";\nimport { FractionOfSecondParser } from \"./parsers/FractionOfSecondParser.js\";\nimport { ISOTimezoneWithZParser } from \"./parsers/ISOTimezoneWithZParser.js\";\nimport { ISOTimezoneParser } from \"./parsers/ISOTimezoneParser.js\";\nimport { TimestampSecondsParser } from \"./parsers/TimestampSecondsParser.js\";\nimport { TimestampMillisecondsParser } from \"./parsers/TimestampMillisecondsParser.js\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\nexport const parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser(),\n};\n","import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { longFormatters } from \"./_lib/format/longFormatters.js\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getDefaultOptions } from \"./getDefaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\nimport { DateTimezoneSetter } from \"./parse/_lib/Setter.js\";\nimport { parsers } from \"./parse/_lib/parsers.js\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { longFormatters, parsers };\n\n/**\n * The {@link parse} function options.\n */\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\n\nconst notWhitespaceRegExp = /\\S/;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangeably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear)\n * and [setWeekYear](https://date-fns.org/docs/setWeekYear)).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param dateStr - The string to parse\n * @param formatStr - The string of tokens\n * @param referenceDate - defines values missing from the parsed dateString\n * @param options - An object with options.\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @returns The parsed date\n *\n * @throws `options.locale` must contain `match` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport function parse(dateStr, formatStr, referenceDate, options) {\n const invalidDate = () => constructFrom(options?.in || referenceDate, NaN);\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n if (!formatStr)\n return dateStr ? invalidDate() : toDate(referenceDate, options?.in);\n\n const subFnOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n // If timezone isn't specified, it will try to use the context or\n // the reference date and fallback to the system time zone.\n const setters = [new DateTimezoneSetter(options?.in, referenceDate)];\n\n const tokens = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp);\n\n const usedTokens = [];\n\n for (let token of tokens) {\n if (\n !options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n if (\n !options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n\n const firstCharacter = token[0];\n const parser = parsers[firstCharacter];\n if (parser) {\n const { incompatibleTokens } = parser;\n if (Array.isArray(incompatibleTokens)) {\n const incompatibleToken = usedTokens.find(\n (usedToken) =>\n incompatibleTokens.includes(usedToken.token) ||\n usedToken.token === firstCharacter,\n );\n if (incompatibleToken) {\n throw new RangeError(\n `The format string mustn't contain \\`${incompatibleToken.fullToken}\\` and \\`${token}\\` at the same time`,\n );\n }\n } else if (parser.incompatibleTokens === \"*\" && usedTokens.length > 0) {\n throw new RangeError(\n `The format string mustn't contain \\`${token}\\` and any other token at the same time`,\n );\n }\n\n usedTokens.push({ token: firstCharacter, fullToken: token });\n\n const parseResult = parser.run(\n dateStr,\n token,\n locale.match,\n subFnOptions,\n );\n\n if (!parseResult) {\n return invalidDate();\n }\n\n setters.push(parseResult.setter);\n\n dateStr = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateStr.indexOf(token) === 0) {\n dateStr = dateStr.slice(token.length);\n } else {\n return invalidDate();\n }\n }\n }\n\n // Check if the remaining input contains something other than whitespace\n if (dateStr.length > 0 && notWhitespaceRegExp.test(dateStr)) {\n return invalidDate();\n }\n\n const uniquePrioritySetters = setters\n .map((setter) => setter.priority)\n .sort((a, b) => b - a)\n .filter((priority, index, array) => array.indexOf(priority) === index)\n .map((priority) =>\n setters\n .filter((setter) => setter.priority === priority)\n .sort((a, b) => b.subPriority - a.subPriority),\n )\n .map((setterArray) => setterArray[0]);\n\n let date = toDate(referenceDate, options?.in);\n\n if (isNaN(+date)) return invalidDate();\n\n const flags = {};\n for (const setter of uniquePrioritySetters) {\n if (!setter.validate(date, subFnOptions)) {\n return invalidDate();\n }\n\n const result = setter.set(date, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n date = result[0];\n Object.assign(flags, result[1]);\n // Result is date\n } else {\n date = result;\n }\n }\n\n return date;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default parse;\n","import { getDefaultOptions as getInternalDefaultOptions } from \"./_lib/defaultOptions.js\";\n\n/**\n * @name getDefaultOptions\n * @category Common Helpers\n * @summary Get default options.\n * @pure false\n *\n * @description\n * Returns an object that contains defaults for\n * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate`\n * arguments for all functions.\n *\n * You can change these with [setDefaultOptions](https://date-fns.org/docs/setDefaultOptions).\n *\n * @returns The default options\n *\n * @example\n * const result = getDefaultOptions()\n * //=> {}\n *\n * @example\n * setDefaultOptions({ weekStarsOn: 1, firstWeekContainsDate: 4 })\n * const result = getDefaultOptions()\n * //=> { weekStarsOn: 1, firstWeekContainsDate: 4 }\n */\nexport function getDefaultOptions() {\n return Object.assign({}, getInternalDefaultOptions());\n}\n\n// Fallback for modularized imports:\nexport default getDefaultOptions;\n","import Resource from '../resource.js';\nimport { format, parse, isValid } from 'date-fns';\nimport { register } from '@fleetbase/sdk';\n\nexport default class StoreHour extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'store-hour', options);\n }\n\n get day() {\n return this.getAttribute('day');\n }\n\n get isClosed() {\n return this.getAttribute('start') === null && this.getAttribute('end') === null;\n }\n\n get is24Hours() {\n const start = this.startDateInstance;\n const end = this.endDateInstance;\n const diff = Math.abs(start - end);\n const hours = Math.floor(diff / 1000 / 60) / 60;\n\n return hours > 23;\n }\n\n get startDateInstance() {\n if (!this.hasAttribute('start')) {\n return null;\n }\n\n const start = this.getAttribute('start');\n const includesSeconds = start.split(':').length === 3;\n const format = includesSeconds ? 'HH:mm:ss' : 'HH:mm';\n\n return parse(start, format, new Date());\n }\n\n get endDateInstance() {\n if (!this.hasAttribute('end')) {\n return null;\n }\n\n const end = this.getAttribute('end');\n const includesSeconds = end.split(':').length === 3;\n const format = includesSeconds ? 'HH:mm:ss' : 'HH:mm';\n\n return parse(end, format, new Date());\n }\n\n get humanReadableHoursRange() {\n if (!isValid(this.startDateInstance) || !isValid(this.endDateInstance)) {\n return `${this.start} - ${this.end}`;\n }\n\n return `${format(this.startDateInstance, 'p')} - ${format(this.endDateInstance, 'p')}`;\n }\n\n get humanReadableHours() {\n if (this.isClosed) {\n return 'Closed';\n }\n\n if (this.is24Hours) {\n return '24 Hours';\n }\n\n return this.humanReadableHoursRange;\n }\n\n // remove default resource methods\n create() {\n throw new Error('There is no create() method store location!');\n }\n\n // remove default resource methods\n update() {\n throw new Error('There is no update() method store location!');\n }\n\n // remove default resource methods\n destroy() {\n throw new Error('There is no destroy() method store location!');\n }\n\n // remove default resource methods\n reload() {\n throw new Error('There is no reload() method store location!');\n }\n}\n\nregister('resource', 'StoreHour', StoreHour);\n","import Resource from '../resource.js';\nimport StoreHour from './store-hour.js';\nimport { Collection, lookup, register } from '@fleetbase/sdk';\nimport { format } from 'date-fns';\n\nexport default class StoreLocation extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'store-location', options);\n }\n\n get latitude() {\n return this.getAttribute('place.location.coordinates.1');\n }\n\n get longitude() {\n return this.getAttribute('place.location.coordinates.0');\n }\n\n get hours() {\n return new Collection((this.getAttribute('hours') || []).map((attributes) => new StoreHour(attributes, this.adapter)));\n }\n\n /** Raw embedded merchant payload, normalized across API response versions. */\n get storeData() {\n const embeddedStore = this.getAttribute('store_data');\n const legacyStore = this.getAttribute('store');\n\n return embeddedStore || (legacyStore && typeof legacyStore === 'object' ? legacyStore : null);\n }\n\n /** Public store identifier for this location. */\n get storeId() {\n const store = this.getAttribute('store');\n\n return typeof store === 'string' ? store : this.storeData?.id || this.storeData?.public_id;\n }\n\n /** Typed embedded merchant when requested with `with_store`. */\n get merchant() {\n return this.storeData ? lookup('resource', 'Store', this.storeData, this.adapter) : null;\n }\n\n get isAlwaysOpen() {\n return this.hours.every((hour) => hour?.is24Hours);\n }\n\n get today() {\n const today = format(new Date(), 'EEEE');\n\n return this.schedule[today];\n }\n\n get schedule() {\n const schedule = {};\n const week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];\n\n for (let i = 0; i < week.length; i++) {\n const day = week[i];\n\n schedule[day] = new Collection();\n }\n\n for (let i = 0; i < this.hours.length; i++) {\n const hour = this.hours.objectAt(i);\n\n schedule[hour.day].pushObject(hour);\n }\n\n return schedule;\n }\n\n // remove default resource methods\n create() {\n throw new Error('There is no create() method store location!');\n }\n\n // remove default resource methods\n update() {\n throw new Error('There is no update() method store location!');\n }\n\n // remove default resource methods\n destroy() {\n throw new Error('There is no destroy() method store location!');\n }\n}\n\nregister('resource', 'StoreLocation', StoreLocation);\n","import Resource from '../resource.js';\nimport { register } from '@fleetbase/sdk';\n\nexport default class PaymentGateway extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'payment-gateway', options);\n }\n\n get type() {\n return this.getAttribute('type');\n }\n\n get code() {\n return this.getAttribute('code');\n }\n\n get isCashGateway() {\n return this.type === 'cash';\n }\n\n get isStripeGateway() {\n return this.type === 'stripe';\n }\n\n setCheckoutToken(token) {\n this.token = token;\n }\n\n getCheckoutToken() {\n return this.token;\n }\n\n // remove default resource methods\n findRecord() {\n throw new Error('There is no findRecord() method for payment gateways!');\n }\n\n // remove default resource methods\n create() {\n throw new Error('There is no create() method for payment gateways!');\n }\n\n // remove default resource methods\n update() {\n throw new Error('There is no update() method for payment gateways!');\n }\n\n // remove default resource methods\n destroy() {\n throw new Error('There is no destroy() method for payment gateways!');\n }\n\n // remove default resource methods\n reload() {\n throw new Error('There is no reload() method for payment gateways!');\n }\n}\n\nregister('resource', 'PaymentGateway', PaymentGateway);\n","import Resource from '../resource.js';\nimport StoreLocation from './store-location.js';\nimport PaymentGateway from './payment-gateway.js';\nimport Review from './review.js';\nimport { Collection, Place, register } from '@fleetbase/sdk';\n\nexport default class Store extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'store', options);\n }\n\n getReviews(params = {}) {\n return this.adapter.get('reviews', { store: this.id, ...params }).then((reviews) => {\n return new Collection(reviews.map((attributes) => new Review(attributes, this.adapter)));\n });\n }\n\n getLocations(params = {}) {\n return this.adapter.get('locations', { store: this.id, ...params }).then((storeLocations) => {\n return new Collection(\n storeLocations.map((attributes) => {\n if (attributes.place) {\n attributes.place = new Place(attributes.place);\n }\n\n return new StoreLocation(attributes, this.adapter);\n })\n );\n });\n }\n\n getLocation(id) {\n return this.adapter.get(`locations/${id}`, { store: this.id }).then((attributes) => {\n return new StoreLocation(attributes, this.adapter);\n });\n }\n\n getPaymentGateways(params = {}) {\n return this.adapter.get('gateways', params).then((gateways) => {\n return new Collection(\n gateways.map((attributes) => {\n return new PaymentGateway(attributes, this.adapter);\n })\n );\n });\n }\n\n getPaymentGateway(id) {\n return this.adapter.get(`gateways/${id}`).then((attributes) => {\n return new PaymentGateway(attributes, this.adapter);\n });\n }\n}\n\nregister('resource', 'Store', Store);\n","import Resource from '../resource.js';\nimport Review from './review.js';\nimport { formatCurrency, isEmpty } from '../utils/index.js';\nimport { Collection, register } from '@fleetbase/sdk';\nimport Store from './store.js';\n\nexport default class Product extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'product', options);\n }\n\n variants() {\n return this.getAttribute('variants');\n }\n\n addons() {\n return this.getAttribute('addon_categories');\n }\n\n get isOnSale() {\n return this.getAttribute('is_on_sale');\n }\n\n get isNotOnSale() {\n return !this.getAttribute('is_on_sale');\n }\n\n get formattedAmount() {\n const { price, sale_price, currency } = this.getAttributes(['price', 'sale_price', 'currency']);\n\n if (this.isOnSale) {\n if (isEmpty(sale_price) || isEmpty(currency)) {\n return null;\n }\n\n return formatCurrency(sale_price / 100, currency);\n }\n\n if (isEmpty(price) || isEmpty(currency)) {\n return null;\n }\n\n return formatCurrency(price / 100, currency);\n }\n\n get merchant() {\n const attributes = this.getAttribute('store');\n\n return attributes && typeof attributes === 'object' ? new Store(attributes, this.adapter) : null;\n }\n\n getReviews() {\n return this.adapter.get('reviews', { store: this.id }).then((reviews) => {\n return new Collection(reviews.map((attributes) => new Review(attributes, this.adapter)));\n });\n }\n}\n\nregister('resource', 'Product', Product);\n","import Resource from '../resource.js';\nimport Product from './product.js';\nimport { Collection, register } from '@fleetbase/sdk';\n\nexport default class Category extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'category', options);\n }\n\n getProducts() {\n return this.adapter.get('products', { category: this.id }).then((products) => {\n return new Collection(products.map((attributes) => new Product(attributes, this.adapter)));\n });\n }\n}\n\nregister('resource', 'Category', Category);\n","import Resource from '../resource.js';\nimport StorefrontStore from '../store.js';\nimport { Collection, Order, Place, StoreActions, register } from '@fleetbase/sdk';\nimport { isPhone } from '../utils/is-phone.js';\n\nexport const customerActions = new StoreActions({\n // const { error } = await storefront.customers.login('+1 111-1111');\n login: function (identity, password = null, attributes = {}) {\n // handle phone number authentication\n if (isPhone(identity)) {\n return this.adapter.post('customers/login-with-sms', { phone: identity });\n }\n\n if (!password) {\n throw new Error('Login requires password!');\n }\n\n return this.adapter.post('customers/login', { identity, password, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n // const customer = await storefront.customers.loginWithApple('', '', '', '', '');\n loginWithApple: function (appleUserId, identityToken, authorizationCode, email, name, attributes = {}) {\n return this.adapter.post('customers/login-with-apple', { appleUserId, identityToken, authorizationCode, email, name, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n // const customer = await storefront.customers.loginWithFacebook('', '', '', '');\n loginWithFacebook: function (facebookUserId, email, name, avatarUrl, attributes = {}) {\n return this.adapter.post('customers/login-with-facebook', { facebookUserId, email, name, avatarUrl, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n // const customer = await storefront.customers.loginWithGoogle('', '');\n loginWithGoogle: function (idToken, clientId, attributes = {}) {\n return this.adapter.post('customers/login-with-google', { idToken, clientId, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n verifyCode: function (identity, code, attributes = {}) {\n return this.adapter.post('customers/verify-code', { identity, code, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n requestCreationCode(identity, mode = 'email') {\n return this.adapter.post('customers/request-creation-code', {\n identity,\n mode,\n });\n },\n\n create(identity, code, attributes = {}) {\n return this.adapter.post('customers', { identity, code, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n retrieve: function (id) {\n return this.findRecord(id);\n },\n});\n\nexport default class Customer extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'customer', {\n actions: customerActions,\n ...options,\n });\n }\n\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new StorefrontStore(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions,\n });\n\n return this;\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n async syncDevice(token, platform) {\n try {\n const headers = { 'Customer-Token': this.token };\n const response = await this.adapter.setHeaders(headers).post('customers/register-device', { token, platform });\n return response;\n } catch (error) {\n console.error(`Error making request to register customer device token:`, error);\n throw error;\n }\n }\n\n async performAuthorizedRequest(endpoint, params = {}, method = 'GET') {\n try {\n const headers = { 'Customer-Token': this.token };\n const response = await this.adapter.setHeaders(headers)[method.toLowerCase()](endpoint, params);\n return response;\n } catch (error) {\n console.error(`Error in ${method} request to ${endpoint}:`, error);\n throw error;\n }\n }\n\n async getSavedPlaces() {\n try {\n const places = await this.performAuthorizedRequest('customers/places');\n return new Collection(places.map((attributes) => new Place(attributes, this.adapter)));\n } catch (error) {\n console.error('Failed to retrieve saved places');\n throw error;\n }\n }\n\n async getOrderHistory(params = {}) {\n try {\n const orders = await this.performAuthorizedRequest('customers/orders', params);\n return new Collection(orders.map((attributes) => new Order(attributes, this.adapter)));\n } catch (error) {\n console.error('Failed to retrieve order history');\n throw error;\n }\n }\n\n getStripeEphemeralKey(params = {}) {\n return this.adapter.setHeaders({ 'Customer-Token': this.token }).post('customers/stripe-ephemeral-key', params);\n }\n\n getStripeSetupIntent(params = {}) {\n return this.adapter.setHeaders({ 'Customer-Token': this.token }).post('customers/stripe-setup-intent', params);\n }\n}\n\nregister('resource', 'Customer', Customer);\n","export function isPhone(phone = '') {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/g.test(phone);\n}\n\nexport default isPhone;\n","import Resource from '../resource.js';\nimport Product from './product.js';\nimport { StoreActions, register } from '@fleetbase/sdk';\n\nconst { isArray } = Array;\n\nexport const cartActions = new StoreActions({\n create: undefined,\n findAll: undefined,\n query: undefined,\n queryRecord: undefined,\n\n add: function (id, productId, quantity = 1, data = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/${productId}`, { ...data, quantity }, options).then(this.afterFetch.bind(this));\n },\n\n update: function (id, cartItemId, quantity, data = {}, options = {}) {\n return this.adapter.put(`${this.namespace}/${id}/${cartItemId}`, { ...data, quantity }, options).then(this.afterFetch.bind(this));\n },\n\n remove: function (id, cartItemId, options = {}) {\n return this.adapter.delete(`${this.namespace}/${id}/${cartItemId}`, {}, options).then(this.afterFetch.bind(this));\n },\n\n empty: function (id, options = {}) {\n return this.adapter.put(`${this.namespace}/${id}/empty`, {}, options).then(this.afterFetch.bind(this));\n },\n\n retrieve: function (id = '') {\n return this.findRecord(id);\n },\n});\n\nexport default class Cart extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'cart', { actions: cartActions, ...options });\n }\n\n add(productId, quantity = 1, data = {}, options = {}) {\n if (productId instanceof Product) {\n productId = productId.id;\n }\n\n return this.store.add(this.id, productId, quantity, data, options);\n }\n\n update(cartItemId, quantity, data = {}, options = {}) {\n return this.store.update(this.id, cartItemId, quantity, data, options);\n }\n\n remove(cartItemId, options = {}) {\n return this.store.remove(this.id, cartItemId, options);\n }\n\n empty(options = {}) {\n return this.store.empty(this.id, options);\n }\n\n delete() {\n return this.destroy();\n }\n\n refresh() {\n return this.store.retrieve(this.id);\n }\n\n subtotal() {\n let subtotal = 0;\n\n this.contents().forEach((cartItem) => {\n subtotal += cartItem.subtotal;\n });\n\n return subtotal;\n }\n\n contents() {\n return this.getAttribute('items', []);\n }\n\n hasProduct(productId) {\n return this.contents().findIndex((cartItem) => cartItem.product_id === productId) !== -1;\n }\n\n get isEmpty() {\n const contents = this.contents();\n\n if (!isArray(contents)) {\n return true;\n }\n\n return contents.length === 0;\n }\n\n get isNotEmpty() {\n return !this.isEmpty;\n }\n}\n\nregister('resource', 'Cart', Cart);\n","import Resource from '../resource.js';\nimport PaymentGateway from './payment-gateway.js';\nimport Category from './category.js';\nimport Product from './product.js';\nimport Review from './review.js';\nimport Store from './store.js';\nimport StoreLocation from './store-location.js';\nimport { Collection, register } from '@fleetbase/sdk';\n\nexport default class Network extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'network', options);\n }\n\n getTags(params = {}) {\n return this.adapter.get('tags', params);\n }\n\n async getResourceCollection(endpoint, ResourceClass, params = {}) {\n const resources = await this.adapter.get(endpoint, params);\n return new Collection(resources.map((attributes) => new ResourceClass(attributes, this.adapter)));\n }\n\n async getStores(params = {}) {\n return this.getResourceCollection('stores', Store, params);\n }\n\n async getStoreLocations(params = {}) {\n return this.getResourceCollection('store-locations', StoreLocation, params);\n }\n\n async getCategories(params = {}) {\n return this.getResourceCollection('categories', Category, params);\n }\n\n async search(query, params = {}) {\n return this.getResourceCollection('search', Product, { query, with_store: true, ...params });\n }\n\n async lookupStore(id) {\n const attributes = await this.adapter.get(`lookup/${id}`);\n return new Store(attributes, this.adapter);\n }\n\n async getReviews(storeId, params = {}) {\n return this.getResourceCollection('reviews', Review, { store: storeId, ...params });\n }\n\n async getPaymentGateways(params = {}) {\n return this.getResourceCollection('gateways', PaymentGateway, params);\n }\n}\n\nregister('resource', 'Network', Network);\n","import StorefrontStore from '../store.js';\nimport { Adapter, Collection, ServiceQuote, register } from '@fleetbase/sdk';\nimport { formatCurrency, isEmpty, isArray } from '../utils/index.js';\n\nexport default class DeliveryServiceQuote extends ServiceQuote {\n constructor(attributes = {}, adapter, options = {}) {\n let finalAttributes = attributes;\n let finalAdapter = adapter;\n\n // If `attributes` is actually an Adapter, adjust the arguments accordingly.\n if (attributes instanceof Adapter) {\n finalAttributes = {};\n finalAdapter = attributes;\n }\n\n // Call `super()` exactly once with the resolved arguments.\n super(finalAttributes, finalAdapter, 'service-quote', options);\n }\n\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new StorefrontStore(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions,\n });\n\n return this;\n }\n\n get formattedAmount() {\n const { amount, currency } = this.getAttributes(['amount', 'currency']);\n\n if (isEmpty(amount) || isEmpty(currency)) {\n return null;\n }\n\n return formatCurrency(amount / 100, currency);\n }\n\n async fromCart() {\n return this.fetchServiceQuotesFromCart(...arguments);\n }\n\n async fetchServiceQuotesFromCart(origin, destination, cart, config = 'storefront', all = false) {\n if (origin?.id) {\n origin = origin.id;\n }\n\n if (destination?.id) {\n destination = destination.id;\n }\n\n if (cart?.id) {\n cart = cart.id;\n }\n\n try {\n const serviceQuotes = await this.adapter.get('service-quotes/from-cart', {\n origin,\n destination,\n cart,\n config,\n all,\n });\n\n if (isArray(serviceQuotes)) {\n return new Collection(serviceQuotes.map((serviceQuote) => new DeliveryServiceQuote(serviceQuote, this.adapter)));\n }\n\n return new DeliveryServiceQuote(serviceQuotes, this.adapter);\n } catch (error) {\n console.error('Error fetching service quotes:', error);\n throw error;\n }\n }\n\n static async getFromCart(adapter, origin, destination, cart, config = 'storefront', all = false) {\n const quote = new DeliveryServiceQuote(adapter);\n return quote.fetchServiceQuotesFromCart(origin, destination, cart, config, all);\n }\n}\n\nregister('resource', 'DeliveryServiceQuote', DeliveryServiceQuote);\n","import Resource from '../resource.js';\nimport { Order, StoreActions, isResource, register } from '@fleetbase/sdk';\n\nexport const checkoutActions = new StoreActions({\n create: undefined,\n findAll: undefined,\n query: undefined,\n queryRecord: undefined,\n\n initialize: function (customer, cart, serviceQuote, gateway, orderOptions = {}, options = {}) {\n if (isResource(customer)) {\n customer = customer.id;\n }\n\n if (isResource(cart)) {\n cart = cart.id;\n }\n\n if (isResource(serviceQuote)) {\n serviceQuote = serviceQuote.id;\n }\n\n if (isResource(gateway)) {\n gateway = gateway.getAttribute('code');\n }\n\n return this.adapter.get(`${this.namespace}/before`, { ...orderOptions, customer, cart, serviceQuote, gateway }, options);\n },\n\n captureOrder: function (token, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/capture`, { token, ...params }, options).then((orderJson) => new Order(orderJson));\n },\n\n createStripeSetupIntent: function (customer, params = {}, options = {}) {\n if (isResource(customer)) {\n customer = customer.id;\n }\n\n return this.adapter.post(`${this.namespace}/stripe-setup-intent`, { customer, ...params }, options);\n },\n\n updateStripePaymentIntent: function (paymentIntent, customer, cart, serviceQuote, orderOptions = {}, options = {}) {\n if (isResource(customer)) {\n customer = customer.id;\n }\n\n if (isResource(cart)) {\n cart = cart.id;\n }\n\n if (isResource(serviceQuote)) {\n serviceQuote = serviceQuote.id;\n }\n\n return this.adapter.put(`${this.namespace}/stripe-update-payment-intent`, { paymentIntent, customer, cart, serviceQuote, ...orderOptions }, options);\n },\n});\n\nexport default class Checkout extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'checkout', { actions: checkoutActions, ...options });\n }\n\n initialize() {\n return this.store.initialize(...arguments);\n }\n\n captureOrder() {\n return this.store.captureOrder(...arguments);\n }\n}\n\nregister('resource', 'Checkout', Checkout);\n","import Resource from '../resource.js';\nimport { register } from '@fleetbase/sdk';\n\nexport default class FoodTruck extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'food-truck', options);\n }\n}\n\nregister('resource', 'FoodTruck', FoodTruck);\n","import StorefrontStore from './store.js';\nimport { isKeyValid } from './utils/index.js';\nimport { Product, Category, Customer, Cart, Store, StoreLocation, StoreHour, DeliveryServiceQuote, Checkout, PaymentGateway, Review, Network, FoodTruck } from './resources.js';\nimport { cartActions } from './resources/cart.js';\nimport { customerActions } from './resources/customer.js';\nimport { checkoutActions } from './resources/checkout.js';\nimport { reviewActions } from './resources/review.js';\nimport { Collection, lookup, detectAdapter } from '@fleetbase/sdk';\n\n/**\n * // instance\n * const storefront = new Storefront();\n *\n */\nexport default class Storefront {\n /**\n * Builds an instance of the Fleetbase Storefront SDK\n *\n * @param {String} storeKey The access key for the storefront store\n * @param {Object} config The config object\n * @param {Boolean} debug Enable debug mode\n * @return {Storefront} Instance\n */\n constructor(storeKey, config = {}, debug = false) {\n this.version = config.version || 'v1';\n this.options = {\n version: this.version,\n host: config.host || 'https://api.fleetbase.io',\n namespace: config.namespace || `storefront/${this.version}`,\n publicKey: storeKey,\n debug,\n };\n\n if (!isKeyValid(storeKey)) {\n throw new Error('⚠️ Invalid Storefront key given to Storefront SDK');\n }\n\n this.adapter = config.adapter || detectAdapter(this.options);\n\n this.initializeStores();\n }\n\n initializeStores() {\n this.products = new StorefrontStore('product', this.adapter);\n this.categories = new StorefrontStore('category', this.adapter);\n this.foodTrucks = new StorefrontStore('food-truck', this.adapter);\n this.reviews = new StorefrontStore('review', this.adapter).extendActions(reviewActions);\n this.customers = new StorefrontStore('customer', this.adapter).extendActions(customerActions);\n this.cart = new StorefrontStore('cart', this.adapter).extendActions(cartActions);\n this.checkout = new StorefrontStore('checkout', this.adapter).extendActions(checkoutActions);\n\n return this;\n }\n\n /** loads information about this storefront */\n about(options = {}) {\n return this.adapter.get('about').then((attributes) => (options.resource ? this.hydrateOwner(attributes) : attributes));\n }\n\n /** loads the storefront owner as a typed Store or Network resource */\n getOwner() {\n return this.about({ resource: true });\n }\n\n /** lookup a specific store or network provided the ID */\n lookup(id, options = {}) {\n return this.adapter.get(`lookup/${id}`).then((attributes) => (options.resource ? this.hydrateOwner(attributes) : attributes));\n }\n\n /** lookup a store or network as a typed resource */\n lookupResource(id) {\n return this.lookup(id, { resource: true });\n }\n\n /** search products in store or network */\n search(query, options = {}) {\n return this.adapter.get('search', { query, ...options }).then((products) => {\n return new Collection(products.map((product) => new Product(product, this.adapter)));\n });\n }\n\n hydrateOwner(attributes = {}) {\n if (attributes?.is_network === true) {\n return new Network(attributes, this.adapter);\n }\n\n return new Store(attributes, this.adapter);\n }\n\n static newInstance() {\n return new Storefront(...arguments);\n }\n\n setAdapter(adapter) {\n this.adapter = adapter;\n\n return this.initializeStores();\n }\n\n getAdapter() {\n return this.adapter;\n }\n}\n\nexport { Product, Category, Customer, Cart, Store, StoreLocation, StoreHour, DeliveryServiceQuote, Checkout, PaymentGateway, Review, Network, FoodTruck, lookup };\n","export function isKeyValid(key) {\n return typeof key === 'string' && key.length > 30 && (key.startsWith('store_') || key.startsWith('network_'));\n}\n\nexport default isKeyValid;\n"],"names":["N","t","e","n","arguments","length","h","this","g","RegExp","str","chain","v","key","value","r","indexOf","toLowerCase","i","match","replace","applyRules","pluralRules","uncountableWords","singularRules","split","o","charAt","toUpperCase","substring","join","a","s","slice","uppercase","underbarPrefix","idSuffix","underbar","capitalize","spaceOrUnderbar","camelize","underscore","nonTitlecasedWords","pluralize","concat","trim","singularize","demodulize","parseInt","isNaN","Object","values","shift","apply","F","Array","prototype","call","invoke","S","D","z","StorefrontStore","_Store","_classCallCheck","_callSuper","_inherits","_createClass","extendStoreActions","undefined","json","lookup","classify","resource","adapter","Store","formatCurrency","amount","currency","currencyDisplay","Intl","NumberFormat","style","format","isEmpty","obj","none","size","objectType","_typeof","isArray","StorefrontResource","_Resource","_this$options","store","onAfterFetch","syncAttributes","bind","actions","options","Resource","register","reviewActions","StoreActions","count","storeId","params","get","namespace","Review","attributes","millisecondsInWeek","constructFromSymbol","Symbol","constructFrom","date","Date","constructor","toDate","argument","context","addDays","_date","NaN","setDate","getDate","defaultOptions","getDefaultOptions","startOfWeek","_ref","_ref2","_ref3","_options$weekStartsOn","_options$locale","_defaultOptions$local","weekStartsOn","locale","day","getDay","diff","setHours","startOfISOWeek","_objectSpread","getISOWeekYear","year","getFullYear","fourthOfJanuaryOfNextYear","setFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","getTime","getTimezoneOffsetInMilliseconds","utcDate","UTC","getMonth","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","startOfDay","differenceInCalendarDays","laterDate","earlierDate","_normalizeDates","_len","dates","_key","normalize","find","map","normalizeDates","_normalizeDates2","_slicedToArray","laterDate_","earlierDate_","laterStartOfDay","earlierStartOfDay","laterTimestamp","earlierTimestamp","Math","round","isValid","toString","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","args","width","String","defaultWidth","formats","formatLong","full","long","medium","short","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","valuesArray","formattingValues","defaultFormattingWidth","argumentCallback","localize","ordinalNumber","dirtyNumber","_options","number","Number","rem100","era","narrow","abbreviated","wide","quarter","month","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","buildMatchFn","string","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","array","predicate","findIndex","pattern","test","object","hasOwnProperty","findKey","valueCallback","rest","parsePattern","parseResult","any","index","enUS","code","formatDistance","token","result","tokenValue","addSuffix","comparison","formatRelative","_baseDate","firstWeekContainsDate","getDayOfYear","date_","startOfYear","getISOWeek","fourthOfJanuary","startOfISOWeekYear","getWeekYear","_options$firstWeekCon","firstWeekOfNextYear","firstWeekOfThisYear","getWeek","firstWeek","startOfWeekYear","addLeadingZeros","targetLength","abs","padStart","lightFormatters","signedYear","numberOfDigits","milliseconds","trunc","pow","dayPeriodEnum","formatters","G","y","unit","Y","signedWeekYear","weekYear","R","u","Q","ceil","q","M","L","w","week","I","isoWeek","d","dayOfYear","E","dayOfWeek","localDayOfWeek","c","isoDayOfWeek","dayPeriodEnumValue","b","hours","B","H","K","k","m","X","_localize","timezoneOffset","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","x","O","formatTimezoneShort","T","offset","delimiter","sign","absOffset","minutes","dateLongFormatter","timeLongFormatter","longFormatters","p","P","dateTimeFormat","datePattern","timePattern","dayOfYearTokenRE","weekYearTokenRE","throwTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","warnOrThrowProtectedError","input","_message","subject","message","console","warn","includes","RangeError","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","formatStr","_ref4","_ref5","_ref6","_ref7","_defaultOptions$local2","defaultLocale","_options$locale2","_options$locale3","originalDate","parts","firstCharacter","longFormatter","isToken","cleanEscapedString","preprocessor","formatterOptions","part","formatter","matched","Setter","_defineProperty","_utcDate","ValueSetter","_Setter2","validateValue","setValue","priority","subPriority","_this","flags","DateTimezoneSetter","_Setter3","reference","_this2","timestampIsSet","_constructor$prototyp","isConstructor","transpose","Parser","dateString","parse","setter","validate","set","_value","EraParser","_Parser","numericPatterns","timezonePatterns","mapValue","parseFnResult","mapFn","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","isLeapYearIndex","YearParser","isTwoDigitYear","normalizedTwoDigitYear","LocalWeekYearParser","ISOWeekYearParser","_flags","firstWeekOfYear","ExtendedYearParser","QuarterParser","setMonth","StandAloneQuarterParser","MonthParser","StandAloneMonthParser","LocalWeekParser","setWeek","ISOWeekParser","setISOWeek","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","DateParser","isLeapYear","DayOfYearParser","setDay","currentDay","delta","DayParser","LocalDayParser","wholeWeekDays","floor","StandAloneLocalDayParser","setISODay","getISODay","ISODayParser","AMPMParser","AMPMMidnightParser","DayPeriodParser","Hour1to12Parser","isPM","Hour0to23Parser","Hour0To11Parser","Hour1To24Parser","MinuteParser","setMinutes","SecondParser","setSeconds","FractionOfSecondParser","setMilliseconds","ISOTimezoneWithZParser","ISOTimezoneParser","TimestampSecondsParser","TimestampMillisecondsParser","parsers","notWhitespaceRegExp","dateStr","referenceDate","invalidDate","assign","getInternalDefaultOptions","_step","subFnOptions","setters","tokens","usedTokens","_iterator","_createForOfIteratorHelper","_ret","_loop","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","parser","incompatibleTokens","incompatibleToken","usedToken","fullToken","push","run","done","err","f","uniquePrioritySetters","sort","filter","setterArray","_step2","_iterator2","StoreHour","getAttribute","start","startDateInstance","end","endDateInstance","hasAttribute","includesSeconds","isClosed","is24Hours","humanReadableHoursRange","Error","StoreLocation","Collection","embeddedStore","legacyStore","_this$storeData","_this$storeData2","storeData","id","public_id","every","hour","schedule","objectAt","pushObject","PaymentGateway","type","then","reviews","storeLocations","place","Place","_this3","_this4","gateways","_this5","Product","_this$getAttributes","getAttributes","price","sale_price","isOnSale","Category","category","products","customerActions","login","identity","password","isPhone","post","phone","afterFetch","loginWithApple","appleUserId","identityToken","authorizationCode","email","name","loginWithFacebook","facebookUserId","avatarUrl","loginWithGoogle","idToken","clientId","verifyCode","requestCreationCode","mode","create","retrieve","findRecord","Customer","_syncDevice","_asyncToGenerator","_regeneratorRuntime","mark","_callee","platform","headers","response","wrap","_context","prev","next","setHeaders","sent","abrupt","t0","error","stop","_x","_x2","_performAuthorizedRequest","_callee2","endpoint","method","_args2","_context2","_x3","_getSavedPlaces","_callee3","places","_context3","performAuthorizedRequest","_getOrderHistory","_callee4","orders","_args4","_context4","Order","cartActions","findAll","query","queryRecord","add","productId","quantity","data","update","cartItemId","put","remove","empty","Cart","destroy","subtotal","contents","forEach","cartItem","product_id","Network","_getResourceCollection","ResourceClass","resources","_args","_getStores","getResourceCollection","_getStoreLocations","_args3","_getCategories","_search","_callee5","_args5","_context5","with_store","_lookupStore","_callee6","_context6","_x4","_getReviews","_callee7","_args7","_context7","_x5","_getPaymentGateways","_callee8","_args8","_context8","DeliveryServiceQuote","_ServiceQuote","finalAttributes","finalAdapter","Adapter","_fromCart","fetchServiceQuotesFromCart","_fetchServiceQuotesFromCart","origin","destination","cart","_origin","_destination","_cart","config","all","serviceQuotes","serviceQuote","_getFromCart","quote","_x6","_x7","ServiceQuote","checkoutActions","initialize","customer","gateway","orderOptions","isResource","captureOrder","orderJson","createStripeSetupIntent","updateStripePaymentIntent","paymentIntent","Checkout","_this$store","_this$store2","FoodTruck","Storefront","storeKey","debug","version","host","publicKey","startsWith","detectAdapter","initializeStores","categories","foodTrucks","extendActions","customers","checkout","hydrateOwner","about","product","is_network","_construct"],"mappings":"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","x_google_ignoreList":[0,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87]} \ No newline at end of file +{"version":3,"file":"@storefront.min.js","sources":["../node_modules/.pnpm/@fleetbase+sdk@1.2.13/node_modules/@fleetbase/sdk/dist/esm/fleetbase.js","../src/store.ts","../src/utils/format-currency.ts","../src/utils/is-empty.ts","../src/resource.ts","../src/resources/review.ts","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/constants.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/constructFrom.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/toDate.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/addDays.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/_lib/defaultOptions.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/startOfWeek.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/startOfISOWeek.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getISOWeekYear.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/startOfDay.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/differenceInCalendarDays.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/_lib/normalizeDates.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/isValid.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/isDate.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-US/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/_lib/buildFormatLongFn.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-US/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-US/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/_lib/buildLocalizeFn.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/_lib/buildMatchFn.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-US.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-US/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-US/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getDayOfYear.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/startOfYear.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getISOWeek.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/startOfISOWeekYear.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getWeekYear.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getWeek.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/startOfWeekYear.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/_lib/addLeadingZeros.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/_lib/format/lightFormatters.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/_lib/format/formatters.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/_lib/format/longFormatters.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/_lib/protectedTokens.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/format.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/Setter.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/transpose.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/Parser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/constants.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/utils.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/DateParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/setDay.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/setISODay.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getISODay.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/EraParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/YearParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/QuarterParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/MonthParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/setWeek.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/setISOWeek.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/DayParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/ISODayParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/AMPMParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/MinuteParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/SecondParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getDefaultOptions.js","../src/resources/store-hour.ts","../src/resources/store-location.ts","../src/resources/payment-gateway.ts","../src/resources/store.ts","../src/resources/product.ts","../src/resources/category.ts","../src/resources/customer.ts","../src/utils/is-phone.ts","../src/resources/cart.ts","../src/resources/network.ts","../src/resources/delivery-service-quote.ts","../src/utils/array.ts","../src/resources/order.ts","../src/resources/checkout.ts","../src/resources/food-truck.ts","../src/resources/order-actions.ts","../src/storefront.ts","../src/utils/is-key-valid.ts"],"sourcesContent":["function t(t,e){this.v=t,this.k=e}function e(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,a=!0,s=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function g(t,e,n){return(e=j(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function y(t){return y=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},y(t)}function b(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,\"prototype\",{writable:!1}),e&&O(t,e)}function m(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(m=function(){return!!t})()}function w(t){if(\"undefined\"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t[\"@@iterator\"])return Array.from(t)}function k(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}function E(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function A(t){for(var e=1;e=0;--o){var a=this.tryEntries[o],s=a.completion;if(\"root\"===a.tryLoc)return i(\"end\");if(a.tryLoc<=this.prev){var u=r.call(a,\"catchLoc\"),c=r.call(a,\"finallyLoc\");if(u&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,\"finallyLoc\")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),_(n),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var i=r.arg;_(n)}return i}}throw Error(\"illegal catch attempt\")},delegateYield:function(e,n,r){return this.delegate={iterator:L(e),resultName:n,nextLoc:r},\"next\"===this.method&&(this.arg=t),g}},e}function O(t,e){return O=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},O(t,e)}function R(t,e){return n(t)||function(t,e){var n=null==t?null:\"undefined\"!=typeof Symbol&&t[Symbol.iterator]||t[\"@@iterator\"];if(null!=n){var r,i,o,a,s=[],u=!0,c=!1;try{if(o=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=o.call(n)).done)&&(s.push(r.value),s.length!==e);u=!0);}catch(t){c=!0,i=t}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw i}}return s}}(t,e)||_(t,e)||k()}function S(t){return function(t){if(Array.isArray(t))return e(t)}(t)||w(t)||_(t)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function j(t){var e=function(t,e){if(\"object\"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||\"default\");if(\"object\"!=typeof r)return r;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===e?String:Number)(t)}(t,\"string\");return\"symbol\"==typeof e?e:e+\"\"}function T(t){return T=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},T(t)}function _(t,n){if(t){if(\"string\"==typeof t)return e(t,n);var r={}.toString.call(t).slice(8,-1);return\"Object\"===r&&t.constructor&&(r=t.constructor.name),\"Map\"===r||\"Set\"===r?Array.from(t):\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?e(t,n):void 0}}function P(t){return function(){return new L(t.apply(this,arguments))}}function L(e){var n,r;function i(n,r){try{var a=e[n](r),s=a.value,u=s instanceof t;Promise.resolve(u?s.v:s).then((function(t){if(u){var r=\"return\"===n?\"return\":\"next\";if(!s.k||t.done)return i(r,t);t=e[r](t).value}o(a.done?\"return\":\"normal\",t)}),(function(t){i(\"throw\",t)}))}catch(t){o(\"throw\",t)}}function o(t,e){switch(t){case\"return\":n.resolve({value:e,done:!0});break;case\"throw\":n.reject(e);break;default:n.resolve({value:e,done:!1})}(n=n.next)?i(n.key,n.arg):r=null}this._invoke=function(t,e){return new Promise((function(o,a){var s={key:t,arg:e,resolve:o,reject:a,next:null};r?r=r.next=s:(n=r=s,i(t,e))}))},\"function\"!=typeof e.return&&(this.return=void 0)}function C(t){var e=\"function\"==typeof Map?new Map:void 0;return C=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf(\"[native code]\")}catch(e){return\"function\"==typeof t}}(t))return t;if(\"function\"!=typeof t)throw new TypeError(\"Super expression must either be null or a function\");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return f(t,arguments,y(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),O(n,t)},C(t)}L.prototype[\"function\"==typeof Symbol&&Symbol.asyncIterator||\"@@asyncIterator\"]=function(){return this},L.prototype.next=function(t){return this._invoke(\"next\",t)},L.prototype.throw=function(t){return this._invoke(\"throw\",t)},L.prototype.return=function(t){return this._invoke(\"return\",t)};var N=function(){function t(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];h(this,t),g(this,\"uncountableWords\",[\"equipment\",\"information\",\"rice\",\"money\",\"species\",\"series\",\"fish\",\"sheep\",\"moose\",\"deer\",\"news\"]),g(this,\"pluralRules\",[[new RegExp(\"(m)an$\",\"gi\"),\"$1en\"],[new RegExp(\"(pe)rson$\",\"gi\"),\"$1ople\"],[new RegExp(\"(child)$\",\"gi\"),\"$1ren\"],[new RegExp(\"^(ox)$\",\"gi\"),\"$1en\"],[new RegExp(\"(ax|test)is$\",\"gi\"),\"$1es\"],[new RegExp(\"(octop|vir)us$\",\"gi\"),\"$1i\"],[new RegExp(\"(alias|status)$\",\"gi\"),\"$1es\"],[new RegExp(\"(bu)s$\",\"gi\"),\"$1ses\"],[new RegExp(\"(buffal|tomat|potat)o$\",\"gi\"),\"$1oes\"],[new RegExp(\"([ti])um$\",\"gi\"),\"$1a\"],[new RegExp(\"sis$\",\"gi\"),\"ses\"],[new RegExp(\"(?:([^f])fe|([lr])f)$\",\"gi\"),\"$1$2ves\"],[new RegExp(\"(hive)$\",\"gi\"),\"$1s\"],[new RegExp(\"([^aeiouy]|qu)y$\",\"gi\"),\"$1ies\"],[new RegExp(\"(x|ch|ss|sh)$\",\"gi\"),\"$1es\"],[new RegExp(\"(matr|vert|ind)ix|ex$\",\"gi\"),\"$1ices\"],[new RegExp(\"([m|l])ouse$\",\"gi\"),\"$1ice\"],[new RegExp(\"(quiz)$\",\"gi\"),\"$1zes\"],[new RegExp(\"s$\",\"gi\"),\"s\"],[new RegExp(\"$\",\"gi\"),\"s\"]]),g(this,\"singularRules\",[[new RegExp(\"(m)en$\",\"gi\"),\"$1an\"],[new RegExp(\"(pe)ople$\",\"gi\"),\"$1rson\"],[new RegExp(\"(child)ren$\",\"gi\"),\"$1\"],[new RegExp(\"([ti])a$\",\"gi\"),\"$1um\"],[new RegExp(\"((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$\",\"gi\"),\"$1$2sis\"],[new RegExp(\"(hive)s$\",\"gi\"),\"$1\"],[new RegExp(\"(tive)s$\",\"gi\"),\"$1\"],[new RegExp(\"(curve)s$\",\"gi\"),\"$1\"],[new RegExp(\"([lr])ves$\",\"gi\"),\"$1f\"],[new RegExp(\"([^fo])ves$\",\"gi\"),\"$1fe\"],[new RegExp(\"([^aeiouy]|qu)ies$\",\"gi\"),\"$1y\"],[new RegExp(\"(s)eries$\",\"gi\"),\"$1eries\"],[new RegExp(\"(m)ovies$\",\"gi\"),\"$1ovie\"],[new RegExp(\"(x|ch|ss|sh)es$\",\"gi\"),\"$1\"],[new RegExp(\"([m|l])ice$\",\"gi\"),\"$1ouse\"],[new RegExp(\"(bus)es$\",\"gi\"),\"$1\"],[new RegExp(\"(o)es$\",\"gi\"),\"$1\"],[new RegExp(\"(shoe)s$\",\"gi\"),\"$1\"],[new RegExp(\"(cris|ax|test)es$\",\"gi\"),\"$1is\"],[new RegExp(\"(octop|vir)i$\",\"gi\"),\"$1us\"],[new RegExp(\"(alias|status)es$\",\"gi\"),\"$1\"],[new RegExp(\"^(ox)en\",\"gi\"),\"$1\"],[new RegExp(\"(vert|ind)ices$\",\"gi\"),\"$1ex\"],[new RegExp(\"(matr)ices$\",\"gi\"),\"$1ix\"],[new RegExp(\"(quiz)zes$\",\"gi\"),\"$1\"],[new RegExp(\"s$\",\"gi\"),\"\"]]),g(this,\"nonTitlecasedWords\",[\"and\",\"or\",\"nor\",\"a\",\"an\",\"the\",\"so\",\"but\",\"to\",\"of\",\"at\",\"by\",\"from\",\"into\",\"on\",\"onto\",\"off\",\"out\",\"in\",\"over\",\"with\",\"for\"]),g(this,\"idSuffix\",new RegExp(\"(_ids|_id)$\",\"g\")),g(this,\"underbar\",new RegExp(\"_\",\"g\")),g(this,\"spaceOrUnderbar\",new RegExp(\"[ _]\",\"g\")),g(this,\"uppercase\",new RegExp(\"([A-Z])\",\"g\")),g(this,\"underbarPrefix\",new RegExp(\"^_\")),this.str=e,this.chain=n}return v(t,[{key:\"get\",value:function(){return this.str}},{key:\"applyRules\",value:function(t,e,n,r){if(r)t=r;else if(!(n.indexOf(t.toLowerCase())>-1))for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:null;return t=t||this.str,this.applyRules(t,this.pluralRules,this.uncountableWords,e)}},{key:\"singularize\",value:function(t,e){return t=t||this.str,this.applyRules(t,this.singularRules,this.uncountableWords,e)}},{key:\"camelize\",value:function(t,e){for(var n=(t=t||this.str).split(\"/\"),r=0;r1&&void 0!==arguments[1]&&arguments[1];return t=t||this.str,t=this.underscore(this.demodulize(t))+(e?\"\":\"_\")+\"id\",this.str=t,!0===this.chain?this:t}},{key:\"ordinalize\",value:function(t){for(var e=(t=t||this.str).split(\" \"),n=0;n2?i-2:0),a=2;a2?n-2:0),i=2;i2?n-2:0),i=2;i2?n-2:0),i=2;i1?e-1:0),r=1;r3&&void 0!==arguments[3]?arguments[3]:[];if(V(t))if(r.length<=X)t.splice.apply(t,[e,n].concat(S(r)));else{t.splice(e,n);for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:0,r=t.length,i=n;i2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3?arguments[3]:void 0,i=t.length;return n<0&&(n+=i),nt(t,r&&e!=e?function(t){return t!=t}:function(t){return t===e},n)}function it(t,e,n){return Q(t,e,0,[n]),n}function ot(){return f(at,Array.prototype.slice.call(arguments))}var at=function(){function t(){return h(this,t),r(V(arguments[0])?l(this,t,S(arguments[0])):l(this,t,arguments))}return b(t,C(Array)),v(t,[{key:\"notEmpty\",get:function(){return this.length>0}},{key:\"empty\",get:function(){return 0===this.length}},{key:\"first\",get:function(){return tt(this,0)}},{key:\"last\",get:function(){return tt(this,this.length-1)}},{key:\"replace\",value:function(t,e){return Q(this,t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:[]),this}},{key:\"objectsAt\",value:function(t){var e=this;return t.map((function(t){return tt(e,t)}))}},{key:\"objectAt\",value:function(t){return tt(this,t)}},{key:\"indexOf\",value:function(t,e){return rt(this,t,e,!1)}},{key:\"lastIndexOf\",value:function(t,e){var n=this.length;(void 0===e||e>=n)&&(e=n-1),e<0&&(e+=n);for(var r=e;r>=0;r--)if(tt(this,r)===t)return r;return-1}},{key:\"includes\",value:function(t,e){return-1!==rt(this,t,e,!0)}},{key:\"findBy\",value:function(){return t=this,e=et.apply(void 0,arguments),-1===(r=nt(t,e.bind(n),0))?void 0:tt(t,r);var t,e,n,r}},{key:\"findIndexBy\",value:function(){return nt(this,et.apply(void 0,arguments))}},{key:\"isEvery\",value:function(){return t=this,e=et.apply(void 0,arguments),r=e.bind(n),-1===nt(t,(function(t,e,n){return!r(t,e,n)}),0);var t,e,n,r}},{key:\"isAny\",value:function(){return t=this,e=et.apply(void 0,arguments),-1!==nt(t,e.bind(n),0);var t,e,n}},{key:\"invoke\",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:Y,n=[],r=new Set,i=\"function\"==typeof e?e:function(t){return get(t,e)};return t.forEach((function(t){var e=i(t);r.has(e)||(r.add(e),n.push(t))})),n}(this,t)}},{key:\"without\",value:function(t){if(!this.includes(t))return this;var e=t==t?function(e){return e!==t}:function(t){return t==t};return this.filter(e)}},{key:\"clear\",value:function(){var t=this.length;return 0===t||this.replace(0,t,[]),this}},{key:\"insertAt\",value:function(t,e){return it(this,t,e),this}},{key:\"replaceAt\",value:function(t,e){return this.replace(t,1,[e])}},{key:\"removeAt\",value:function(t,e){return function(t,e){return Q(t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,[]),t}(this,t,e)}},{key:\"pushObject\",value:function(t){return this.insertAt(this.length,t)}},{key:\"pushObjects\",value:function(t){return this.replace(this.length,0,t),this}},{key:\"popObject\",value:function(){var t=this.length;if(0===t)return null;var e=tt(this,t-1);return this.removeAt(t-1,1),e}},{key:\"shiftObject\",value:function(){if(0===this.length)return null;var t=tt(this,0);return this.removeAt(0),t}},{key:\"unshiftObject\",value:function(t){return it(this,0,t)}},{key:\"unshiftObjects\",value:function(t){return this.replace(0,0,t),this}},{key:\"reverseObjects\",value:function(){var t=this.length;if(0===t)return this;var e=this.toArray().reverse();return this.replace(0,t,e),this}},{key:\"setObjects\",value:function(t){if(0===t.length)return this.clear();var e=this.length;return this.replace(0,e,t),this}},{key:\"removeObject\",value:function(t){for(var e=this.length||0;--e>=0;){tt(this,e)===t&&this.removeAt(e)}return this}},{key:\"removeObjects\",value:function(t){for(var e=t.length-1;e>=0;e--)this.removeObject(t[e]);return this}},{key:\"addObject\",value:function(t){return this.includes(t)||this.pushObject(t),this}},{key:\"addObjects\",value:function(t){var e=this;return t.forEach((function(t){return e.addObject(t)})),this}}])}();function st(t){var e=null==t;if(e)return e;if(\"number\"==typeof t.size)return!t.size;var n=T(t);if(\"object\"===n){var r=t.size;if(\"number\"==typeof r)return!r}if(\"number\"==typeof t.length&&\"function\"!==n)return!t.length;if(\"object\"===n){var i=t.length;if(\"number\"==typeof i)return!i}return!1}function ut(t){return isFinite(t)&&Math.abs(t)<=90}function ct(t){return isFinite(t)&&Math.abs(t)<=180&&Math.abs(t)>=90}function lt(){var t,e,n;return!(\"undefined\"==typeof process||\"object\"!==T(null===(t=process)||void 0===t?void 0:t.env)&&-1===(null===(e=process.release)||void 0===e||null===(e=e.name)||void 0===e?void 0:e.search(/node|io.js/))||\"undefined\"!=typeof window&&\"ReactNative\"!==(null===(n=window)||void 0===n||null===(n=n.navigator)||void 0===n?void 0:n.product))}function ht(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return lt()?W(\"adapter\",\"NodeAdapter\",t):W(\"adapter\",\"BrowserAdapter\",t)}var ft=function(){return v((function t(e){h(this,t),this.place=e,this.geometry=null==e?void 0:e.geometry,this.components=this.parseComponents(),this.attributes=this.parseProperties()}),[{key:\"parse\",value:function(){this.parseComponents(),this.parseProperties()}},{key:\"parseComponents\",value:function(){var t;return((null===(t=this.place)||void 0===t?void 0:t.address_components)||[]).reduce((function(t,e){return e.types.forEach((function(n){t[n]=e})),t}),{})}},{key:\"parseProperties\",value:function(){var t,e={streetNumber:this.get(\"street_number\"),streetName:this.get(\"route\"),coordinates:null!==(t=this.geometry)&&void 0!==t&&t.location?Object.values(this.geometry.location):[0,0],city:this.or([\"locality\",\"sublocality\",\"sublocality_level_1\",\"neighborhood\",\"administrative_area_level_3\",\"administrative_area_level_2\"]),county:this.get(\"administrative_area_level_2\"),stateShort:this.get(\"administrative_area_level_1\",!0),stateLong:this.get(\"administrative_area_level_1\"),countryShort:this.get(\"country\",!0),country:this.get(\"country\",!0),countryLong:this.get(\"country\"),postalCode:this.get(\"postal_code\")};return e.address=[e.streetNumber,e.streetName].filter(Boolean).join(\" \"),e}},{key:\"all\",value:function(){return this.attributes}},{key:\"or\",value:function(){var t,e=p(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]);try{for(e.s();!(t=e.n()).done;){var n=t.value;if(V(n)){var r=n[0],i=n[1];if(this.has(r))return this.get(r,i)}else if(this.has(n))return this.get(n)}}catch(t){e.e(t)}finally{e.f()}return null}},{key:\"has\",value:function(t){return t in this.components}},{key:\"get\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t in this.components?e?this.components[t].short_name:this.components[t].long_name:null}},{key:\"setAttributes\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.attributes=A(A({},this.attributes),t),this}},{key:\"setAttribute\",value:function(t,e){return this.attributes[t]=e,this}},{key:\"getAttribute\",value:function(t){return this.attributes[t]||null}}])}(),dt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;h(this,t),this.type=\"Point\",this.coordinates=[n,e]}return v(t,[{key:\"latitude\",get:function(){return this.coordinates[1]}},{key:\"longitude\",get:function(){return this.coordinates[0]}},{key:\"lat\",value:function(){return this.latitude}},{key:\"lng\",value:function(){return this.longitude}},{key:\"serialize\",value:function(){return{type:\"Point\",coorindates:[this.lat(),this.lng()]}}},{key:\"toJson\",value:function(){return this.serialize()}},{key:\"toString\",value:function(){return\"(\".concat(this.latitude,\", \").concat(this.longitude,\")\")}}],[{key:\"fromGeoJson\",value:function(e){var n=R(e.coordinates,2),r=n[0];return new t(n[1],r)}}])}();function vt(t,e){var n=t();return Array.isArray(n)||\"object\"===T(n)?pt(n,e):null}function pt(t,e){var n,r=t,i=T(t),o=\"object\"===i,a=\"function\"===i,s=Array.isArray(t),u=\"string\"===T(e)&&e.includes(\".\")?e.split(\".\"):[e];if(s||o){for(var c=0;c1&&void 0!==arguments[1]?arguments[1]:[];if(t.actions=V(e)?e:[e],!V(e))return e instanceof mt&&e.extend(t),t;var n,r=p(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;t.extendActions(i)}}catch(t){r.e(t)}finally{r.f()}}function bt(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;h(this,t),this.actions=e,this.bind=n}),[{key:\"extend\",value:function(){var t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||this.bind;if(!t)return this;if(null!=this&&this.actions&&\"object\"===T(this.actions))for(var e in this.actions){var n=this.actions[e];\"function\"==typeof n?gt(t,e,n.bind(t)):gt(t,e,n)}return this}}])}();function wt(t){return t instanceof kt}var kt=function(){return v((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};h(this,t),this.attributes=e,this.dirtyAttributes={},this.changes={},this.isLoading=!1,this.isSaving=!1,this.isDestroying=!1,this.isReloading=!1,this.resource=r,this.options=i,this.version=i.version||\"v1\",this.setAdapter(n)}),[{key:\"setAdapter\",value:function(t){var e;return this.adapter=t,this.store=M(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:\"id\",get:function(){return this.getAttribute(\"id\")}},{key:\"create\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.mergeAttributes(e);return this.setFlags([\"isLoading\",\"isSaving\"]),this.store.create(n).then((function(e){return t.setFlags([\"isLoading\",\"isSaving\"],!1),e}))}},{key:\"update\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setFlags([\"isLoading\",\"isSaving\"]),this.store.update(this.attributes.id,e).then((function(e){return t.setFlags([\"isLoading\",\"isSaving\"],!1),e}))}},{key:\"destroy\",value:function(){var t=this;return this.setFlags([\"isLoading\",\"isDestroying\"]),this.store.destroy(this.attributes.id).then((function(e){return t.setFlags([\"isLoading\",\"isDestroying\"],!1),e}))}},{key:\"reload\",value:function(){var t=this;return this.setFlags([\"isLoading\",\"isReloading\"]),this.store.findRecord(this.attributes.id).then((function(e){return t.reset(),e}))}},{key:\"setFlags\",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=[\"isLoading\",\"isSaving\",\"isReloading\",\"isDestroying\"],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=this.getAttributes();return st(this.id)?this.create(e):!0===t.onlyDirty?this.savedirty():this.update(e)}},{key:\"saveDirty\",value:function(){for(var t=Object.keys(this.dirtyAttributes),e={},n=0;n0}},{key:\"mutate\",value:function(t,e){this.attributes[t]=e}},{key:\"setAttribute\",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null===n&&\"object\"===T(t))return this.setAttributes(t);var r=null!==(e=null==this?void 0:this.attributes[t])&&void 0!==e?e:null;return gt(this.attributes,t,n),gt(this.dirtyAttributes,t,r),V(null==this?void 0:this.changes[t])||(this.changes[t]=[]),this.changes[t].push({property:t,previousValue:r,value:n,changedAt:new Date}),this}},{key:\"setAttributes\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var e in t)this.setAttribute(e,t[e]);return this}},{key:\"getAttribute\",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=pt(null!==(e=null==this?void 0:this.attributes)&&void 0!==e?e:{},t);return void 0===r?n:r}},{key:\"hasAttribute\",value:function(t){if(V(t)){var e,n=t,r=Object.keys(null!==(e=this.attributes)&&void 0!==e?e:{});return n.every((function(t){return r.includes(t)}))}return!(null==this||!this.attributes)&&t in this.attributes}},{key:\"hasAttributes\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.hasAttribute(t)}},{key:\"isAttributeFilled\",value:function(t){var e=this;return V(t)?this.hasAttribute(t)&&t.every((function(t){return!st(e.getAttribute(t))})):this.hasAttribute(t)&&!st(this.getAttribute(t))}},{key:\"getAttributes\",value:function(t){var e={};if(null==t)return this.getAttributes(Object.keys(this.attributes));if(\"string\"==typeof t)return this.getAttribute(Array.prototype.slice.call(arguments));if(!V(t))throw new Error(\"No attribute properties provided!\");var n,r=p(t);try{for(r.s();!(n=r.n()).done;){var i,o,a=n.value;if(\"string\"==typeof a){var s=this.getAttribute(a);\"object\"!==T(null===(i=s)||void 0===i?void 0:i.attributes)||V(null===(o=s)||void 0===o?void 0:o.attributes)||(s=s.attributes),e[a]=s}}}catch(t){r.e(t)}finally{r.f()}return e}},{key:\"serialize\",value:function(){return this.getAttributes()}},{key:\"mergeAttributes\",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=null!==(t=null==this?void 0:this.attributes)&&void 0!==t?t:{};return this.attributes=A(A({},n),e),this.attributes}},{key:\"syncAttributes\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attributes=t}}])}();q(\"resource\",\"Resource\",kt);var Et=function(){return v((function t(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};h(this,t),this.resource=e,this.adapter=n||ht(),this.namespace=F(e),this.storage=ot(),this.options=r,this.extendActions(r.actions)}),[{key:\"extendActions\",value:function(){return yt(this,arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])}},{key:\"deposit\",value:function(t){return t}},{key:\"serialize\",value:function(t){return W(\"resource\",z(this.resource),t,this.adapter)}},{key:\"afterFetch\",value:function(t){return function(t,e){if(\"function\"==typeof t.options.onAfterFetch&&t.options.onAfterFetch(e),V(e)){var n,r=[],i=p(e);try{for(i.s();!(n=i.n()).done;){var o=n.value;r.push(t.afterFetch(o))}}catch(t){i.e(t)}finally{i.f()}return ot.apply(void 0,r)}var a=t.serialize(e);return t.deposit(a)}(this,t)}},{key:\"create\",value:(a=u(x().mark((function t(){var e,n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=4,this.adapter.post(\"\".concat(this.namespace),e,n);case 4:return r=t.sent,t.abrupt(\"return\",this.afterFetch(r));case 6:case\"end\":return t.stop()}}),t,this)}))),function(){return a.apply(this,arguments)})},{key:\"update\",value:(o=u(x().mark((function t(e){var n,r,i,o=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=o.length>1&&void 0!==o[1]?o[1]:{},r=o.length>2&&void 0!==o[2]?o[2]:{},t.next=4,this.adapter.put(\"\".concat(this.namespace,\"/\").concat(e),n,r);case 4:return i=t.sent,t.abrupt(\"return\",this.afterFetch(i));case 6:case\"end\":return t.stop()}}),t,this)}))),function(t){return o.apply(this,arguments)})},{key:\"findRecord\",value:(i=u(x().mark((function t(e){var n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=3,this.adapter.get(\"\".concat(this.namespace,\"/\").concat(e),{},n);case 3:return r=t.sent,t.abrupt(\"return\",this.afterFetch(r));case 5:case\"end\":return t.stop()}}),t,this)}))),function(t){return i.apply(this,arguments)})},{key:\"findAll\",value:(r=u(x().mark((function t(){var e,n,r=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=r.length>0&&void 0!==r[0]?r[0]:{},t.next=3,this.adapter.get(\"\".concat(this.namespace),{},e);case 3:return n=t.sent,t.abrupt(\"return\",this.afterFetch(n));case 5:case\"end\":return t.stop()}}),t,this)}))),function(){return r.apply(this,arguments)})},{key:\"query\",value:(n=u(x().mark((function t(){var e,n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=4,this.adapter.get(\"\".concat(this.namespace),e,n);case 4:return r=t.sent,t.abrupt(\"return\",this.afterFetch(r));case 6:case\"end\":return t.stop()}}),t,this)}))),function(){return n.apply(this,arguments)})},{key:\"queryRecord\",value:(e=u(x().mark((function t(){var e,n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},(e=i.length>0&&void 0!==i[0]?i[0]:{}).single=!0,t.next=5,this.adapter.get(\"\".concat(this.namespace),e,n);case 5:return r=t.sent,t.abrupt(\"return\",this.afterFetch(r));case 7:case\"end\":return t.stop()}}),t,this)}))),function(){return e.apply(this,arguments)})},{key:\"destroy\",value:(t=u(x().mark((function t(e){var n,r,i,o=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=o.length>1&&void 0!==o[1]?o[1]:{},r=wt(e)?e.getAttribute(\"id\"):e,t.next=4,this.adapter.delete(\"\".concat(this.namespace,\"/\").concat(r),{},n);case 4:return i=t.sent,t.abrupt(\"return\",this.afterFetch(i));case 6:case\"end\":return t.stop()}}),t,this)}))),function(e){return t.apply(this,arguments)})}]);var t,e,n,r,i,o,a}();q(\"store\",\"Store\",Et);var At=new mt({getDistanceAndTime:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get(\"\".concat(this.namespace,\"/\").concat(t,\"/distance-and-time\"),e,n)},getNextActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get(\"\".concat(this.namespace,\"/\").concat(t,\"/next-activity\"),e,n)},dispatch:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/dispatch\"),e,n).then(this.afterFetch.bind(this))},start:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/start\"),e,n).then(this.afterFetch.bind(this))},updateActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/update-activity\"),e,n).then(this.afterFetch.bind(this))},setDestination:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return wt(e)&&(e=e.id),this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/set-destination/\").concat(e),n,r).then(this.afterFetch.bind(this))},captureQrCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return wt(e)&&(e=e.id),this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/capture-qr\").concat(e?\"/\"+e:\"\"),n,r)},captureSignature:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return wt(e)&&(e=e.id),this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/capture-signature\").concat(e?\"/\"+e:\"\"),n,r)},complete:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/complete\"),e,n).then(this.afterFetch.bind(this))},cancel:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete(\"\".concat(this.namespace,\"/\").concat(t,\"/cancel\"),e,n).then(this.afterFetch.bind(this))}}),xt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"order\",A({actions:At},r)])}return b(t,kt),v(t,[{key:\"getDistanceAndTime\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getDistanceAndTime(this.id,t,e)}},{key:\"dispatch\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.dispatch(this.id,t,e)}},{key:\"start\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.start(this.id,t,e)}},{key:\"setDestination\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.setDestination(this.id,t,e,n)}},{key:\"captureQrCode\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureQrCode(this.id,t,e,n)}},{key:\"captureSignature\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureSignature(this.id,t,e,n)}},{key:\"getNextActivity\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getNextActivity(this.id,t,e)}},{key:\"updateActivity\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.updateActivity(this.id,t,e)}},{key:\"cancel\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.cancel(this.id,t,e)}},{key:\"complete\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.complete(this.id,t,e)}},{key:\"isDispatched\",get:function(){return null!==this.getAttribute(\"dispatched_at\")}},{key:\"isNotDispatched\",get:function(){return null==this.getAttribute(\"dispatched_at\")}},{key:\"isStarted\",get:function(){return null!==this.getAttribute(\"started_at\")}},{key:\"isNotStarted\",get:function(){return null==this.getAttribute(\"started_at\")}},{key:\"isCompleted\",get:function(){return\"completed\"==this.getAttribute(\"status\")}},{key:\"isCanceled\",get:function(){return\"canceled\"==this.getAttribute(\"status\")}},{key:\"isEnroute\",get:function(){return\"driver_enroute\"==this.getAttribute(\"status\")||\"enroute\"===this.getAttribute(\"status\")}},{key:\"isInProgress\",get:function(){return this.isStarted&&!this.isCanceled&&!this.isCompleted}},{key:\"scheduledAt\",get:function(){return this.isAttributeFilled(\"scheduled_at\")?new Date(this.getAttribute(\"scheduled_at\")):null}},{key:\"startedAt\",get:function(){return this.isAttributeFilled(\"started_at\")?new Date(this.getAttribute(\"started_at\")):null}},{key:\"dispatchedAt\",get:function(){return this.isAttributeFilled(\"dispatched_at\")?new Date(this.getAttribute(\"dispatched_at\")):null}},{key:\"status\",get:function(){return this.getAttribute(\"status\")}}])}();q(\"resource\",\"Order\",xt);var Ot=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"payload\",r])}return b(t,kt),v(t,[{key:\"attach\",value:function(t){}},{key:\"entities\",get:function(){var t=this;return ot(this.entities.map((function(e){return G(\"Entity\",e,t.adapter)})))}},{key:\"dropoff\",get:function(){return this.dropoff?G(\"Place\",this.dropoff,this.adapter):null}},{key:\"pickup\",get:function(){return this.pickup?G(\"Place\",this.pickup,this.adapter):null}},{key:\"waypoints\",get:function(){var t=this;return ot(this.waypoints.map((function(e){return G(\"Waypoint\",e,t.adapter)})))}}])}();q(\"resource\",\"Payload\",Ot);var Rt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"entity\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Entity\",Rt);var St=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"place\",r])}return b(t,kt),v(t,[{key:\"latitude\",get:function(){var t;return null===(t=this.getAttribute(\"location\",new dt))||void 0===t?void 0:t.coordinates[1]}},{key:\"longitude\",get:function(){var t;return null===(t=this.getAttribute(\"location\",new dt))||void 0===t?void 0:t.coordinates[0]}},{key:\"coordinates\",get:function(){return[this.latitude,this.longitude]}},{key:\"setOwner\",value:function(t){return wt(t)&&this.setAttribute(\"owner\",t.id),\"string\"==typeof t&&this.setAttribute(\"owner\",t),this}}],[{key:\"fromGoogleAddress\",value:function(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=R(e.getAttribute(\"coordinates\"),2),o=i[0],a=i[1];return new t({name:null,address:e.getAttribute(\"address\"),location:new dt(o,a),street1:e.getAttribute(\"address\"),street2:null,city:e.getAttribute(\"city\"),province:e.getAttribute(\"stateLong\"),postal_code:e.getAttribute(\"postalCode\"),neighborhood:e.get(\"neighborhood\"),district:e.getAttribute(\"county\"),building:e.get(\"building\"),country:e.getAttribute(\"countryShort\"),phone:null,security_access_code:null},n,r)}}])}();q(\"resource\",\"Place\",St);var jt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"waypoint\",r])}return b(t,St),v(t)}();q(\"resource\",\"Waypoint\",jt);var Tt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"tracking-status\",r])}return b(t,kt),v(t)}();q(\"resource\",\"TrackingStatus\",Tt);var _t=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"vehicle\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Vehicle\",_t);var Pt=new mt({current:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.get(\"\".concat(this.namespace,\"/current\"),t,e)}}),Lt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"organization\",A({actions:Pt},r)])}return b(t,kt),v(t)}();q(\"resource\",\"Organization\",Lt);var Ct=function(t,e){return V(t)?t.map((function(t){return new Lt(t,e)})):new Lt(t,e)},Nt=new mt({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(function(){return/^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/g.test(arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\")}(t))return this.adapter.post(\"drivers/login-with-sms\",{phone:t});if(!e)throw new Error(\"Login requires password!\");return this.adapter.post(\"drivers/login\",A({identity:t,password:e},n)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"drivers/verify-code\",A({identity:t,code:e},n)).then(this.afterFetch.bind(this))},track:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"drivers/\".concat(t,\"/track\"),e,n).then(this.afterFetch.bind(this))},listOrganizations:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get(\"drivers/\".concat(t,\"/organizations\"),n,r).then((function(t){return Ct(t,e.adapter)}))},switchOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"drivers/\".concat(t,\"/switch-organization\"),n,r).then((function(t){return Ct(t,e.adapter)}))},currentOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get(\"drivers/\".concat(t,\"/current-organization\"),n,r).then((function(t){return Ct(t,e.adapter)}))},retrieve:function(t){return this.findRecord(t)},syncDevice:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"drivers/\".concat(t,\"/register-device\"),e,n)}}),Ft=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"driver\",A({actions:Nt},r)])}return b(t,kt),v(t,[{key:\"token\",get:function(){return this.getAttribute(\"token\")}},{key:\"isOnline\",get:function(){return!0===this.getAttribute(\"online\")}},{key:\"latitude\",get:function(){var t;return null===(t=this.getAttribute(\"location\",new dt))||void 0===t?void 0:t.coordinates[1]}},{key:\"longitude\",get:function(){var t;return null===(t=this.getAttribute(\"location\",new dt))||void 0===t?void 0:t.coordinates[0]}},{key:\"coordinates\",get:function(){return[this.latitude,this.longitude]}},{key:\"track\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.track(this.id,t,e)}},{key:\"syncDevice\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.syncDevice(this.id,t,e)}},{key:\"listOrganizations\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.listOrganizations(this.id,t,e)}},{key:\"switchOrganization\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.switchOrganization(this.id,{next:t},e)}},{key:\"currentOrganization\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.currentOrganization(this.id,t,e)}}])}();q(\"resource\",\"Driver\",Ft);var Dt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"vendor\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Vendor\",Dt);var $t=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"contact\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Contact\",$t);var Ut=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"zone\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Zone\",Ut);var zt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"service-area\",r])}return b(t,kt),v(t)}();q(\"resource\",\"ServiceArea\",zt);var Bt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"service-rate\",r])}return b(t,kt),v(t)}();q(\"resource\",\"ServiceRate\",Bt);var qt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"service-quote\",r])}return b(t,kt),v(t,[{key:\"fromPreliminary\",value:function(){}},{key:\"fromPayload\",value:function(){}}])}();q(\"resource\",\"ServiceQuote\",qt);var It=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"fleet\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Fleet\",It);var Mt=v((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};h(this,t),this.version=e.version||\"v1\",this.host=e.host||null,this.namespace=e.namespace||null,this.headers=e.headers||{}}));q(\"adapter\",\"Adapter\",Mt);var Ht=function(){function t(e){var n;return h(this,t),(n=l(this,t,[e])).setHeaders({Authorization:\"Bearer \".concat(e.publicKey),\"Content-Type\":\"application/json\",\"User-Agent\":\"@fleetbase/sdk;browser\"}),n}return b(t,Mt),v(t,[{key:\"setHeaders\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.headers=A(A({},this.headers),t),this}},{key:\"parseJSON\",value:function(t){return new Promise((function(e,n){t.json().then((function(n){e({statusText:t.statusText,status:t.status,ok:t.ok,json:n})})).catch((function(){n(new Error(\"Oops! Something went wrong when handling your request.\"))}))}))}},{key:\"request\",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"GET\",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new Promise((function(o,a){fetch(i.url||\"\".concat(e.host,\"/\").concat(e.namespace,\"/\").concat(t),A({method:n,mode:i.mode||\"cors\",headers:new Headers(A(A({},e.headers||{}),i.headers||{}))},r)).then(e.parseJSON).then((function(t){if(t.ok)return o(t.json);a(new Error(t.json.errors?t.json.errors[0]:t.statusText))})).catch((function(t){a(t)}))}))}},{key:\"get\",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=st(e=n)||\"string\"==typeof e&&!1===/\\S/.test(e)?\"\":new URLSearchParams(n).toString();return this.request(\"\".concat(t).concat(i?\"?\".concat(i):\"\"),\"GET\",{},r)}},{key:\"post\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,\"POST\",{body:JSON.stringify(e)},n)}},{key:\"put\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,\"PUT\",{body:JSON.stringify(e)},n)}},{key:\"delete\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(t,\"DELETE\",{},e)}},{key:\"patch\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,\"PATCH\",{body:JSON.stringify(e)},n)}}])}();function Jt(t,e){return function(){return t.apply(e,arguments)}}q(\"adapter\",\"BrowserAdapter\",Ht);var Wt,Kt=Object.prototype.toString,Gt=Object.getPrototypeOf,Vt=(Wt=Object.create(null),function(t){var e=Kt.call(t);return Wt[e]||(Wt[e]=e.slice(8,-1).toLowerCase())}),Xt=function(t){return t=t.toLowerCase(),function(e){return Vt(e)===t}},Qt=function(t){return function(e){return T(e)===t}},Yt=Array.isArray,Zt=Qt(\"undefined\");var te=Xt(\"ArrayBuffer\");var ee=Qt(\"string\"),ne=Qt(\"function\"),re=Qt(\"number\"),ie=function(t){return null!==t&&\"object\"===T(t)},oe=function(t){if(\"object\"!==Vt(t))return!1;var e=Gt(t);return!(null!==e&&e!==Object.prototype&&null!==Object.getPrototypeOf(e)||Symbol.toStringTag in t||Symbol.iterator in t)},ae=Xt(\"Date\"),se=Xt(\"File\"),ue=Xt(\"Blob\"),ce=Xt(\"FileList\"),le=Xt(\"URLSearchParams\"),he=R([\"ReadableStream\",\"Request\",\"Response\",\"Headers\"].map(Xt),4),fe=he[0],de=he[1],ve=he[2],pe=he[3];function ge(t,e){var n,r,i=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).allOwnKeys,o=void 0!==i&&i;if(null!=t)if(\"object\"!==T(t)&&(t=[t]),Yt(t))for(n=0,r=t.length;n0;)if(e===(n=r[i]).toLowerCase())return n;return null}var be=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:global,me=function(t){return!Zt(t)&&t!==be};var we,ke=(we=\"undefined\"!=typeof Uint8Array&&Gt(Uint8Array),function(t){return we&&t instanceof we}),Ee=Xt(\"HTMLFormElement\"),Ae=function(){var t=Object.prototype.hasOwnProperty;return function(e,n){return t.call(e,n)}}(),xe=Xt(\"RegExp\"),Oe=function(t,e){var n=Object.getOwnPropertyDescriptors(t),r={};ge(n,(function(n,i){var o;!1!==(o=e(n,i,t))&&(r[i]=o||n)})),Object.defineProperties(t,r)},Re=\"abcdefghijklmnopqrstuvwxyz\",Se=\"0123456789\",je={DIGIT:Se,ALPHA:Re,ALPHA_DIGIT:Re+Re.toUpperCase()+Se};var Te,_e,Pe,Le,Ce=Xt(\"AsyncFunction\"),Ne=(Te=\"function\"==typeof setImmediate,_e=ne(be.postMessage),Te?setImmediate:_e?(Pe=\"axios@\".concat(Math.random()),Le=[],be.addEventListener(\"message\",(function(t){var e=t.source,n=t.data;e===be&&n===Pe&&Le.length&&Le.shift()()}),!1),function(t){Le.push(t),be.postMessage(Pe,\"*\")}):function(t){return setTimeout(t)}),Fe=\"undefined\"!=typeof queueMicrotask?queueMicrotask.bind(be):\"undefined\"!=typeof process&&process.nextTick||Ne,De={isArray:Yt,isArrayBuffer:te,isBuffer:function(t){return null!==t&&!Zt(t)&&null!==t.constructor&&!Zt(t.constructor)&&ne(t.constructor.isBuffer)&&t.constructor.isBuffer(t)},isFormData:function(t){var e;return t&&(\"function\"==typeof FormData&&t instanceof FormData||ne(t.append)&&(\"formdata\"===(e=Vt(t))||\"object\"===e&&ne(t.toString)&&\"[object FormData]\"===t.toString()))},isArrayBufferView:function(t){return\"undefined\"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&te(t.buffer)},isString:ee,isNumber:re,isBoolean:function(t){return!0===t||!1===t},isObject:ie,isPlainObject:oe,isReadableStream:fe,isRequest:de,isResponse:ve,isHeaders:pe,isUndefined:Zt,isDate:ae,isFile:se,isBlob:ue,isRegExp:xe,isFunction:ne,isStream:function(t){return ie(t)&&ne(t.pipe)},isURLSearchParams:le,isTypedArray:ke,isFileList:ce,forEach:ge,merge:function t(){for(var e=(me(this)&&this||{}).caseless,n={},r=function(r,i){var o=e&&ye(n,i)||i;oe(n[o])&&oe(r)?n[o]=t(n[o],r):oe(r)?n[o]=t({},r):Yt(r)?n[o]=r.slice():n[o]=r},i=0,o=arguments.length;i3&&void 0!==arguments[3]?arguments[3]:{}).allOwnKeys}),t},trim:function(t){return t.trim?t.trim():t.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\"\")},stripBOM:function(t){return 65279===t.charCodeAt(0)&&(t=t.slice(1)),t},inherits:function(t,e,n,r){t.prototype=Object.create(e.prototype,r),t.prototype.constructor=t,Object.defineProperty(t,\"super\",{value:e.prototype}),n&&Object.assign(t.prototype,n)},toFlatObject:function(t,e,n,r){var i,o,a,s={};if(e=e||{},null==t)return e;do{for(o=(i=Object.getOwnPropertyNames(t)).length;o-- >0;)a=i[o],r&&!r(a,t,e)||s[a]||(e[a]=t[a],s[a]=!0);t=!1!==n&&Gt(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},kindOf:Vt,kindOfTest:Xt,endsWith:function(t,e,n){t=String(t),(void 0===n||n>t.length)&&(n=t.length),n-=e.length;var r=t.indexOf(e,n);return-1!==r&&r===n},toArray:function(t){if(!t)return null;if(Yt(t))return t;var e=t.length;if(!re(e))return null;for(var n=new Array(e);e-- >0;)n[e]=t[e];return n},forEachEntry:function(t,e){for(var n,r=(t&&t[Symbol.iterator]).call(t);(n=r.next())&&!n.done;){var i=n.value;e.call(t,i[0],i[1])}},matchAll:function(t,e){for(var n,r=[];null!==(n=t.exec(e));)r.push(n);return r},isHTMLForm:Ee,hasOwnProperty:Ae,hasOwnProp:Ae,reduceDescriptors:Oe,freezeMethods:function(t){Oe(t,(function(e,n){if(ne(t)&&-1!==[\"arguments\",\"caller\",\"callee\"].indexOf(n))return!1;var r=t[n];ne(r)&&(e.enumerable=!1,\"writable\"in e?e.writable=!1:e.set||(e.set=function(){throw Error(\"Can not rewrite read-only method '\"+n+\"'\")}))}))},toObjectSet:function(t,e){var n={},r=function(t){t.forEach((function(t){n[t]=!0}))};return Yt(t)?r(t):r(String(t).split(e)),n},toCamelCase:function(t){return t.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,(function(t,e,n){return e.toUpperCase()+n}))},noop:function(){},toFiniteNumber:function(t,e){return null!=t&&Number.isFinite(t=+t)?t:e},findKey:ye,global:be,isContextDefined:me,ALPHABET:je,generateString:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:je.ALPHA_DIGIT,n=\"\",r=e.length;t--;)n+=e[Math.random()*r|0];return n},isSpecCompliantForm:function(t){return!!(t&&ne(t.append)&&\"FormData\"===t[Symbol.toStringTag]&&t[Symbol.iterator])},toJSONObject:function(t){var e=new Array(10),n=function(t,r){if(ie(t)){if(e.indexOf(t)>=0)return;if(!(\"toJSON\"in t)){e[r]=t;var i=Yt(t)?[]:{};return ge(t,(function(t,e){var o=n(t,r+1);!Zt(o)&&(i[e]=o)})),e[r]=void 0,i}}return t};return n(t,0)},isAsyncFn:Ce,isThenable:function(t){return t&&(ie(t)||ne(t))&&ne(t.then)&&ne(t.catch)},setImmediate:Ne,asap:Fe};function $e(t,e,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=t,this.name=\"AxiosError\",e&&(this.code=e),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status?i.status:null)}De.inherits($e,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:De.toJSONObject(this.config),code:this.code,status:this.status}}});var Ue=$e.prototype,ze={};[\"ERR_BAD_OPTION_VALUE\",\"ERR_BAD_OPTION\",\"ECONNABORTED\",\"ETIMEDOUT\",\"ERR_NETWORK\",\"ERR_FR_TOO_MANY_REDIRECTS\",\"ERR_DEPRECATED\",\"ERR_BAD_RESPONSE\",\"ERR_BAD_REQUEST\",\"ERR_CANCELED\",\"ERR_NOT_SUPPORT\",\"ERR_INVALID_URL\"].forEach((function(t){ze[t]={value:t}})),Object.defineProperties($e,ze),Object.defineProperty(Ue,\"isAxiosError\",{value:!0}),$e.from=function(t,e,n,r,i,o){var a=Object.create(Ue);return De.toFlatObject(t,a,(function(t){return t!==Error.prototype}),(function(t){return\"isAxiosError\"!==t})),$e.call(a,t.message,e,n,r,i),a.cause=t,a.name=t.name,o&&Object.assign(a,o),a};function Be(t){return De.isPlainObject(t)||De.isArray(t)}function qe(t){return De.endsWith(t,\"[]\")?t.slice(0,-2):t}function Ie(t,e,n){return t?t.concat(e).map((function(t,e){return t=qe(t),!n&&e?\"[\"+t+\"]\":t})).join(n?\".\":\"\"):e}var Me=De.toFlatObject(De,{},null,(function(t){return/^is[A-Z]/.test(t)}));function He(t,e,n){if(!De.isObject(t))throw new TypeError(\"target must be an object\");e=e||new FormData;var r=(n=De.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(t,e){return!De.isUndefined(e[t])}))).metaTokens,i=n.visitor||c,o=n.dots,a=n.indexes,s=(n.Blob||\"undefined\"!=typeof Blob&&Blob)&&De.isSpecCompliantForm(e);if(!De.isFunction(i))throw new TypeError(\"visitor must be a function\");function u(t){if(null===t)return\"\";if(De.isDate(t))return t.toISOString();if(!s&&De.isBlob(t))throw new $e(\"Blob is not supported. Use a Buffer instead.\");return De.isArrayBuffer(t)||De.isTypedArray(t)?s&&\"function\"==typeof Blob?new Blob([t]):Buffer.from(t):t}function c(t,n,i){var s=t;if(t&&!i&&\"object\"===T(t))if(De.endsWith(n,\"{}\"))n=r?n:n.slice(0,-2),t=JSON.stringify(t);else if(De.isArray(t)&&function(t){return De.isArray(t)&&!t.some(Be)}(t)||(De.isFileList(t)||De.endsWith(n,\"[]\"))&&(s=De.toArray(t)))return n=qe(n),s.forEach((function(t,r){!De.isUndefined(t)&&null!==t&&e.append(!0===a?Ie([n],r,o):null===a?n:n+\"[]\",u(t))})),!1;return!!Be(t)||(e.append(Ie(i,n,o),u(t)),!1)}var l=[],h=Object.assign(Me,{defaultVisitor:c,convertValue:u,isVisitable:Be});if(!De.isObject(t))throw new TypeError(\"data must be an object\");return function t(n,r){if(!De.isUndefined(n)){if(-1!==l.indexOf(n))throw Error(\"Circular reference detected in \"+r.join(\".\"));l.push(n),De.forEach(n,(function(n,o){!0===(!(De.isUndefined(n)||null===n)&&i.call(e,n,De.isString(o)?o.trim():o,r,h))&&t(n,r?r.concat(o):[o])})),l.pop()}}(t),e}function Je(t){var e={\"!\":\"%21\",\"'\":\"%27\",\"(\":\"%28\",\")\":\"%29\",\"~\":\"%7E\",\"%20\":\"+\",\"%00\":\"\\0\"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,(function(t){return e[t]}))}function We(t,e){this._pairs=[],t&&He(t,this,e)}var Ke=We.prototype;function Ge(t){return encodeURIComponent(t).replace(/%3A/gi,\":\").replace(/%24/g,\"$\").replace(/%2C/gi,\",\").replace(/%20/g,\"+\").replace(/%5B/gi,\"[\").replace(/%5D/gi,\"]\")}function Ve(t,e,n){if(!e)return t;var r=n&&n.encode||Ge;De.isFunction(n)&&(n={serialize:n});var i,o=n&&n.serialize;if(i=o?o(e,n):De.isURLSearchParams(e)?e.toString():new We(e,n).toString(r)){var a=t.indexOf(\"#\");-1!==a&&(t=t.slice(0,a)),t+=(-1===t.indexOf(\"?\")?\"?\":\"&\")+i}return t}Ke.append=function(t,e){this._pairs.push([t,e])},Ke.toString=function(t){var e=t?function(e){return t.call(this,e,Je)}:Je;return this._pairs.map((function(t){return e(t[0])+\"=\"+e(t[1])}),\"\").join(\"&\")};var Xe=function(){return v((function t(){h(this,t),this.handlers=[]}),[{key:\"use\",value:function(t,e,n){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}},{key:\"eject\",value:function(t){this.handlers[t]&&(this.handlers[t]=null)}},{key:\"clear\",value:function(){this.handlers&&(this.handlers=[])}},{key:\"forEach\",value:function(t){De.forEach(this.handlers,(function(e){null!==e&&t(e)}))}}])}(),Qe={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Ye={isBrowser:!0,classes:{URLSearchParams:\"undefined\"!=typeof URLSearchParams?URLSearchParams:We,FormData:\"undefined\"!=typeof FormData?FormData:null,Blob:\"undefined\"!=typeof Blob?Blob:null},protocols:[\"http\",\"https\",\"file\",\"blob\",\"url\",\"data\"]},Ze=\"undefined\"!=typeof window&&\"undefined\"!=typeof document,tn=\"object\"===(\"undefined\"==typeof navigator?\"undefined\":T(navigator))&&navigator||void 0,en=Ze&&(!tn||[\"ReactNative\",\"NativeScript\",\"NS\"].indexOf(tn.product)<0),nn=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&\"function\"==typeof self.importScripts,rn=Ze&&window.location.href||\"http://localhost\",on=A(A({},Object.freeze({__proto__:null,hasBrowserEnv:Ze,hasStandardBrowserEnv:en,hasStandardBrowserWebWorkerEnv:nn,navigator:tn,origin:rn})),Ye);function an(t){function e(t,n,r,i){var o=t[i++];if(\"__proto__\"===o)return!0;var a=Number.isFinite(+o),s=i>=t.length;return o=!o&&De.isArray(r)?r.length:o,s?(De.hasOwnProp(r,o)?r[o]=[r[o],n]:r[o]=n,!a):(r[o]&&De.isObject(r[o])||(r[o]=[]),e(t,n,r[o],i)&&De.isArray(r[o])&&(r[o]=function(t){var e,n,r={},i=Object.keys(t),o=i.length;for(e=0;e-1,o=De.isObject(t);if(o&&De.isHTMLForm(t)&&(t=new FormData(t)),De.isFormData(t))return i?JSON.stringify(an(t)):t;if(De.isArrayBuffer(t)||De.isBuffer(t)||De.isStream(t)||De.isFile(t)||De.isBlob(t)||De.isReadableStream(t))return t;if(De.isArrayBufferView(t))return t.buffer;if(De.isURLSearchParams(t))return e.setContentType(\"application/x-www-form-urlencoded;charset=utf-8\",!1),t.toString();if(o){if(r.indexOf(\"application/x-www-form-urlencoded\")>-1)return function(t,e){return He(t,new on.classes.URLSearchParams,Object.assign({visitor:function(t,e,n,r){return on.isNode&&De.isBuffer(t)?(this.append(e,t.toString(\"base64\")),!1):r.defaultVisitor.apply(this,arguments)}},e))}(t,this.formSerializer).toString();if((n=De.isFileList(t))||r.indexOf(\"multipart/form-data\")>-1){var a=this.env&&this.env.FormData;return He(n?{\"files[]\":t}:t,a&&new a,this.formSerializer)}}return o||i?(e.setContentType(\"application/json\",!1),function(t,e){if(De.isString(t))try{return(e||JSON.parse)(t),De.trim(t)}catch(t){if(\"SyntaxError\"!==t.name)throw t}return(0,JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){var e=this.transitional||sn.transitional,n=e&&e.forcedJSONParsing,r=\"json\"===this.responseType;if(De.isResponse(t)||De.isReadableStream(t))return t;if(t&&De.isString(t)&&(n&&!this.responseType||r)){var i=!(e&&e.silentJSONParsing)&&r;try{return JSON.parse(t)}catch(t){if(i){if(\"SyntaxError\"===t.name)throw $e.from(t,$e.ERR_BAD_RESPONSE,this,null,this.response);throw t}}}return t}],timeout:0,xsrfCookieName:\"XSRF-TOKEN\",xsrfHeaderName:\"X-XSRF-TOKEN\",maxContentLength:-1,maxBodyLength:-1,env:{FormData:on.classes.FormData,Blob:on.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:\"application/json, text/plain, */*\",\"Content-Type\":void 0}}};De.forEach([\"delete\",\"get\",\"head\",\"post\",\"put\",\"patch\"],(function(t){sn.headers[t]={}}));var un=De.toObjectSet([\"age\",\"authorization\",\"content-length\",\"content-type\",\"etag\",\"expires\",\"from\",\"host\",\"if-modified-since\",\"if-unmodified-since\",\"last-modified\",\"location\",\"max-forwards\",\"proxy-authorization\",\"referer\",\"retry-after\",\"user-agent\"]),cn=Symbol(\"internals\");function ln(t){return t&&String(t).trim().toLowerCase()}function hn(t){return!1===t||null==t?t:De.isArray(t)?t.map(hn):String(t)}function fn(t,e,n,r,i){return De.isFunction(r)?r.call(this,e,n):(i&&(e=n),De.isString(e)?De.isString(r)?-1!==e.indexOf(r):De.isRegExp(r)?r.test(e):void 0:void 0)}var dn=function(){return v((function t(e){h(this,t),e&&this.set(e)}),[{key:\"set\",value:function(t,e,n){var r=this;function i(t,e,n){var i=ln(e);if(!i)throw new Error(\"header name must be a non-empty string\");var o=De.findKey(r,i);(!o||void 0===r[o]||!0===n||void 0===n&&!1!==r[o])&&(r[o||e]=hn(t))}var o=function(t,e){return De.forEach(t,(function(t,n){return i(t,n,e)}))};if(De.isPlainObject(t)||t instanceof this.constructor)o(t,e);else if(De.isString(t)&&(t=t.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim()))o(function(t){var e,n,r,i={};return t&&t.split(\"\\n\").forEach((function(t){r=t.indexOf(\":\"),e=t.substring(0,r).trim().toLowerCase(),n=t.substring(r+1).trim(),!e||i[e]&&un[e]||(\"set-cookie\"===e?i[e]?i[e].push(n):i[e]=[n]:i[e]=i[e]?i[e]+\", \"+n:n)})),i}(t),e);else if(De.isHeaders(t)){var a,s=p(t.entries());try{for(s.s();!(a=s.n()).done;){var u=R(a.value,2),c=u[0];i(u[1],c,n)}}catch(t){s.e(t)}finally{s.f()}}else null!=t&&i(e,t,n);return this}},{key:\"get\",value:function(t,e){if(t=ln(t)){var n=De.findKey(this,t);if(n){var r=this[n];if(!e)return r;if(!0===e)return function(t){for(var e,n=Object.create(null),r=/([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;e=r.exec(t);)n[e[1]]=e[2];return n}(r);if(De.isFunction(e))return e.call(this,r,n);if(De.isRegExp(e))return e.exec(r);throw new TypeError(\"parser must be boolean|regexp|function\")}}}},{key:\"has\",value:function(t,e){if(t=ln(t)){var n=De.findKey(this,t);return!(!n||void 0===this[n]||e&&!fn(0,this[n],n,e))}return!1}},{key:\"delete\",value:function(t,e){var n=this,r=!1;function i(t){if(t=ln(t)){var i=De.findKey(n,t);!i||e&&!fn(0,n[i],i,e)||(delete n[i],r=!0)}}return De.isArray(t)?t.forEach(i):i(t),r}},{key:\"clear\",value:function(t){for(var e=Object.keys(this),n=e.length,r=!1;n--;){var i=e[n];t&&!fn(0,this[i],i,t,!0)||(delete this[i],r=!0)}return r}},{key:\"normalize\",value:function(t){var e=this,n={};return De.forEach(this,(function(r,i){var o=De.findKey(n,i);if(o)return e[o]=hn(r),void delete e[i];var a=t?function(t){return t.trim().toLowerCase().replace(/([a-z\\d])(\\w*)/g,(function(t,e,n){return e.toUpperCase()+n}))}(i):String(i).trim();a!==i&&delete e[i],e[a]=hn(r),n[a]=!0})),this}},{key:\"concat\",value:function(){for(var t,e=arguments.length,n=new Array(e),r=0;r1?n-1:0),i=1;i2&&void 0!==arguments[2]?arguments[2]:3,r=0,i=function(t,e){t=t||10;var n,r=new Array(t),i=new Array(t),o=0,a=0;return e=void 0!==e?e:1e3,function(s){var u=Date.now(),c=i[a];n||(n=u),r[o]=s,i[o]=u;for(var l=a,h=0;l!==o;)h+=r[l++],l%=t;if((o=(o+1)%t)===a&&(a=(a+1)%t),!(u-n1&&void 0!==arguments[1]?arguments[1]:Date.now();i=o,n=null,r&&(clearTimeout(r),r=null),t.apply(null,e)};return[function(){for(var t=Date.now(),e=t-i,s=arguments.length,u=new Array(s),c=0;c=o?a(u,t):(n=u,r||(r=setTimeout((function(){r=null,a(n)}),o-e)))},function(){return n&&a(n)}]}((function(n){var o=n.loaded,a=n.lengthComputable?n.total:void 0,s=o-r,u=i(s);r=o;var c=g({loaded:o,total:a,progress:a?o/a:void 0,bytes:s,rate:u||void 0,estimated:u&&a&&o<=a?(a-o)/u:void 0,event:n,lengthComputable:null!=a},e?\"download\":\"upload\",!0);t(c)}),n)},mn=function(t,e){var n=null!=t;return[function(r){return e[0]({lengthComputable:n,total:t,loaded:r})},e[1]]},wn=function(t){return function(){for(var e=arguments.length,n=new Array(e),r=0;r1?e-1:0),r=1;r1?\"since :\\n\"+s.map(Wn).join(\"\\n\"):\" \"+Wn(s[0]):\"as no adapter specified\"),\"ERR_NOT_SUPPORT\")}return n};function Vn(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new gn(null,t)}function Xn(t){return Vn(t),t.headers=dn.from(t.headers),t.data=vn.call(t,t.transformRequest),-1!==[\"post\",\"put\",\"patch\"].indexOf(t.method)&&t.headers.setContentType(\"application/x-www-form-urlencoded\",!1),Gn(t.adapter||sn.adapter)(t).then((function(e){return Vn(t),e.data=vn.call(t,t.transformResponse,e),e.headers=dn.from(e.headers),e}),(function(e){return pn(e)||(Vn(t),e&&e.response&&(e.response.data=vn.call(t,t.transformResponse,e.response),e.response.headers=dn.from(e.response.headers))),Promise.reject(e)}))}var Qn=\"1.7.9\",Yn={};[\"object\",\"boolean\",\"number\",\"function\",\"string\",\"symbol\"].forEach((function(t,e){Yn[t]=function(n){return T(n)===t||\"a\"+(e<1?\"n \":\" \")+t}}));var Zn={};Yn.transitional=function(t,e,n){function r(t,e){return\"[Axios v1.7.9] Transitional option '\"+t+\"'\"+e+(n?\". \"+n:\"\")}return function(n,i,o){if(!1===t)throw new $e(r(i,\" has been removed\"+(e?\" in \"+e:\"\")),$e.ERR_DEPRECATED);return e&&!Zn[i]&&(Zn[i]=!0,console.warn(r(i,\" has been deprecated since v\"+e+\" and will be removed in the near future\"))),!t||t(n,i,o)}},Yn.spelling=function(t){return function(e,n){return console.warn(\"\".concat(n,\" is likely a misspelling of \").concat(t)),!0}};var tr={assertOptions:function(t,e,n){if(\"object\"!==T(t))throw new $e(\"options must be an object\",$e.ERR_BAD_OPTION_VALUE);for(var r=Object.keys(t),i=r.length;i-- >0;){var o=r[i],a=e[o];if(a){var s=t[o],u=void 0===s||a(s,o,t);if(!0!==u)throw new $e(\"option \"+o+\" must be \"+u,$e.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new $e(\"Unknown option \"+o,$e.ERR_BAD_OPTION)}},validators:Yn},er=tr.validators,nr=function(){return v((function t(e){h(this,t),this.defaults=e,this.interceptors={request:new Xe,response:new Xe}}),[{key:\"request\",value:(t=u(x().mark((function t(e,n){var r,i;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,this._request(e,n);case 3:return t.abrupt(\"return\",t.sent);case 6:if(t.prev=6,t.t0=t.catch(0),t.t0 instanceof Error){r={},Error.captureStackTrace?Error.captureStackTrace(r):r=new Error,i=r.stack?r.stack.replace(/^.+\\n/,\"\"):\"\";try{t.t0.stack?i&&!String(t.t0.stack).endsWith(i.replace(/^.+\\n.+\\n/,\"\"))&&(t.t0.stack+=\"\\n\"+i):t.t0.stack=i}catch(t){}}throw t.t0;case 10:case\"end\":return t.stop()}}),t,this,[[0,6]])}))),function(e,n){return t.apply(this,arguments)})},{key:\"_request\",value:function(t,e){\"string\"==typeof t?(e=e||{}).url=t:e=t||{};var n=e=On(this.defaults,e),r=n.transitional,i=n.paramsSerializer,o=n.headers;void 0!==r&&tr.assertOptions(r,{silentJSONParsing:er.transitional(er.boolean),forcedJSONParsing:er.transitional(er.boolean),clarifyTimeoutError:er.transitional(er.boolean)},!1),null!=i&&(De.isFunction(i)?e.paramsSerializer={serialize:i}:tr.assertOptions(i,{encode:er.function,serialize:er.function},!0)),tr.assertOptions(e,{baseUrl:er.spelling(\"baseURL\"),withXsrfToken:er.spelling(\"withXSRFToken\")},!0),e.method=(e.method||this.defaults.method||\"get\").toLowerCase();var a=o&&De.merge(o.common,o[e.method]);o&&De.forEach([\"delete\",\"get\",\"head\",\"post\",\"put\",\"patch\",\"common\"],(function(t){delete o[t]})),e.headers=dn.concat(a,o);var s=[],u=!0;this.interceptors.request.forEach((function(t){\"function\"==typeof t.runWhen&&!1===t.runWhen(e)||(u=u&&t.synchronous,s.unshift(t.fulfilled,t.rejected))}));var c,l=[];this.interceptors.response.forEach((function(t){l.push(t.fulfilled,t.rejected)}));var h,f=0;if(!u){var d=[Xn.bind(this),void 0];for(d.unshift.apply(d,s),d.push.apply(d,l),h=d.length,c=Promise.resolve(e);f0;)r._listeners[e](t);r._listeners=null}})),this.promise.then=function(t){var e,n=new Promise((function(t){r.subscribe(t),e=t})).then(t);return n.cancel=function(){r.unsubscribe(e)},n},e((function(t,e,i){r.reason||(r.reason=new gn(t,e,i),n(r.reason))}))}return v(t,[{key:\"throwIfRequested\",value:function(){if(this.reason)throw this.reason}},{key:\"subscribe\",value:function(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t]}},{key:\"unsubscribe\",value:function(t){if(this._listeners){var e=this._listeners.indexOf(t);-1!==e&&this._listeners.splice(e,1)}}},{key:\"toAbortSignal\",value:function(){var t=this,e=new AbortController,n=function(t){e.abort(t)};return this.subscribe(n),e.signal.unsubscribe=function(){return t.unsubscribe(n)},e.signal}}],[{key:\"source\",value:function(){var e;return{token:new t((function(t){e=t})),cancel:e}}}])}();var ir={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(ir).forEach((function(t){var e=R(t,2),n=e[0],r=e[1];ir[r]=n}));var or=function t(e){var n=new nr(e),r=Jt(nr.prototype.request,n);return De.extend(r,nr.prototype,n,{allOwnKeys:!0}),De.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return t(On(e,n))},r}(sn);or.Axios=nr,or.CanceledError=gn,or.CancelToken=rr,or.isCancel=pn,or.VERSION=Qn,or.toFormData=He,or.AxiosError=$e,or.Cancel=or.CanceledError,or.all=function(t){return Promise.all(t)},or.spread=function(t){return function(e){return t.apply(null,e)}},or.isAxiosError=function(t){return De.isObject(t)&&!0===t.isAxiosError},or.mergeConfig=On,or.AxiosHeaders=dn,or.formToJSON=function(t){return an(De.isHTMLForm(t)?new FormData(t):t)},or.getAdapter=Gn,or.HttpStatusCode=ir,or.default=or,or.Axios,or.AxiosError,or.CanceledError,or.isCancel,or.CancelToken,or.VERSION,or.all,or.Cancel,or.isAxiosError,or.spread,or.toFormData,or.AxiosHeaders,or.HttpStatusCode,or.formToJSON,or.getAdapter,or.mergeConfig;var ar=function(){function t(e){var n;return h(this,t),(n=l(this,t,[e])).axiosInstance=or.create({baseURL:\"\".concat(n.host,\"/\").concat(n.namespace),headers:{Authorization:\"Bearer \".concat(e.publicKey),\"Content-Type\":\"application/json\",\"User-Agent\":\"@fleetbase/sdk;node\"}}),n.axiosInstance.interceptors.response.use((function(t){return t.data}),(function(t){if(t.response){var e=t.response.data;if(V(e.errors)&&e.errors.length)throw new Error(e.errors[0]);if(e.error)throw new Error(e.error)}throw t})),n}return b(t,Mt),v(t,[{key:\"setHeaders\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.axiosInstance.defaults.headers.common=A(A({},this.axiosInstance.defaults.headers.common),t),this}},{key:\"request\",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axiosInstance.request(A({method:t,url:e},n))}},{key:\"get\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(\"GET\",t,A({params:e},n))}},{key:\"post\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(\"POST\",t,A({data:e},n))}},{key:\"put\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(\"PUT\",t,A({data:e},n))}},{key:\"delete\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(\"DELETE\",t,e)}},{key:\"patch\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(\"PATCH\",t,A({data:e},n))}}])}();q(\"adapter\",\"NodeAdapter\",ar);var sr=function(){function t(){return h(this,t),l(this,t,arguments)}return b(t,Mt),v(t)}();q(\"adapter\",\"EmberJsAdapter\",sr);var ur=function(){function t(e){var n,r,i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(h(this,t),this.version=null!==(n=o.version)&&void 0!==n?n:\"v1\",this.options={version:this.version,host:null!==(r=o.host)&&void 0!==r?r:\"https://api.fleetbase.io\",namespace:null!==(i=o.namespace)&&void 0!==i?i:this.version,debug:a,publicKey:e},\"string\"!=typeof e||0===e.length)throw new Error(\"⚠️ Invalid public key given to Fleetbase SDK\");if(!lt()&&e.toLowerCase().startsWith(\"$\"))throw new Error(\"Secret key provided. You must use a public key with Fleetbase Javascript SDK!\");this.adapter=o.adapter||ht(this.options),this.orders=new Et(\"order\",this.adapter).extendActions(At),this.entities=new Et(\"entity\",this.adapter),this.places=new Et(\"place\",this.adapter),this.drivers=new Et(\"driver\",this.adapter).extendActions(Nt),this.vehicles=new Et(\"vehicle\",this.adapter),this.vendors=new Et(\"vendor\",this.adapter),this.contacts=new Et(\"contact\",this.adapter),this.serviceAreas=new Et(\"service-area\",this.adapter),this.zones=new Et(\"zone\",this.adapter),this.fleets=new Et(\"fleet\",this.adapter),this.organizations=new Et(\"organization\",this.adapter).extendActions(Pt)}return v(t,[{key:\"setAdapter\",value:function(t){this.adapter=t}},{key:\"getAdapter\",value:function(){return this.adapter}}],[{key:\"newInstance\",value:function(){return f(t,Array.prototype.slice.call(arguments))}}])}();export{Mt as Adapter,Ht as BrowserAdapter,at as Collection,$t as Contact,Ft as Driver,sr as EmberJsAdapter,Rt as Entity,It as Fleet,ft as GoogleAddress,ar as NodeAdapter,xt as Order,Lt as Organization,Ot as Payload,St as Place,dt as Point,J as Resolver,kt as Resource,zt as ServiceArea,qt as ServiceQuote,Bt as ServiceRate,Et as Store,mt as StoreActions,Tt as TrackingStatus,_t as Vehicle,Dt as Vendor,jt as Waypoint,Ut as Zone,$ as camelize,z as classify,ot as createCollection,H as createResource,M as createStore,bt as createStoreActions,U as dasherize,ur as default,ht as detectAdapter,yt as extendStoreActions,ut as isLatitude,ct as isLongitude,lt as isNodeEnvironment,wt as isResource,W as lookup,F as pluralize,q as register,K as resolve,G as resolveResource,D as singularize};\n//# sourceMappingURL=fleetbase.js.map\n",null,null,null,null,null,"/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n\n/**\n * @constant\n * @name constructFromSymbol\n * @summary Symbol enabling Date extensions to inherit properties from the reference date.\n *\n * The symbol is used to enable the `constructFrom` function to construct a date\n * using a reference date and a value. It allows to transfer extra properties\n * from the reference date to the new date. It's useful for extensions like\n * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as\n * a constructor argument.\n */\nexport const constructFromSymbol = Symbol.for(\"constructDateFrom\");\n","import { constructFromSymbol } from \"./constants.js\";\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * Starting from v3.7.0, it allows to construct a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from \"./constructFrom/date-fns\";\n *\n * // A function that clones a date preserving the original type\n * function cloneDate(date: DateType): DateType {\n * return constructFrom(\n * date, // Use constructor from the given date\n * date.getTime() // Use the date value to create a new date\n * );\n * }\n */\nexport function constructFrom(date, value) {\n if (typeof date === \"function\") return date(value);\n\n if (date && typeof date === \"object\" && constructFromSymbol in date)\n return date[constructFromSymbol](value);\n\n if (date instanceof Date) return new date.constructor(value);\n\n return new Date(value);\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * Starting from v3.7.0, it clones a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument, context) {\n // [TODO] Get rid of `toDate` or `constructFrom`?\n return constructFrom(context || argument, argument);\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addDays} function options.\n */\n\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * **You don't need date-fns\\***:\n *\n * Temporal has a built-in `add` method on all its classes:\n *\n * - [`Temporal.Instant.prototype.add()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/Instant/add)\n * - [`Temporal.PlainDate.prototype.add()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainDate/add)\n * - [`Temporal.PlainDateTime.prototype.add()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainDateTime/add)\n * - [`Temporal.PlainTime.prototype.add()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/add)\n * - [`Temporal.PlainYearMonth.prototype.add()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/add)\n * - [`Temporal.ZonedDateTime.prototype.add()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/add)\n *\n * \\* **Not really**, see: https://date-fns.org/you-dont-need-date-fns\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be added.\n * @param options - An object with options\n *\n * @returns The new date with the days added\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n *\n * @example\n * // Using Temporal:\n * // Add 10 days to 1 September 2014:\n * Temporal.PlainDate.from(\"2014-09-01\").add({ days: 10 }).toString();\n * //=> \"2014-09-11\"\n */\nexport function addDays(date, amount, options) {\n const _date = toDate(date, options?.in);\n if (isNaN(amount)) return constructFrom(options?.in || date, NaN);\n\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n if (!amount) return _date;\n\n _date.setDate(_date.getDate() + amount);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addDays;\n","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date, options?.in);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n","import { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfISOWeek} function options.\n */\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfISOWeek(date, options) {\n return startOfWeek(date, { ...options, weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeek;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeekYear} function options.\n */\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport function getISOWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const fourthOfJanuaryOfNextYear = constructFrom(_date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n\n const fourthOfJanuaryOfThisYear = constructFrom(_date, 0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getISOWeekYear;\n","import { toDate } from \"../toDate.js\";\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const _date = toDate(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfDay} function options.\n */\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport function startOfDay(date, options) {\n const _date = toDate(date, options?.in);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n","import { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { millisecondsInDay } from \"./constants.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link differenceInCalendarDays} function options.\n */\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - The options object\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport function differenceInCalendarDays(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n\n const laterStartOfDay = startOfDay(laterDate_);\n const earlierStartOfDay = startOfDay(earlierDate_);\n\n const laterTimestamp =\n +laterStartOfDay - getTimezoneOffsetInMilliseconds(laterStartOfDay);\n const earlierTimestamp =\n +earlierStartOfDay - getTimezoneOffsetInMilliseconds(earlierStartOfDay);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((laterTimestamp - earlierTimestamp) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n","import { constructFrom } from \"../constructFrom.js\";\n\nexport function normalizeDates(context, ...dates) {\n const normalize = constructFrom.bind(\n null,\n context || dates.find((date) => typeof date === \"object\"),\n );\n return dates.map(normalize);\n}\n","import { isDate } from \"./isDate.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertible into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport function isValid(date) {\n return !((!isDate(date) && typeof date !== \"number\") || isNaN(+toDate(date)));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n","/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport function isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // [TODO] -- I challenge you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // [TODO] -- I challenge you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // [TODO] I challenge you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","import { formatDistance } from \"./en-US/_lib/formatDistance.js\";\nimport { formatLong } from \"./en-US/_lib/formatLong.js\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.js\";\nimport { localize } from \"./en-US/_lib/localize.js\";\nimport { match } from \"./en-US/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { differenceInCalendarDays } from \"./differenceInCalendarDays.js\";\nimport { startOfYear } from \"./startOfYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDayOfYear} function options.\n */\n\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * const result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nexport function getDayOfYear(date, options) {\n const _date = toDate(date, options?.in);\n const diff = differenceInCalendarDays(_date, startOfYear(_date));\n const dayOfYear = diff + 1;\n return dayOfYear;\n}\n\n// Fallback for modularized imports:\nexport default getDayOfYear;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfYear} function options.\n */\n\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport function startOfYear(date, options) {\n const date_ = toDate(date, options?.in);\n date_.setFullYear(date_.getFullYear(), 0, 1);\n date_.setHours(0, 0, 0, 0);\n return date_;\n}\n\n// Fallback for modularized imports:\nexport default startOfYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { startOfISOWeekYear } from \"./startOfISOWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeek} function options.\n */\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport function getISOWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getISOWeek;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { getISOWeekYear } from \"./getISOWeekYear.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\n\n/**\n * The {@link startOfISOWeekYear} function options.\n */\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfISOWeekYear(date, options) {\n const year = getISOWeekYear(date, options);\n const fourthOfJanuary = constructFrom(options?.in || date, 0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n return startOfISOWeek(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeekYear;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport function getWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const firstWeekOfNextYear = constructFrom(options?.in || date, 0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n\n const firstWeekOfThisYear = constructFrom(options?.in || date, 0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n\n if (+_date >= +startOfNextYear) {\n return year + 1;\n } else if (+_date >= +startOfThisYear) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getWeekYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { startOfWeekYear } from \"./startOfWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\nexport function getWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeek;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getWeekYear } from \"./getWeekYear.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = getWeekYear(date, options);\n const firstWeek = constructFrom(options?.in || date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = startOfWeek(firstWeek, options);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n","export function addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? \"-\" : \"\";\n const output = Math.abs(number).toString().padStart(targetLength, \"0\");\n return sign + output;\n}\n","import { addLeadingZeros } from \"../addLeadingZeros.js\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nexport const lightFormatters = {\n // Year\n y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === \"yy\" ? year % 100 : year, token.length);\n },\n\n // Month\n M(date, token) {\n const month = date.getMonth();\n return token === \"M\" ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n\n // Day of the month\n d(date, token) {\n return addLeadingZeros(date.getDate(), token.length);\n },\n\n // AM or PM\n a(date, token) {\n const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return dayPeriodEnumValue.toUpperCase();\n case \"aaa\":\n return dayPeriodEnumValue;\n case \"aaaaa\":\n return dayPeriodEnumValue[0];\n case \"aaaa\":\n default:\n return dayPeriodEnumValue === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n\n // Hour [1-12]\n h(date, token) {\n return addLeadingZeros(date.getHours() % 12 || 12, token.length);\n },\n\n // Hour [0-23]\n H(date, token) {\n return addLeadingZeros(date.getHours(), token.length);\n },\n\n // Minute\n m(date, token) {\n return addLeadingZeros(date.getMinutes(), token.length);\n },\n\n // Second\n s(date, token) {\n return addLeadingZeros(date.getSeconds(), token.length);\n },\n\n // Fraction of second\n S(date, token) {\n const numberOfDigits = token.length;\n const milliseconds = date.getMilliseconds();\n const fractionalSeconds = Math.trunc(\n milliseconds * Math.pow(10, numberOfDigits - 3),\n );\n return addLeadingZeros(fractionalSeconds, token.length);\n },\n};\n","import { getDayOfYear } from \"../../getDayOfYear.js\";\nimport { getISOWeek } from \"../../getISOWeek.js\";\nimport { getISOWeekYear } from \"../../getISOWeekYear.js\";\nimport { getWeek } from \"../../getWeek.js\";\nimport { getWeekYear } from \"../../getWeekYear.js\";\n\nimport { addLeadingZeros } from \"../addLeadingZeros.js\";\nimport { lightFormatters } from \"./lightFormatters.js\";\n\nconst dayPeriodEnum = {\n am: \"am\",\n pm: \"pm\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nexport const formatters = {\n // Era\n G: function (date, token, localize) {\n const era = date.getFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return localize.era(era, { width: \"abbreviated\" });\n // A, B\n case \"GGGGG\":\n return localize.era(era, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return localize.era(era, { width: \"wide\" });\n }\n },\n\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === \"yo\") {\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, { unit: \"year\" });\n }\n\n return lightFormatters.y(date, token);\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n const signedWeekYear = getWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === \"YY\") {\n const twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === \"Yo\") {\n return localize.ordinalNumber(weekYear, { unit: \"year\" });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n\n // ISO week-numbering year\n R: function (date, token) {\n const isoWeekYear = getISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n const year = date.getFullYear();\n return addLeadingZeros(year, token.length);\n },\n\n // Quarter\n Q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"QQ\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"qq\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // Month\n M: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n case \"M\":\n case \"MM\":\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // J, F, ..., D\n case \"MMMMM\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return localize.month(month, { width: \"wide\", context: \"formatting\" });\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return String(month + 1);\n // 01, 02, ..., 12\n case \"LL\":\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // J, F, ..., D\n case \"LLLLL\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return localize.month(month, { width: \"wide\", context: \"standalone\" });\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n const week = getWeek(date, options);\n\n if (token === \"wo\") {\n return localize.ordinalNumber(week, { unit: \"week\" });\n }\n\n return addLeadingZeros(week, token.length);\n },\n\n // ISO week of year\n I: function (date, token, localize) {\n const isoWeek = getISOWeek(date);\n\n if (token === \"Io\") {\n return localize.ordinalNumber(isoWeek, { unit: \"week\" });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n\n // Day of the month\n d: function (date, token, localize) {\n if (token === \"do\") {\n return localize.ordinalNumber(date.getDate(), { unit: \"date\" });\n }\n\n return lightFormatters.d(date, token);\n },\n\n // Day of year\n D: function (date, token, localize) {\n const dayOfYear = getDayOfYear(date);\n\n if (token === \"Do\") {\n return localize.ordinalNumber(dayOfYear, { unit: \"dayOfYear\" });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n\n // Day of week\n E: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"EEEEE\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"EEEE\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case \"e\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"ee\":\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case \"eo\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"eee\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"eeeee\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"eeee\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case \"c\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"cc\":\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case \"co\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"ccc\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // T\n case \"ccccc\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"standalone\",\n });\n // Tuesday\n case \"cccc\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // ISO day of week\n i: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case \"i\":\n return String(isoDayOfWeek);\n // 02\n case \"ii\":\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case \"io\":\n return localize.ordinalNumber(isoDayOfWeek, { unit: \"day\" });\n // Tue\n case \"iii\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"iiiii\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"iiiiii\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"iiii\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n const hours = date.getHours();\n const dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"aaa\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"aaaaa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n }\n\n switch (token) {\n case \"b\":\n case \"bb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"bbb\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"bbbbb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"BBBBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === \"ho\") {\n let hours = date.getHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return lightFormatters.h(date, token);\n },\n\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === \"Ho\") {\n return localize.ordinalNumber(date.getHours(), { unit: \"hour\" });\n }\n\n return lightFormatters.H(date, token);\n },\n\n // Hour [0-11]\n K: function (date, token, localize) {\n const hours = date.getHours() % 12;\n\n if (token === \"Ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Hour [1-24]\n k: function (date, token, localize) {\n let hours = date.getHours();\n if (hours === 0) hours = 24;\n\n if (token === \"ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Minute\n m: function (date, token, localize) {\n if (token === \"mo\") {\n return localize.ordinalNumber(date.getMinutes(), { unit: \"minute\" });\n }\n\n return lightFormatters.m(date, token);\n },\n\n // Second\n s: function (date, token, localize) {\n if (token === \"so\") {\n return localize.ordinalNumber(date.getSeconds(), { unit: \"second\" });\n }\n\n return lightFormatters.s(date, token);\n },\n\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return \"Z\";\n }\n\n switch (token) {\n // Hours and optional minutes\n case \"X\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case \"XXXX\":\n case \"XX\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case \"XXXXX\":\n case \"XXX\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case \"x\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case \"xxxx\":\n case \"xx\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case \"xxxxx\":\n case \"xxx\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"O\":\n case \"OO\":\n case \"OOO\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"OOOO\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"zzzz\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Seconds timestamp\n t: function (date, token, _localize) {\n const timestamp = Math.trunc(+date / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n\n // Milliseconds timestamp\n T: function (date, token, _localize) {\n return addLeadingZeros(+date, token.length);\n },\n};\n\nfunction formatTimezoneShort(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = Math.trunc(absOffset / 60);\n const minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n if (offset % 60 === 0) {\n const sign = offset > 0 ? \"-\" : \"+\";\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, delimiter);\n}\n\nfunction formatTimezone(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2);\n const minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n","const dateLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"P\":\n return formatLong.date({ width: \"short\" });\n case \"PP\":\n return formatLong.date({ width: \"medium\" });\n case \"PPP\":\n return formatLong.date({ width: \"long\" });\n case \"PPPP\":\n default:\n return formatLong.date({ width: \"full\" });\n }\n};\n\nconst timeLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"p\":\n return formatLong.time({ width: \"short\" });\n case \"pp\":\n return formatLong.time({ width: \"medium\" });\n case \"ppp\":\n return formatLong.time({ width: \"long\" });\n case \"pppp\":\n default:\n return formatLong.time({ width: \"full\" });\n }\n};\n\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n const matchResult = pattern.match(/(P+)(p+)?/) || [];\n const datePattern = matchResult[1];\n const timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n let dateTimeFormat;\n\n switch (datePattern) {\n case \"P\":\n dateTimeFormat = formatLong.dateTime({ width: \"short\" });\n break;\n case \"PP\":\n dateTimeFormat = formatLong.dateTime({ width: \"medium\" });\n break;\n case \"PPP\":\n dateTimeFormat = formatLong.dateTime({ width: \"long\" });\n break;\n case \"PPPP\":\n default:\n dateTimeFormat = formatLong.dateTime({ width: \"full\" });\n break;\n }\n\n return dateTimeFormat\n .replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong))\n .replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\n\nexport const longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter,\n};\n","const dayOfYearTokenRE = /^D+$/;\nconst weekYearTokenRE = /^Y+$/;\n\nconst throwTokens = [\"D\", \"DD\", \"YY\", \"YYYY\"];\n\nexport function isProtectedDayOfYearToken(token) {\n return dayOfYearTokenRE.test(token);\n}\n\nexport function isProtectedWeekYearToken(token) {\n return weekYearTokenRE.test(token);\n}\n\nexport function warnOrThrowProtectedError(token, format, input) {\n const _message = message(token, format, input);\n console.warn(_message);\n if (throwTokens.includes(token)) throw new RangeError(_message);\n}\n\nfunction message(token, format, input) {\n const subject = token[0] === \"Y\" ? \"years\" : \"days of the month\";\n return `Use \\`${token.toLowerCase()}\\` instead of \\`${token}\\` (in \\`${format}\\`) for formatting ${subject} to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;\n}\n","import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { formatters } from \"./_lib/format/formatters.js\";\nimport { longFormatters } from \"./_lib/format/longFormatters.js\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.js\";\nimport { isValid } from \"./isValid.js\";\nimport { toDate } from \"./toDate.js\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { formatters, longFormatters };\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\nexport { format as formatDate };\n\n/**\n * The {@link format} function options.\n */\n\n/**\n * @name format\n * @alias formatDate\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)\n * and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nexport function format(date, formatStr, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const originalDate = toDate(date, options?.in);\n\n if (!isValid(originalDate)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let parts = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp)\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return { isToken: false, value: \"'\" };\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return { isToken: false, value: cleanEscapedString(substring) };\n }\n\n if (formatters[firstCharacter]) {\n return { isToken: true, value: substring };\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return { isToken: false, value: substring };\n });\n\n // invoke localize preprocessor (only for french locales at the moment)\n if (locale.localize.preprocessor) {\n parts = locale.localize.preprocessor(originalDate, parts);\n }\n\n const formatterOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n return parts\n .map((part) => {\n if (!part.isToken) return part.value;\n\n const token = part.value;\n\n if (\n (!options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)) ||\n (!options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token))\n ) {\n warnOrThrowProtectedError(token, formatStr, String(date));\n }\n\n const formatter = formatters[token[0]];\n return formatter(originalDate, token, locale.localize, formatterOptions);\n })\n .join(\"\");\n}\n\nfunction cleanEscapedString(input) {\n const matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default format;\n","import { constructFrom } from \"../../constructFrom.js\";\nimport { transpose } from \"../../transpose.js\";\n\nconst TIMEZONE_UNIT_PRIORITY = 10;\n\nexport class Setter {\n subPriority = 0;\n\n validate(_utcDate, _options) {\n return true;\n }\n}\n\nexport class ValueSetter extends Setter {\n constructor(\n value,\n validateValue,\n\n setValue,\n\n priority,\n subPriority,\n ) {\n super();\n this.value = value;\n this.validateValue = validateValue;\n this.setValue = setValue;\n this.priority = priority;\n if (subPriority) {\n this.subPriority = subPriority;\n }\n }\n\n validate(date, options) {\n return this.validateValue(date, this.value, options);\n }\n\n set(date, flags, options) {\n return this.setValue(date, flags, this.value, options);\n }\n}\n\nexport class DateTimezoneSetter extends Setter {\n priority = TIMEZONE_UNIT_PRIORITY;\n subPriority = -1;\n\n constructor(context, reference) {\n super();\n this.context = context || ((date) => constructFrom(reference, date));\n }\n\n set(date, flags) {\n if (flags.timestampIsSet) return date;\n return constructFrom(date, transpose(date, this.context));\n }\n}\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name transpose\n * @category Generic Helpers\n * @summary Transpose the date to the given constructor.\n *\n * @description\n * The function transposes the date to the given constructor. It helps you\n * to transpose the date in the system time zone to say `UTCDate` or any other\n * date extension.\n *\n * @typeParam InputDate - The input `Date` type derived from the passed argument.\n * @typeParam ResultDate - The result `Date` type derived from the passed constructor.\n *\n * @param date - The date to use values from\n * @param constructor - The date constructor to use\n *\n * @returns Date transposed to the given constructor\n *\n * @example\n * // Create July 10, 2022 00:00 in locale time zone\n * const date = new Date(2022, 6, 10)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0800 (Singapore Standard Time)'\n *\n * @example\n * // Transpose the date to July 10, 2022 00:00 in UTC\n * transpose(date, UTCDate)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0000 (Coordinated Universal Time)'\n */\nexport function transpose(date, constructor) {\n const date_ = isConstructor(constructor)\n ? new constructor(0)\n : constructFrom(constructor, 0);\n date_.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());\n date_.setHours(\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds(),\n );\n return date_;\n}\n\nfunction isConstructor(constructor) {\n return (\n typeof constructor === \"function\" &&\n constructor.prototype?.constructor === constructor\n );\n}\n\n// Fallback for modularized imports:\nexport default transpose;\n","import { ValueSetter } from \"./Setter.js\";\n\nexport class Parser {\n run(dateString, token, match, options) {\n const result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n\n return {\n setter: new ValueSetter(\n result.value,\n this.validate,\n this.set,\n this.priority,\n this.subPriority,\n ),\n rest: result.rest,\n };\n }\n\n validate(_utcDate, _value, _options) {\n return true;\n }\n}\n","export const numericPatterns = {\n month: /^(1[0-2]|0?\\d)/, // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/, // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/, // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/, // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/, // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/, // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/, // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/, // 0 to 12\n minute: /^[0-5]?\\d/, // 0 to 59\n second: /^[0-5]?\\d/, // 0 to 59\n\n singleDigit: /^\\d/, // 0 to 9\n twoDigits: /^\\d{1,2}/, // 0 to 99\n threeDigits: /^\\d{1,3}/, // 0 to 999\n fourDigits: /^\\d{1,4}/, // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/, // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/, // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/, // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/, // 0 to 9999, -0 to -9999\n};\n\nexport const timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/,\n};\n","import {\n millisecondsInHour,\n millisecondsInMinute,\n millisecondsInSecond,\n} from \"../../constants.js\";\n\nimport { numericPatterns } from \"./constants.js\";\n\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest,\n };\n}\n\nexport function parseNumericPattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseTimezonePattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === \"Z\") {\n return {\n value: 0,\n rest: dateString.slice(1),\n };\n }\n\n const sign = matchResult[1] === \"+\" ? 1 : -1;\n const hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n const minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n const seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n\n return {\n value:\n sign *\n (hours * millisecondsInHour +\n minutes * millisecondsInMinute +\n seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\n\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^-?\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case \"morning\":\n return 4;\n case \"evening\":\n return 17;\n case \"pm\":\n case \"noon\":\n case \"afternoon\":\n return 12;\n case \"am\":\n case \"midnight\":\n case \"night\":\n default:\n return 0;\n }\n}\n\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n const isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n const absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n\n let result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n const rangeEnd = absCurrentYear + 50;\n const rangeEndCentury = Math.trunc(rangeEnd / 100) * 100;\n const isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.js\";\n\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst DAYS_IN_MONTH_LEAP_YEAR = [\n 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,\n];\n\n// Day of the month\nexport class DateParser extends Parser {\n priority = 90;\n subPriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"d\":\n return parseNumericPattern(numericPatterns.date, dateString);\n case \"do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n const month = date.getMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n\n set(date, _flags, value) {\n date.setDate(value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { addDays } from \"./addDays.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setDay} function options.\n */\n\n/**\n * @name setDay\n * @category Weekday Helpers\n * @summary Set the day of the week to the given date.\n *\n * @description\n * Set the day of the week to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param day - The day of the week of the new date\n * @param options - An object with options.\n *\n * @returns The new date with the day of the week set\n *\n * @example\n * // Set week day to Sunday, with the default weekStartsOn of Sunday:\n * const result = setDay(new Date(2014, 8, 1), 0)\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Set week day to Sunday, with a weekStartsOn of Monday:\n * const result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setDay(date, day, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const date_ = toDate(date, options?.in);\n const currentDay = date_.getDay();\n\n const remainder = day % 7;\n const dayIndex = (remainder + 7) % 7;\n\n const delta = 7 - weekStartsOn;\n const diff =\n day < 0 || day > 6\n ? day - ((currentDay + delta) % 7)\n : ((dayIndex + delta) % 7) - ((currentDay + delta) % 7);\n return addDays(date_, diff, options);\n}\n\n// Fallback for modularized imports:\nexport default setDay;\n","import { addDays } from \"./addDays.js\";\nimport { getISODay } from \"./getISODay.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setISODay} function options.\n */\n\n/**\n * @name setISODay\n * @category Weekday Helpers\n * @summary Set the day of the ISO week to the given date.\n *\n * @description\n * Set the day of the ISO week to the given date.\n * ISO week starts with Monday.\n * 7 is the index of Sunday, 1 is the index of Monday, etc.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param day - The day of the ISO week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the day of the ISO week set\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * const result = setISODay(new Date(2014, 8, 1), 7)\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setISODay(date, day, options) {\n const date_ = toDate(date, options?.in);\n const currentDay = getISODay(date_, options);\n const diff = day - currentDay;\n return addDays(date_, diff, options);\n}\n\n// Fallback for modularized imports:\nexport default setISODay;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISODay} function options.\n */\n\n/**\n * @name getISODay\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The day of ISO week\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * const result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\nexport function getISODay(date, options) {\n const day = toDate(date, options?.in).getDay();\n return day === 0 ? 7 : day;\n}\n\n// Fallback for modularized imports:\nexport default getISODay;\n","import { EraParser } from \"./parsers/EraParser.js\";\nimport { YearParser } from \"./parsers/YearParser.js\";\nimport { LocalWeekYearParser } from \"./parsers/LocalWeekYearParser.js\";\nimport { ISOWeekYearParser } from \"./parsers/ISOWeekYearParser.js\";\nimport { ExtendedYearParser } from \"./parsers/ExtendedYearParser.js\";\nimport { QuarterParser } from \"./parsers/QuarterParser.js\";\nimport { StandAloneQuarterParser } from \"./parsers/StandAloneQuarterParser.js\";\nimport { MonthParser } from \"./parsers/MonthParser.js\";\nimport { StandAloneMonthParser } from \"./parsers/StandAloneMonthParser.js\";\nimport { LocalWeekParser } from \"./parsers/LocalWeekParser.js\";\nimport { ISOWeekParser } from \"./parsers/ISOWeekParser.js\";\nimport { DateParser } from \"./parsers/DateParser.js\";\nimport { DayOfYearParser } from \"./parsers/DayOfYearParser.js\";\nimport { DayParser } from \"./parsers/DayParser.js\";\nimport { LocalDayParser } from \"./parsers/LocalDayParser.js\";\nimport { StandAloneLocalDayParser } from \"./parsers/StandAloneLocalDayParser.js\";\nimport { ISODayParser } from \"./parsers/ISODayParser.js\";\nimport { AMPMParser } from \"./parsers/AMPMParser.js\";\nimport { AMPMMidnightParser } from \"./parsers/AMPMMidnightParser.js\";\nimport { DayPeriodParser } from \"./parsers/DayPeriodParser.js\";\nimport { Hour1to12Parser } from \"./parsers/Hour1to12Parser.js\";\nimport { Hour0to23Parser } from \"./parsers/Hour0to23Parser.js\";\nimport { Hour0To11Parser } from \"./parsers/Hour0To11Parser.js\";\nimport { Hour1To24Parser } from \"./parsers/Hour1To24Parser.js\";\nimport { MinuteParser } from \"./parsers/MinuteParser.js\";\nimport { SecondParser } from \"./parsers/SecondParser.js\";\nimport { FractionOfSecondParser } from \"./parsers/FractionOfSecondParser.js\";\nimport { ISOTimezoneWithZParser } from \"./parsers/ISOTimezoneWithZParser.js\";\nimport { ISOTimezoneParser } from \"./parsers/ISOTimezoneParser.js\";\nimport { TimestampSecondsParser } from \"./parsers/TimestampSecondsParser.js\";\nimport { TimestampMillisecondsParser } from \"./parsers/TimestampMillisecondsParser.js\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\nexport const parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser(),\n};\n","import { Parser } from \"../Parser.js\";\n\nexport class EraParser extends Parser {\n priority = 140;\n\n parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return (\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n\n // A, B\n case \"GGGGG\":\n return match.era(dateString, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return (\n match.era(dateString, { width: \"wide\" }) ||\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n }\n }\n\n set(date, flags, value) {\n flags.era = value;\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"R\", \"u\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport class YearParser extends Parser {\n priority = 130;\n incompatibleTokens = [\"Y\", \"R\", \"u\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"yy\",\n });\n\n switch (token) {\n case \"y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value) {\n const currentYear = date.getFullYear();\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(normalizedTwoDigitYear, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { getWeekYear } from \"../../../getWeekYear.js\";\n\nimport { startOfWeek } from \"../../../startOfWeek.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n\n// Local week-numbering year\nexport class LocalWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"YY\",\n });\n\n switch (token) {\n case \"Y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"Yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value, options) {\n const currentYear = getWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(\n normalizedTwoDigitYear,\n 0,\n options.firstWeekContainsDate,\n );\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, options.firstWeekContainsDate);\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { startOfISOWeek } from \"../../../startOfISOWeek.js\";\nimport { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigitsSigned } from \"../utils.js\";\n\n// ISO week-numbering year\nexport class ISOWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"R\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n const firstWeekOfYear = constructFrom(date, 0);\n firstWeekOfYear.setFullYear(value, 0, 4);\n firstWeekOfYear.setHours(0, 0, 0, 0);\n return startOfISOWeek(firstWeekOfYear);\n }\n\n incompatibleTokens = [\n \"G\",\n \"y\",\n \"Y\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigitsSigned } from \"../utils.js\";\n\nexport class ExtendedYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"u\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"G\", \"y\", \"Y\", \"R\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigits } from \"../utils.js\";\n\nexport class QuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n case \"QQ\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigits } from \"../utils.js\";\n\nexport class StandAloneQuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n case \"qq\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class MonthParser extends Parser {\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"L\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"M\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"MM\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // J, F, ..., D\n case \"MMMMM\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class StandAloneMonthParser extends Parser {\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"LL\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // J, F, ..., D\n case \"LLLLL\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setWeek } from \"../../../setWeek.js\";\nimport { startOfWeek } from \"../../../startOfWeek.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\n// Local week of year\nexport class LocalWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"w\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"wo\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value, options) {\n return startOfWeek(setWeek(date, value, options), options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { getWeek } from \"./getWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setWeek} function options.\n */\n\n/**\n * @name setWeek\n * @category Week Helpers\n * @summary Set the local week to the given date.\n *\n * @description\n * Set the local week to the given date, saving the weekday number.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param week - The week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the local week set\n *\n * @example\n * // Set the 1st week to 2 January 2005 with default options:\n * const result = setWeek(new Date(2005, 0, 2), 1)\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // Set the 1st week to 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January:\n * const result = setWeek(new Date(2005, 0, 2), 1, {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Sun Jan 4 2004 00:00:00\n */\nexport function setWeek(date, week, options) {\n const date_ = toDate(date, options?.in);\n const diff = getWeek(date_, options) - week;\n date_.setDate(date_.getDate() - diff * 7);\n return toDate(date_, options?.in);\n}\n\n// Fallback for modularized imports:\nexport default setWeek;\n","import { setISOWeek } from \"../../../setISOWeek.js\";\nimport { startOfISOWeek } from \"../../../startOfISOWeek.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\n// ISO week of year\nexport class ISOWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"I\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"Io\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value) {\n return startOfISOWeek(setISOWeek(date, value));\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getISOWeek } from \"./getISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setISOWeek} function options.\n */\n\n/**\n * @name setISOWeek\n * @category ISO Week Helpers\n * @summary Set the ISO week to the given date.\n *\n * @description\n * Set the ISO week to the given date, saving the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The `Date` type of the context function.\n *\n * @param date - The date to be changed\n * @param week - The ISO week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the ISO week set\n *\n * @example\n * // Set the 53rd ISO week to 7 August 2004:\n * const result = setISOWeek(new Date(2004, 7, 7), 53)\n * //=> Sat Jan 01 2005 00:00:00\n */\nexport function setISOWeek(date, week, options) {\n const _date = toDate(date, options?.in);\n const diff = getISOWeek(_date, options) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setISOWeek;\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.js\";\n\nexport class DayOfYearParser extends Parser {\n priority = 90;\n\n subpriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"D\":\n case \"DD\":\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case \"Do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n\n set(date, _flags, value) {\n date.setMonth(0, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"E\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\n// Day of week\nexport class DayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"EEEEE\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"EEEE\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"D\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// Local day of week\nexport class LocalDayParser extends Parser {\n priority = 90;\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"e\":\n case \"ee\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"eo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"eee\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"eeeee\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"eeee\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// Stand-alone local day of week\nexport class StandAloneLocalDayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"c\":\n case \"cc\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"co\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"ccc\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // T\n case \"ccccc\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return (\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // Tuesday\n case \"cccc\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"e\",\n \"t\",\n \"T\",\n ];\n}\n","import { setISODay } from \"../../../setISODay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// ISO day of week\nexport class ISODayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n\n switch (token) {\n // 2\n case \"i\":\n case \"ii\": // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case \"io\":\n return match.ordinalNumber(dateString, { unit: \"day\" });\n // Tue\n case \"iii\":\n return mapValue(\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // T\n case \"iiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tu\n case \"iiiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tuesday\n case \"iiii\":\n default:\n return mapValue(\n match.day(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n\n set(date, _flags, value) {\n date = setISODay(date, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"E\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\nexport class AMPMParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"a\":\n case \"aa\":\n case \"aaa\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"aaaaa\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"b\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\nexport class AMPMMidnightParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"b\":\n case \"bb\":\n case \"bbb\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"bbbbb\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\n// in the morning, in the afternoon, in the evening, at night\nexport class DayPeriodParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"BBBBB\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour1to12Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"h\":\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case \"ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setHours(0, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"H\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour0to23Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"H\":\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case \"Ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n\n set(date, _flags, value) {\n date.setHours(value, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour0To11Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"K\":\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case \"Ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"h\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour1To24Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"k\":\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case \"ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n\n set(date, _flags, value) {\n const hours = value <= 24 ? value % 24 : value;\n date.setHours(hours, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"H\", \"K\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class MinuteParser extends Parser {\n priority = 60;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"m\":\n return parseNumericPattern(numericPatterns.minute, dateString);\n case \"mo\":\n return match.ordinalNumber(dateString, { unit: \"minute\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setMinutes(value, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class SecondParser extends Parser {\n priority = 50;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"s\":\n return parseNumericPattern(numericPatterns.second, dateString);\n case \"so\":\n return match.ordinalNumber(dateString, { unit: \"second\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setSeconds(value, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\nexport class FractionOfSecondParser extends Parser {\n priority = 30;\n\n parse(dateString, token) {\n const valueCallback = (value) =>\n Math.trunc(value * Math.pow(10, -token.length + 3));\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n\n set(date, _flags, value) {\n date.setMilliseconds(value);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseTimezonePattern } from \"../utils.js\";\n\n// Timezone (ISO-8601. +00:00 is `'Z'`)\nexport class ISOTimezoneWithZParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"X\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"XX\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"XXXX\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"XXXXX\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"XXX\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"x\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseTimezonePattern } from \"../utils.js\";\n\n// Timezone (ISO-8601)\nexport class ISOTimezoneParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"x\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"xx\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"xxxx\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"xxxxx\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"xxx\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"X\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseAnyDigitsSigned } from \"../utils.js\";\n\nexport class TimestampSecondsParser extends Parser {\n priority = 40;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value * 1000), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseAnyDigitsSigned } from \"../utils.js\";\n\nexport class TimestampMillisecondsParser extends Parser {\n priority = 20;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { longFormatters } from \"./_lib/format/longFormatters.js\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getDefaultOptions } from \"./getDefaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\nimport { DateTimezoneSetter } from \"./parse/_lib/Setter.js\";\nimport { parsers } from \"./parse/_lib/parsers.js\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { longFormatters, parsers };\n\n/**\n * The {@link parse} function options.\n */\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\n\nconst notWhitespaceRegExp = /\\S/;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangeably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear)\n * and [setWeekYear](https://date-fns.org/docs/setWeekYear)).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param dateStr - The string to parse\n * @param formatStr - The string of tokens\n * @param referenceDate - defines values missing from the parsed dateString\n * @param options - An object with options.\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @returns The parsed date\n *\n * @throws `options.locale` must contain `match` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport function parse(dateStr, formatStr, referenceDate, options) {\n const invalidDate = () => constructFrom(options?.in || referenceDate, NaN);\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n if (!formatStr)\n return dateStr ? invalidDate() : toDate(referenceDate, options?.in);\n\n const subFnOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n // If timezone isn't specified, it will try to use the context or\n // the reference date and fallback to the system time zone.\n const setters = [new DateTimezoneSetter(options?.in, referenceDate)];\n\n const tokens = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp);\n\n const usedTokens = [];\n\n for (let token of tokens) {\n if (\n !options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n if (\n !options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n\n const firstCharacter = token[0];\n const parser = parsers[firstCharacter];\n if (parser) {\n const { incompatibleTokens } = parser;\n if (Array.isArray(incompatibleTokens)) {\n const incompatibleToken = usedTokens.find(\n (usedToken) =>\n incompatibleTokens.includes(usedToken.token) ||\n usedToken.token === firstCharacter,\n );\n if (incompatibleToken) {\n throw new RangeError(\n `The format string mustn't contain \\`${incompatibleToken.fullToken}\\` and \\`${token}\\` at the same time`,\n );\n }\n } else if (parser.incompatibleTokens === \"*\" && usedTokens.length > 0) {\n throw new RangeError(\n `The format string mustn't contain \\`${token}\\` and any other token at the same time`,\n );\n }\n\n usedTokens.push({ token: firstCharacter, fullToken: token });\n\n const parseResult = parser.run(\n dateStr,\n token,\n locale.match,\n subFnOptions,\n );\n\n if (!parseResult) {\n return invalidDate();\n }\n\n setters.push(parseResult.setter);\n\n dateStr = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateStr.indexOf(token) === 0) {\n dateStr = dateStr.slice(token.length);\n } else {\n return invalidDate();\n }\n }\n }\n\n // Check if the remaining input contains something other than whitespace\n if (dateStr.length > 0 && notWhitespaceRegExp.test(dateStr)) {\n return invalidDate();\n }\n\n const uniquePrioritySetters = setters\n .map((setter) => setter.priority)\n .sort((a, b) => b - a)\n .filter((priority, index, array) => array.indexOf(priority) === index)\n .map((priority) =>\n setters\n .filter((setter) => setter.priority === priority)\n .sort((a, b) => b.subPriority - a.subPriority),\n )\n .map((setterArray) => setterArray[0]);\n\n let date = toDate(referenceDate, options?.in);\n\n if (isNaN(+date)) return invalidDate();\n\n const flags = {};\n for (const setter of uniquePrioritySetters) {\n if (!setter.validate(date, subFnOptions)) {\n return invalidDate();\n }\n\n const result = setter.set(date, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n date = result[0];\n Object.assign(flags, result[1]);\n // Result is date\n } else {\n date = result;\n }\n }\n\n return date;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default parse;\n","import { getDefaultOptions as getInternalDefaultOptions } from \"./_lib/defaultOptions.js\";\n\n/**\n * @name getDefaultOptions\n * @category Common Helpers\n * @summary Get default options.\n * @pure false\n *\n * @description\n * Returns an object that contains defaults for\n * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate`\n * arguments for all functions.\n *\n * You can change these with [setDefaultOptions](https://date-fns.org/docs/setDefaultOptions).\n *\n * @returns The default options\n *\n * @example\n * const result = getDefaultOptions()\n * //=> {}\n *\n * @example\n * setDefaultOptions({ weekStarsOn: 1, firstWeekContainsDate: 4 })\n * const result = getDefaultOptions()\n * //=> { weekStarsOn: 1, firstWeekContainsDate: 4 }\n */\nexport function getDefaultOptions() {\n return Object.assign({}, getInternalDefaultOptions());\n}\n\n// Fallback for modularized imports:\nexport default getDefaultOptions;\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["t","e","this","v","k","length","n","r","Array","isArray","ReferenceError","i","Promise","done","value","Symbol","iterator","next","throw","return","o","asyncIterator","call","a","TypeError","Object","reject","resolve","then","s","prototype","apply","arguments","u","c","l","y","m","Reflect","construct","constructor","h","f","push","bind","O","d","enumerable","configurable","writable","defineProperty","j","key","p","_","g","setPrototypeOf","getPrototypeOf","__proto__","b","create","Boolean","valueOf","w","from","E","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","A","forEach","getOwnPropertyDescriptors","defineProperties","x","hasOwnProperty","toStringTag","P","S","type","arg","wrap","L","_invoke","R","__await","Error","method","delegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","T","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","completion","reset","isNaN","displayName","isGeneratorFunction","name","mark","awrap","AsyncIterator","async","reverse","pop","values","prev","charAt","slice","stop","rval","complete","finish","catch","delegateYield","toPrimitive","String","toString","test","C","Map","Function","indexOf","has","get","set","N","RegExp","str","chain","toLowerCase","match","replace","applyRules","pluralRules","uncountableWords","singularRules","split","toUpperCase","substring","join","uppercase","underbarPrefix","idSuffix","underbar","capitalize","spaceOrUnderbar","camelize","underscore","nonTitlecasedWords","pluralize","concat","trim","singularize","demodulize","parseInt","shift","F","invoke","D","z","B","resources","adapters","storse","actions","q","I","W","G","lookup","V","X","Q","splice","Z","Y","at","tt","objectAt","et","nt","rt","it","ot","map","sort","compare","Set","add","includes","insertAt","removeAt","toArray","clear","removeObject","pushObject","addObject","st","size","lt","process","env","release","search","window","navigator","product","ht","place","geometry","components","parseComponents","attributes","parseProperties","address_components","reduce","types","streetNumber","streetName","coordinates","location","city","or","county","stateShort","stateLong","countryShort","country","countryLong","postalCode","address","short_name","long_name","dt","latitude","longitude","coorindates","lat","lng","serialize","vt","pt","gt","yt","mt","extend","extendActions","wt","kt","dirtyAttributes","changes","isLoading","isSaving","isDestroying","isReloading","resource","options","version","setAdapter","adapter","store","M","onAfterFetch","syncAttributes","getAttribute","mergeAttributes","setFlags","update","id","destroy","findRecord","attribues","getAttributes","onlyDirty","savedirty","isAttributeFilled","Date","hasAttributes","isNew","isLoaded","setAttributes","property","previousValue","changedAt","setAttribute","every","hasAttribute","Et","namespace","storage","afterFetch","deposit","post","put","single","delete","At","getDistanceAndTime","getNextActivity","dispatch","start","updateActivity","setDestination","captureQrCode","captureSignature","cancel","xt","isStarted","isCanceled","isCompleted","Ot","entities","dropoff","pickup","waypoints","Rt","St","street1","street2","province","postal_code","neighborhood","district","building","phone","security_access_code","jt","Tt","_t","Pt","current","Lt","Ct","Nt","login","identity","password","verifyCode","code","track","listOrganizations","switchOrganization","currentOrganization","retrieve","syncDevice","Ft","Dt","$t","Ut","zt","Bt","qt","It","Mt","host","headers","Ht","setHeaders","Authorization","publicKey","json","statusText","status","ok","fetch","url","mode","Headers","parseJSON","errors","URLSearchParams","request","body","JSON","stringify","Jt","Wt","Kt","Gt","Vt","Xt","Qt","Yt","Zt","te","ee","ne","re","ie","oe","ae","se","ue","ce","le","he","fe","de","ve","pe","ge","allOwnKeys","getOwnPropertyNames","ye","we","Te","_e","Pe","Le","be","globalThis","self","global","me","ke","Uint8Array","Ee","Ae","xe","Oe","Re","Se","je","DIGIT","ALPHA","ALPHA_DIGIT","Ce","Ne","setImmediate","postMessage","Math","random","addEventListener","source","data","setTimeout","Fe","queueMicrotask","nextTick","De","isArrayBuffer","isBuffer","isFormData","FormData","append","isArrayBufferView","ArrayBuffer","isView","buffer","isString","isNumber","isBoolean","isObject","isPlainObject","isReadableStream","isRequest","isResponse","isHeaders","isUndefined","isDate","isFile","isBlob","isRegExp","isFunction","isStream","pipe","isURLSearchParams","isTypedArray","isFileList","merge","caseless","stripBOM","charCodeAt","inherits","assign","toFlatObject","kindOf","kindOfTest","endsWith","forEachEntry","matchAll","exec","isHTMLForm","hasOwnProp","reduceDescriptors","freezeMethods","toObjectSet","toCamelCase","noop","toFiniteNumber","Number","isFinite","findKey","isContextDefined","ALPHABET","generateString","isSpecCompliantForm","toJSONObject","isAsyncFn","isThenable","asap","$e","captureStackTrace","stack","message","config","response","toJSON","description","number","fileName","lineNumber","columnNumber","Ue","ze","Be","qe","Ie","cause","Me","He","metaTokens","dots","indexes","visitor","Blob","toISOString","Buffer","some","defaultVisitor","convertValue","isVisitable","Je","encodeURIComponent","We","_pairs","Ke","Ge","Ve","encode","Xe","handlers","fulfilled","rejected","synchronous","runWhen","Qe","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","Ye","isBrowser","classes","protocols","Ze","document","tn","en","nn","WorkerGlobalScope","importScripts","rn","href","on","freeze","hasBrowserEnv","hasStandardBrowserEnv","hasStandardBrowserWebWorkerEnv","origin","an","entries","sn","transitional","transformRequest","getContentType","setContentType","isNode","formSerializer","parse","transformResponse","responseType","ERR_BAD_RESPONSE","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","Accept","un","cn","ln","hn","fn","dn","accessors","vn","normalize","pn","__CANCEL__","gn","ERR_CANCELED","yn","ERR_BAD_REQUEST","floor","accessor","bn","now","round","clearTimeout","loaded","lengthComputable","total","progress","bytes","rate","estimated","event","mn","wn","kn","URL","protocol","port","userAgent","En","write","toGMTString","cookie","read","decodeURIComponent","remove","An","xn","On","baseURL","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","Rn","Sn","jn","auth","params","btoa","username","unescape","Tn","XMLHttpRequest","unsubscribe","signal","removeEventListener","getAllResponseHeaders","responseText","open","onloadend","onreadystatechange","readyState","responseURL","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","setRequestHeader","upload","abort","subscribe","aborted","send","_n","AbortController","reason","Pn","byteLength","Ln","Cn","t1","getReader","Nn","ReadableStream","pull","close","enqueue","t0","highWaterMark","Fn","Request","Response","Dn","$n","TextEncoder","arrayBuffer","Un","zn","duplex","Bn","qn","stream","ERR_NOT_SUPPORT","In","Mn","getContentLength","Hn","$","U","fetchOptions","toAbortSignal","credentials","t2","Jn","http","xhr","Wn","Kn","Gn","Vn","throwIfRequested","Xn","Yn","Zn","ERR_DEPRECATED","console","warn","spelling","tr","assertOptions","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","validators","er","nr","defaults","interceptors","_request","boolean","function","baseUrl","withXsrfToken","unshift","rr","promise","_listeners","token","ir","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","Axios","CanceledError","CancelToken","isCancel","VERSION","toFormData","AxiosError","Cancel","all","spread","isAxiosError","mergeConfig","AxiosHeaders","formToJSON","getAdapter","HttpStatusCode","default","ar","axiosInstance","use","error","sr","debug","startsWith","orders","places","drivers","vehicles","vendors","contacts","serviceAreas","zones","fleets","organizations","StorefrontStore","Store","super","extendStoreActions","classify","formatCurrency","amount","currency","currencyDisplay","Intl","NumberFormat","style","format","isEmpty","obj","none","objectType","StorefrontResource","Resource","register","reviewActions","StoreActions","count","storeId","Review","getMedia","getPhotos","getVideos","media","millisecondsInWeek","constructFromSymbol","for","constructFrom","date","toDate","argument","context","addDays","_date","in","NaN","setDate","getDate","defaultOptions","getDefaultOptions","startOfWeek","weekStartsOn","locale","day","getDay","diff","setHours","startOfISOWeek","getISOWeekYear","year","getFullYear","fourthOfJanuaryOfNextYear","setFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","getTime","getTimezoneOffsetInMilliseconds","utcDate","UTC","getMonth","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","startOfDay","differenceInCalendarDays","laterDate","earlierDate","laterDate_","earlierDate_","dates","find","normalizeDates","laterStartOfDay","earlierStartOfDay","laterTimestamp","earlierTimestamp","isValid","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","args","width","defaultWidth","formats","formatLong","full","long","medium","short","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","valuesArray","formattingValues","defaultFormattingWidth","argumentCallback","buildMatchFn","string","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","array","predicate","findIndex","pattern","object","valueCallback","rest","enUS","formatDistance","result","tokenValue","addSuffix","comparison","formatRelative","_baseDate","_options","localize","ordinalNumber","dirtyNumber","rem100","era","narrow","abbreviated","wide","quarter","month","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","parsePattern","parseResult","any","index","firstWeekContainsDate","getDayOfYear","date_","startOfYear","getISOWeek","fourthOfJanuary","startOfISOWeekYear","getWeekYear","firstWeekOfNextYear","firstWeekOfThisYear","getWeek","firstWeek","startOfWeekYear","addLeadingZeros","targetLength","abs","padStart","lightFormatters","signedYear","dayPeriodEnumValue","H","numberOfDigits","milliseconds","trunc","pow","dayPeriodEnum","formatters","unit","signedWeekYear","weekYear","ceil","week","isoWeek","dayOfYear","dayOfWeek","localDayOfWeek","isoDayOfWeek","hours","K","_localize","timezoneOffset","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","offset","delimiter","sign","absOffset","minutes","dateLongFormatter","timeLongFormatter","longFormatters","datePattern","timePattern","dateTimeFormat","dayOfYearTokenRE","weekYearTokenRE","throwTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","warnOrThrowProtectedError","input","_message","subject","RangeError","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","formatStr","defaultLocale","originalDate","parts","firstCharacter","longFormatter","isToken","cleanEscapedString","preprocessor","formatterOptions","part","formatter","matched","Setter","subPriority","validate","_utcDate","ValueSetter","validateValue","setValue","priority","flags","DateTimezoneSetter","reference","timestampIsSet","isConstructor","transpose","Parser","run","dateString","setter","_value","numericPatterns","timezonePatterns","mapValue","parseFnResult","mapFn","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","isLeapYearIndex","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","setDay","currentDay","delta","setISODay","getISODay","parsers","incompatibleTokens","isTwoDigitYear","normalizedTwoDigitYear","_flags","firstWeekOfYear","setMonth","setWeek","setISOWeek","isLeapYear","subpriority","wholeWeekDays","isPM","setMinutes","setSeconds","setMilliseconds","notWhitespaceRegExp","dateStr","referenceDate","invalidDate","getInternalDefaultOptions","subFnOptions","setters","tokens","usedTokens","parser","incompatibleToken","usedToken","fullToken","uniquePrioritySetters","setterArray","StoreHour","isClosed","is24Hours","startDateInstance","end","endDateInstance","includesSeconds","humanReadableHoursRange","humanReadableHours","reload","StoreLocation","Collection","storeData","embeddedStore","legacyStore","public_id","merchant","isAlwaysOpen","hour","schedule","PaymentGateway","isCashGateway","isStripeGateway","isQPayGateway","setCheckoutToken","getCheckoutToken","getReviews","reviews","getTags","getLocations","storeLocations","Place","getLocation","getPaymentGateways","gateways","getPaymentGateway","Product","variants","addons","images","videos","isOnSale","isNotOnSale","formattedAmount","price","sale_price","Category","getProducts","category","products","customerActions","isPhone","loginWithApple","appleUserId","identityToken","authorizationCode","email","loginWithFacebook","facebookUserId","avatarUrl","loginWithGoogle","idToken","clientId","requestCreationCode","Customer","undefined","platform","performAuthorizedRequest","endpoint","requestOptions","getSavedPlaces","getOrderHistory","Order","getStripeEphemeralKey","getStripeSetupIntent","startAccountClosure","confirmAccountClosure","requestPhoneVerification","verifyPhoneNumber","updateContactAlias","cartActions","findAll","query","queryRecord","productId","quantity","cartItemId","empty","Cart","refresh","subtotal","contents","cartItem","items","hasProduct","product_id","isNotEmpty","Network","getResourceCollection","ResourceClass","getStores","getStoreLocations","getCategories","with_store","lookupStore","DeliveryServiceQuote","ServiceQuote","finalAttributes","finalAdapter","Adapter","fromCart","fetchServiceQuotesFromCart","destination","cart","serviceQuotes","serviceQuote","getFromCart","FleetbaseOrder","checkoutActions","initialize","customer","gateway","orderOptions","isResource","captureOrder","orderJson","createStripeSetupIntent","updateStripePaymentIntent","paymentIntent","getStatus","checkout","captureQPay","captureQPayCallback","Checkout","FoodTruck","idFor","orderActions","completePickup","order","getReceipt","Storefront","categories","foodTrucks","customers","storeKey","detectAdapter","initializeStores","about","hydrateOwner","getOwner","lookupResource","is_network","newInstance"],"mappings":"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","x_google_ignoreList":[0,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86]} \ No newline at end of file diff --git a/dist/cjs/resolver.js b/dist/cjs/resolver.js deleted file mode 100644 index 027328f..0000000 --- a/dist/cjs/resolver.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./store-B5J1gYSv.js");require("@fleetbase/sdk"),exports.Resolver=e.Resolver,exports.default=e.Resolver,exports.lookup=e.lookup,exports.resources=e.resources; -//# sourceMappingURL=resolver.js.map diff --git a/dist/cjs/resolver.js.map b/dist/cjs/resolver.js.map deleted file mode 100644 index 0a3a873..0000000 --- a/dist/cjs/resolver.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"resolver.js","sources":[],"sourcesContent":[],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/cjs/store-B5J1gYSv.js b/dist/cjs/store-B5J1gYSv.js deleted file mode 100644 index 9fa1605..0000000 --- a/dist/cjs/store-B5J1gYSv.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";var t=require("@fleetbase/sdk");function e(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=0;--a){var i=this.tryEntries[a],s=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var u=n.call(i,"catchLoc"),c=n.call(i,"finallyLoc");if(u&&c){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),O(r),m}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;O(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:H(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),m}},e}function w(t,e){return w=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},w(t,e)}function y(t){return function(t){if(Array.isArray(t))return e(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,r){if(t){if("string"==typeof t)return e(t,r);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?e(t,r):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function v(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,e||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:e+""}function b(t){return b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},b(t)}var x=function(e){function r(){return a(this,r),o(this,r,arguments)}return h(r,t.Resource),u(r,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new Re(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}}])}(),k=new t.StoreActions({count:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={};return t&&(r.store=t),this.adapter.get("".concat(this.namespace,"/count"),r,e)}}),T=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return a(this,e),o(this,e,[t,r,"review",n])}return h(e,x),u(e,[{key:"getMedia",value:function(){}},{key:"getPhotos",value:function(){}},{key:"getVideos",value:function(){}}])}(),M=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(t)};function S(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"USD",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"symbol";return new Intl.NumberFormat("en-US",{style:"currency",currency:e,currencyDisplay:r}).format(t)}var P=function(t){var e=null==t;if(e)return e;if("number"==typeof t.size)return!t.size;var r=b(t);if("object"===r){var n=t.size;if("number"==typeof n)return!n}if("number"==typeof t.length&&"function"!==r)return!t.length;if("object"===r){var o=t.length;if("number"==typeof o)return!o}return!1},E=function(e){function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return a(this,r),o(this,r,[t,e,"product",n])}return h(r,x),u(r,[{key:"variants",value:function(){return this.getAttribute("variants")}},{key:"addons",value:function(){return this.getAttribute("addon_categories")}},{key:"isOnSale",get:function(){return this.getAttribute("is_on_sale")}},{key:"isNotOnSale",get:function(){return!this.getAttribute("is_on_sale")}},{key:"formattedAmount",get:function(){var t=this.getAttributes(["price","sale_price","currency"]),e=t.price,r=t.sale_price,n=t.currency;return this.isOnSale?P(r)||P(n)?null:S(r/100,n):P(e)||P(n)?null:S(e/100,n)}},{key:"getReviews",value:function(){var e=this;return this.adapter.get("reviews",{store:this.id}).then((function(r){return new t.Collection(r.map((function(t){return new T(t,e.adapter)})))}))}}])}(),D=function(e){function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return a(this,r),o(this,r,[t,e,"category",n])}return h(r,x),u(r,[{key:"getProducts",value:function(){var e=this;return this.adapter.get("products",{category:this.id}).then((function(r){return new t.Collection(r.map((function(t){return new E(t,e.adapter)})))}))}}])}(),O=new t.StoreActions({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(M(t))return this.adapter.post("customers/login-with-sms",{phone:t});if(!e)throw new Error("Login requires password!");return this.adapter.post("customers/login",p({identity:t,password:e},r)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("customers/verify-code",p({identity:t,code:e},r)).then(this.afterFetch.bind(this))},requestCreationCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"email";return this.adapter.post("customers/request-creation-code",{identity:t,mode:e})},create:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("customers",p({identity:t,code:e},r)).then(this.afterFetch.bind(this))},retrieve:function(t){return this.findRecord(t)}}),A=function(e){function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return a(this,r),o(this,r,[t,e,"customer",p({actions:O},n)])}return h(r,x),u(r,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new Re(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"token",get:function(){return this.getAttribute("token")}},{key:"syncDevice",value:(d=n(g().mark((function t(e){var r=this;return g().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this.adapter.setHeaders({"Customer-Token":this.token}).post("customers/register-device",e).then((function(){return r})));case 1:case"end":return t.stop()}}),t,this)}))),function(t){return d.apply(this,arguments)})},{key:"performAuthorizedRequest",value:(c=n(g().mark((function t(e){var r,n,o,a,i=arguments;return g().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=i.length>1&&void 0!==i[1]?i[1]:{},n=i.length>2&&void 0!==i[2]?i[2]:"GET",t.prev=2,o={"Customer-Token":this.token},t.next=6,this.adapter.setHeaders(o)[n.toLowerCase()](e,r);case 6:return a=t.sent,t.abrupt("return",a);case 10:throw t.prev=10,t.t0=t.catch(2),console.error("Error in ".concat(n," request to ").concat(e,":"),t.t0),t.t0;case 14:case"end":return t.stop()}}),t,this,[[2,10]])}))),function(t){return c.apply(this,arguments)})},{key:"getSavedPlaces",value:(s=n(g().mark((function e(){var r,n=this;return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this.performAuthorizedRequest("customers/places");case 3:return r=e.sent,e.abrupt("return",new t.Collection(r.map((function(e){return new t.Place(e,n.adapter)}))));case 7:throw e.prev=7,e.t0=e.catch(0),new Error("Failed to retrieve saved places");case 10:case"end":return e.stop()}}),e,this,[[0,7]])}))),function(){return s.apply(this,arguments)})},{key:"getOrderHistory",value:(i=n(g().mark((function e(){var r,n,o=this,a=arguments;return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=a.length>0&&void 0!==a[0]?a[0]:{},e.prev=1,e.next=4,this.performAuthorizedRequest("customers/orders",r);case 4:return n=e.sent,e.abrupt("return",new t.Collection(n.map((function(e){return new t.Order(e,o.adapter)}))));case 8:throw e.prev=8,e.t0=e.catch(1),new Error("Failed to retrieve order history");case 11:case"end":return e.stop()}}),e,this,[[1,8]])}))),function(){return i.apply(this,arguments)})},{key:"getStripeEphemeralKey",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.setHeaders({"Customer-Token":this.token}).post("customers/stripe-ephemeral-key",t)}},{key:"getStripeSetupIntent",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.setHeaders({"Customer-Token":this.token}).post("customers/stripe-setup-intent",t)}}]);var i,s,c,d}(),H=Array.isArray,q=new t.StoreActions({create:void 0,findAll:void 0,query:void 0,queryRecord:void 0,add:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/").concat(e),p(p({},n),{},{quantity:r}),o).then(this.afterFetch.bind(this))},update:function(t,e,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return this.adapter.put("".concat(this.namespace,"/").concat(t,"/").concat(e),p(p({},n),{},{quantity:r}),o).then(this.afterFetch.bind(this))},remove:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete("".concat(this.namespace,"/").concat(t,"/").concat(e),{},r).then(this.afterFetch.bind(this))},empty:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.put("".concat(this.namespace,"/").concat(t,"/empty"),{},e).then(this.afterFetch.bind(this))},retrieve:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return this.findRecord(t)}}),N=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return a(this,e),o(this,e,[t,r,"cart",p({actions:q},n)])}return h(e,x),u(e,[{key:"add",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return t instanceof E&&(t=t.id),this.store.add(this.id,t,e,r,n)}},{key:"update",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.store.update(this.id,t,e,r,n)}},{key:"remove",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.remove(this.id,t,e)}},{key:"empty",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.store.empty(this.id,t)}},{key:"delete",value:function(){return this.destroy()}},{key:"refresh",value:function(){return this.store.retrieve(this.id)}},{key:"subtotal",value:function(){var t=0;return this.contents().forEach((function(e){t+=e.subtotal})),t}},{key:"contents",value:function(){return this.getAttribute("items",[])}},{key:"hasProduct",value:function(t){return-1!==this.contents().findIndex((function(e){return e.product_id===t}))}},{key:"isEmpty",get:function(){var t=this.contents();return!H(t)||0===t.length}},{key:"isNotEmpty",get:function(){return!this.isEmpty}}])}(),C=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return a(this,e),o(this,e,[t,r,"payment-gateway",n])}return h(e,x),u(e,[{key:"type",get:function(){return this.getAttribute("type")}},{key:"code",get:function(){return this.getAttribute("code")}},{key:"isCashGateway",get:function(){return"cash"===this.type}},{key:"isStripeGateway",get:function(){return"stripe"===this.type}},{key:"setCheckoutToken",value:function(t){this.token=t}},{key:"getCheckoutToken",value:function(){return this.token}},{key:"findRecord",value:function(){throw new Error("There is no findRecord() method for payment gateways!")}},{key:"create",value:function(){throw new Error("There is no create() method for payment gateways!")}},{key:"update",value:function(){throw new Error("There is no update() method for payment gateways!")}},{key:"destroy",value:function(){throw new Error("There is no destroy() method for payment gateways!")}},{key:"reload",value:function(){throw new Error("There is no reload() method for payment gateways!")}}])}();function L(t){const e=Object.prototype.toString.call(t);return t instanceof Date||"object"==typeof t&&"[object Date]"===e?new t.constructor(+t):"number"==typeof t||"[object Number]"===e||"string"==typeof t||"[object String]"===e?new Date(t):new Date(NaN)}function j(t,e){return t instanceof Date?new t.constructor(e):new Date(e)}function Y(t,e){const r=L(t);return isNaN(e)?j(t,NaN):e?(r.setDate(r.getDate()+e),r):r}let F={};function R(){return F}function W(t,e){const r=R(),n=e?.weekStartsOn??e?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,o=L(t),a=o.getDay(),i=(a=o.getTime()?r+1:e.getTime()>=i.getTime()?r:r-1}function G(t){const e=L(t);return e.setHours(0,0,0,0),e}function _(t){const e=L(t),r=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return r.setUTCFullYear(e.getFullYear()),+t-+r}function z(t){if(!(e=t,e instanceof Date||"object"==typeof e&&"[object Date]"===Object.prototype.toString.call(e)||"number"==typeof t))return!1;var e;const r=L(t);return!isNaN(Number(r))}const B={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function X(t){return(e={})=>{const r=e.width?String(e.width):t.defaultWidth;return t.formats[r]||t.formats[t.defaultWidth]}}const $={date:X({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:X({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:X({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},K={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function Z(t){return(e,r)=>{let n;if("formatting"===(r?.context?String(r.context):"standalone")&&t.formattingValues){const e=t.defaultFormattingWidth||t.defaultWidth,o=r?.width?String(r.width):e;n=t.formattingValues[o]||t.formattingValues[e]}else{const e=t.defaultWidth,o=r?.width?String(r.width):t.defaultWidth;n=t.values[o]||t.values[e]}return n[t.argumentCallback?t.argumentCallback(e):e]}}function J(t){return(e,r={})=>{const n=r.width,o=n&&t.matchPatterns[n]||t.matchPatterns[t.defaultMatchWidth],a=e.match(o);if(!a)return null;const i=a[0],s=n&&t.parsePatterns[n]||t.parsePatterns[t.defaultParseWidth],u=Array.isArray(s)?function(t,e){for(let r=0;rt.test(i))):function(t,e){for(const r in t)if(Object.prototype.hasOwnProperty.call(t,r)&&e(t[r]))return r;return}(s,(t=>t.test(i)));let c;c=t.valueCallback?t.valueCallback(u):u,c=r.valueCallback?r.valueCallback(c):c;return{value:c,rest:e.slice(i.length)}}}var U;const V={code:"en-US",formatDistance:(t,e,r)=>{let n;const o=B[t];return n="string"==typeof o?o:1===e?o.one:o.other.replace("{{count}}",e.toString()),r?.addSuffix?r.comparison&&r.comparison>0?"in "+n:n+" ago":n},formatLong:$,formatRelative:(t,e,r,n)=>K[t],localize:{ordinalNumber:(t,e)=>{const r=Number(t),n=r%100;if(n>20||n<10)switch(n%10){case 1:return r+"st";case 2:return r+"nd";case 3:return r+"rd"}return r+"th"},era:Z({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:Z({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:t=>t-1}),month:Z({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:Z({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:Z({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(U={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:t=>parseInt(t,10)},(t,e={})=>{const r=t.match(U.matchPattern);if(!r)return null;const n=r[0],o=t.match(U.parsePattern);if(!o)return null;let a=U.valueCallback?U.valueCallback(o[0]):o[0];return a=e.valueCallback?e.valueCallback(a):a,{value:a,rest:t.slice(n.length)}}),era:J({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:J({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:t=>t+1}),month:J({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:J({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:J({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function tt(t){const e=L(t),r=function(t,e){const r=G(t),n=G(e),o=+r-_(r),a=+n-_(n);return Math.round((o-a)/864e5)}(e,function(t){const e=L(t),r=j(t,0);return r.setFullYear(e.getFullYear(),0,1),r.setHours(0,0,0,0),r}(e));return r+1}function et(t){const e=L(t),r=+Q(e)-+function(t){const e=I(t),r=j(t,0);return r.setFullYear(e,0,4),r.setHours(0,0,0,0),Q(r)}(e);return Math.round(r/6048e5)+1}function rt(t,e){const r=L(t),n=r.getFullYear(),o=R(),a=e?.firstWeekContainsDate??e?.locale?.options?.firstWeekContainsDate??o.firstWeekContainsDate??o.locale?.options?.firstWeekContainsDate??1,i=j(t,0);i.setFullYear(n+1,0,a),i.setHours(0,0,0,0);const s=W(i,e),u=j(t,0);u.setFullYear(n,0,a),u.setHours(0,0,0,0);const c=W(u,e);return r.getTime()>=s.getTime()?n+1:r.getTime()>=c.getTime()?n:n-1}function nt(t,e){const r=L(t),n=+W(r,e)-+function(t,e){const r=R(),n=e?.firstWeekContainsDate??e?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,o=rt(t,e),a=j(t,0);return a.setFullYear(o,0,n),a.setHours(0,0,0,0),W(a,e)}(r,e);return Math.round(n/6048e5)+1}function ot(t,e){return(t<0?"-":"")+Math.abs(t).toString().padStart(e,"0")}const at={y(t,e){const r=t.getFullYear(),n=r>0?r:1-r;return ot("yy"===e?n%100:n,e.length)},M(t,e){const r=t.getMonth();return"M"===e?String(r+1):ot(r+1,2)},d:(t,e)=>ot(t.getDate(),e.length),a(t,e){const r=t.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return r.toUpperCase();case"aaa":return r;case"aaaaa":return r[0];default:return"am"===r?"a.m.":"p.m."}},h:(t,e)=>ot(t.getHours()%12||12,e.length),H:(t,e)=>ot(t.getHours(),e.length),m:(t,e)=>ot(t.getMinutes(),e.length),s:(t,e)=>ot(t.getSeconds(),e.length),S(t,e){const r=e.length,n=t.getMilliseconds();return ot(Math.trunc(n*Math.pow(10,r-3)),e.length)}},it="midnight",st="noon",ut="morning",ct="afternoon",dt="evening",ht="night",lt={G:function(t,e,r){const n=t.getFullYear()>0?1:0;switch(e){case"G":case"GG":case"GGG":return r.era(n,{width:"abbreviated"});case"GGGGG":return r.era(n,{width:"narrow"});default:return r.era(n,{width:"wide"})}},y:function(t,e,r){if("yo"===e){const e=t.getFullYear(),n=e>0?e:1-e;return r.ordinalNumber(n,{unit:"year"})}return at.y(t,e)},Y:function(t,e,r,n){const o=rt(t,n),a=o>0?o:1-o;if("YY"===e){return ot(a%100,2)}return"Yo"===e?r.ordinalNumber(a,{unit:"year"}):ot(a,e.length)},R:function(t,e){return ot(I(t),e.length)},u:function(t,e){return ot(t.getFullYear(),e.length)},Q:function(t,e,r){const n=Math.ceil((t.getMonth()+1)/3);switch(e){case"Q":return String(n);case"QQ":return ot(n,2);case"Qo":return r.ordinalNumber(n,{unit:"quarter"});case"QQQ":return r.quarter(n,{width:"abbreviated",context:"formatting"});case"QQQQQ":return r.quarter(n,{width:"narrow",context:"formatting"});default:return r.quarter(n,{width:"wide",context:"formatting"})}},q:function(t,e,r){const n=Math.ceil((t.getMonth()+1)/3);switch(e){case"q":return String(n);case"qq":return ot(n,2);case"qo":return r.ordinalNumber(n,{unit:"quarter"});case"qqq":return r.quarter(n,{width:"abbreviated",context:"standalone"});case"qqqqq":return r.quarter(n,{width:"narrow",context:"standalone"});default:return r.quarter(n,{width:"wide",context:"standalone"})}},M:function(t,e,r){const n=t.getMonth();switch(e){case"M":case"MM":return at.M(t,e);case"Mo":return r.ordinalNumber(n+1,{unit:"month"});case"MMM":return r.month(n,{width:"abbreviated",context:"formatting"});case"MMMMM":return r.month(n,{width:"narrow",context:"formatting"});default:return r.month(n,{width:"wide",context:"formatting"})}},L:function(t,e,r){const n=t.getMonth();switch(e){case"L":return String(n+1);case"LL":return ot(n+1,2);case"Lo":return r.ordinalNumber(n+1,{unit:"month"});case"LLL":return r.month(n,{width:"abbreviated",context:"standalone"});case"LLLLL":return r.month(n,{width:"narrow",context:"standalone"});default:return r.month(n,{width:"wide",context:"standalone"})}},w:function(t,e,r,n){const o=nt(t,n);return"wo"===e?r.ordinalNumber(o,{unit:"week"}):ot(o,e.length)},I:function(t,e,r){const n=et(t);return"Io"===e?r.ordinalNumber(n,{unit:"week"}):ot(n,e.length)},d:function(t,e,r){return"do"===e?r.ordinalNumber(t.getDate(),{unit:"date"}):at.d(t,e)},D:function(t,e,r){const n=tt(t);return"Do"===e?r.ordinalNumber(n,{unit:"dayOfYear"}):ot(n,e.length)},E:function(t,e,r){const n=t.getDay();switch(e){case"E":case"EE":case"EEE":return r.day(n,{width:"abbreviated",context:"formatting"});case"EEEEE":return r.day(n,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(n,{width:"short",context:"formatting"});default:return r.day(n,{width:"wide",context:"formatting"})}},e:function(t,e,r,n){const o=t.getDay(),a=(o-n.weekStartsOn+8)%7||7;switch(e){case"e":return String(a);case"ee":return ot(a,2);case"eo":return r.ordinalNumber(a,{unit:"day"});case"eee":return r.day(o,{width:"abbreviated",context:"formatting"});case"eeeee":return r.day(o,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(o,{width:"short",context:"formatting"});default:return r.day(o,{width:"wide",context:"formatting"})}},c:function(t,e,r,n){const o=t.getDay(),a=(o-n.weekStartsOn+8)%7||7;switch(e){case"c":return String(a);case"cc":return ot(a,e.length);case"co":return r.ordinalNumber(a,{unit:"day"});case"ccc":return r.day(o,{width:"abbreviated",context:"standalone"});case"ccccc":return r.day(o,{width:"narrow",context:"standalone"});case"cccccc":return r.day(o,{width:"short",context:"standalone"});default:return r.day(o,{width:"wide",context:"standalone"})}},i:function(t,e,r){const n=t.getDay(),o=0===n?7:n;switch(e){case"i":return String(o);case"ii":return ot(o,e.length);case"io":return r.ordinalNumber(o,{unit:"day"});case"iii":return r.day(n,{width:"abbreviated",context:"formatting"});case"iiiii":return r.day(n,{width:"narrow",context:"formatting"});case"iiiiii":return r.day(n,{width:"short",context:"formatting"});default:return r.day(n,{width:"wide",context:"formatting"})}},a:function(t,e,r){const n=t.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return r.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"aaa":return r.dayPeriod(n,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return r.dayPeriod(n,{width:"narrow",context:"formatting"});default:return r.dayPeriod(n,{width:"wide",context:"formatting"})}},b:function(t,e,r){const n=t.getHours();let o;switch(o=12===n?st:0===n?it:n/12>=1?"pm":"am",e){case"b":case"bb":return r.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"bbb":return r.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return r.dayPeriod(o,{width:"narrow",context:"formatting"});default:return r.dayPeriod(o,{width:"wide",context:"formatting"})}},B:function(t,e,r){const n=t.getHours();let o;switch(o=n>=17?dt:n>=12?ct:n>=4?ut:ht,e){case"B":case"BB":case"BBB":return r.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"BBBBB":return r.dayPeriod(o,{width:"narrow",context:"formatting"});default:return r.dayPeriod(o,{width:"wide",context:"formatting"})}},h:function(t,e,r){if("ho"===e){let e=t.getHours()%12;return 0===e&&(e=12),r.ordinalNumber(e,{unit:"hour"})}return at.h(t,e)},H:function(t,e,r){return"Ho"===e?r.ordinalNumber(t.getHours(),{unit:"hour"}):at.H(t,e)},K:function(t,e,r){const n=t.getHours()%12;return"Ko"===e?r.ordinalNumber(n,{unit:"hour"}):ot(n,e.length)},k:function(t,e,r){let n=t.getHours();return 0===n&&(n=24),"ko"===e?r.ordinalNumber(n,{unit:"hour"}):ot(n,e.length)},m:function(t,e,r){return"mo"===e?r.ordinalNumber(t.getMinutes(),{unit:"minute"}):at.m(t,e)},s:function(t,e,r){return"so"===e?r.ordinalNumber(t.getSeconds(),{unit:"second"}):at.s(t,e)},S:function(t,e){return at.S(t,e)},X:function(t,e,r){const n=t.getTimezoneOffset();if(0===n)return"Z";switch(e){case"X":return pt(n);case"XXXX":case"XX":return mt(n);default:return mt(n,":")}},x:function(t,e,r){const n=t.getTimezoneOffset();switch(e){case"x":return pt(n);case"xxxx":case"xx":return mt(n);default:return mt(n,":")}},O:function(t,e,r){const n=t.getTimezoneOffset();switch(e){case"O":case"OO":case"OOO":return"GMT"+ft(n,":");default:return"GMT"+mt(n,":")}},z:function(t,e,r){const n=t.getTimezoneOffset();switch(e){case"z":case"zz":case"zzz":return"GMT"+ft(n,":");default:return"GMT"+mt(n,":")}},t:function(t,e,r){return ot(Math.trunc(t.getTime()/1e3),e.length)},T:function(t,e,r){return ot(t.getTime(),e.length)}};function ft(t,e=""){const r=t>0?"-":"+",n=Math.abs(t),o=Math.trunc(n/60),a=n%60;return 0===a?r+String(o):r+String(o)+e+ot(a,2)}function pt(t,e){if(t%60==0){return(t>0?"-":"+")+ot(Math.abs(t)/60,2)}return mt(t,e)}function mt(t,e=""){const r=t>0?"-":"+",n=Math.abs(t);return r+ot(Math.trunc(n/60),2)+e+ot(n%60,2)}const gt=(t,e)=>{switch(t){case"P":return e.date({width:"short"});case"PP":return e.date({width:"medium"});case"PPP":return e.date({width:"long"});default:return e.date({width:"full"})}},wt=(t,e)=>{switch(t){case"p":return e.time({width:"short"});case"pp":return e.time({width:"medium"});case"ppp":return e.time({width:"long"});default:return e.time({width:"full"})}},yt={p:wt,P:(t,e)=>{const r=t.match(/(P+)(p+)?/)||[],n=r[1],o=r[2];if(!o)return gt(t,e);let a;switch(n){case"P":a=e.dateTime({width:"short"});break;case"PP":a=e.dateTime({width:"medium"});break;case"PPP":a=e.dateTime({width:"long"});break;default:a=e.dateTime({width:"full"})}return a.replace("{{date}}",gt(n,e)).replace("{{time}}",wt(o,e))}},vt=/^D+$/,bt=/^Y+$/,xt=["D","DD","YY","YYYY"];function kt(t){return vt.test(t)}function Tt(t){return bt.test(t)}function Mt(t,e,r){const n=function(t,e,r){const n="Y"===t[0]?"years":"days of the month";return`Use \`${t.toLowerCase()}\` instead of \`${t}\` (in \`${e}\`) for formatting ${n} to the input \`${r}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}(t,e,r);if(console.warn(n),xt.includes(t))throw new RangeError(n)}const St=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Pt=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Et=/^'([^]*?)'?$/,Dt=/''/g,Ot=/[a-zA-Z]/;function At(t,e,r){const n=R(),o=n.locale??V,a=n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,i=n.weekStartsOn??n.locale?.options?.weekStartsOn??0,s=L(t);if(!z(s))throw new RangeError("Invalid time value");let u=e.match(Pt).map((t=>{const e=t[0];if("p"===e||"P"===e){return(0,yt[e])(t,o.formatLong)}return t})).join("").match(St).map((t=>{if("''"===t)return{isToken:!1,value:"'"};const e=t[0];if("'"===e)return{isToken:!1,value:Ht(t)};if(lt[e])return{isToken:!0,value:t};if(e.match(Ot))throw new RangeError("Format string contains an unescaped latin alphabet character `"+e+"`");return{isToken:!1,value:t}}));o.localize.preprocessor&&(u=o.localize.preprocessor(s,u));const c={firstWeekContainsDate:a,weekStartsOn:i,locale:o};return u.map((r=>{if(!r.isToken)return r.value;const n=r.value;(Tt(n)||kt(n))&&Mt(n,e,String(t));return(0,lt[n[0]])(s,n,o.localize,c)})).join("")}function Ht(t){const e=t.match(Et);return e?e[1].replace(Dt,"'"):t}class qt{subPriority=0;validate(t,e){return!0}}class Nt extends qt{constructor(t,e,r,n,o){super(),this.value=t,this.validateValue=e,this.setValue=r,this.priority=n,o&&(this.subPriority=o)}validate(t,e){return this.validateValue(t,this.value,e)}set(t,e,r){return this.setValue(t,e,this.value,r)}}class Ct extends qt{priority=10;subPriority=-1;set(t,e){return e.timestampIsSet?t:j(t,function(t,e){const r=e instanceof Date?j(e,0):new e(0);return r.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),r.setHours(t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()),r}(t,Date))}}class Lt{run(t,e,r,n){const o=this.parse(t,e,r,n);return o?{setter:new Nt(o.value,this.validate,this.set,this.priority,this.subPriority),rest:o.rest}:null}validate(t,e,r){return!0}}const jt=/^(1[0-2]|0?\d)/,Yt=/^(3[0-1]|[0-2]?\d)/,Ft=/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,Rt=/^(5[0-3]|[0-4]?\d)/,Wt=/^(2[0-3]|[0-1]?\d)/,Qt=/^(2[0-4]|[0-1]?\d)/,It=/^(1[0-1]|0?\d)/,Gt=/^(1[0-2]|0?\d)/,_t=/^[0-5]?\d/,zt=/^[0-5]?\d/,Bt=/^\d/,Xt=/^\d{1,2}/,$t=/^\d{1,3}/,Kt=/^\d{1,4}/,Zt=/^-?\d+/,Jt=/^-?\d/,Ut=/^-?\d{1,2}/,Vt=/^-?\d{1,3}/,te=/^-?\d{1,4}/,ee=/^([+-])(\d{2})(\d{2})?|Z/,re=/^([+-])(\d{2})(\d{2})|Z/,ne=/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,oe=/^([+-])(\d{2}):(\d{2})|Z/,ae=/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/;function ie(t,e){return t?{value:e(t.value),rest:t.rest}:t}function se(t,e){const r=e.match(t);return r?{value:parseInt(r[0],10),rest:e.slice(r[0].length)}:null}function ue(t,e){const r=e.match(t);if(!r)return null;if("Z"===r[0])return{value:0,rest:e.slice(1)};return{value:("+"===r[1]?1:-1)*(36e5*(r[2]?parseInt(r[2],10):0)+6e4*(r[3]?parseInt(r[3],10):0)+1e3*(r[5]?parseInt(r[5],10):0)),rest:e.slice(r[0].length)}}function ce(t){return se(Zt,t)}function de(t,e){switch(t){case 1:return se(Bt,e);case 2:return se(Xt,e);case 3:return se($t,e);case 4:return se(Kt,e);default:return se(new RegExp("^\\d{1,"+t+"}"),e)}}function he(t,e){switch(t){case 1:return se(Jt,e);case 2:return se(Ut,e);case 3:return se(Vt,e);case 4:return se(te,e);default:return se(new RegExp("^-?\\d{1,"+t+"}"),e)}}function le(t){switch(t){case"morning":return 4;case"evening":return 17;case"pm":case"noon":case"afternoon":return 12;default:return 0}}function fe(t,e){const r=e>0,n=r?e:1-e;let o;if(n<=50)o=t||100;else{const e=n+50;o=t+100*Math.trunc(e/100)-(t>=e%100?100:0)}return r?o:1-o}function pe(t){return t%400==0||t%4==0&&t%100!=0}const me=[31,28,31,30,31,30,31,31,30,31,30,31],ge=[31,29,31,30,31,30,31,31,30,31,30,31];function we(t,e,r){const n=R(),o=r?.weekStartsOn??r?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=L(t),i=a.getDay(),s=7-o;return Y(a,e<0||e>6?e-(i+s)%7:((e%7+7)%7+s)%7-(i+s)%7)}function ye(t,e){const r=L(t),n=function(t){let e=L(t).getDay();return 0===e&&(e=7),e}(r);return Y(r,e-n)}const ve={G:new class extends Lt{priority=140;parse(t,e,r){switch(e){case"G":case"GG":case"GGG":return r.era(t,{width:"abbreviated"})||r.era(t,{width:"narrow"});case"GGGGG":return r.era(t,{width:"narrow"});default:return r.era(t,{width:"wide"})||r.era(t,{width:"abbreviated"})||r.era(t,{width:"narrow"})}}set(t,e,r){return e.era=r,t.setFullYear(r,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["R","u","t","T"]},y:new class extends Lt{priority=130;incompatibleTokens=["Y","R","u","w","I","i","e","c","t","T"];parse(t,e,r){const n=t=>({year:t,isTwoDigitYear:"yy"===e});switch(e){case"y":return ie(de(4,t),n);case"yo":return ie(r.ordinalNumber(t,{unit:"year"}),n);default:return ie(de(e.length,t),n)}}validate(t,e){return e.isTwoDigitYear||e.year>0}set(t,e,r){const n=t.getFullYear();if(r.isTwoDigitYear){const e=fe(r.year,n);return t.setFullYear(e,0,1),t.setHours(0,0,0,0),t}const o="era"in e&&1!==e.era?1-r.year:r.year;return t.setFullYear(o,0,1),t.setHours(0,0,0,0),t}},Y:new class extends Lt{priority=130;parse(t,e,r){const n=t=>({year:t,isTwoDigitYear:"YY"===e});switch(e){case"Y":return ie(de(4,t),n);case"Yo":return ie(r.ordinalNumber(t,{unit:"year"}),n);default:return ie(de(e.length,t),n)}}validate(t,e){return e.isTwoDigitYear||e.year>0}set(t,e,r,n){const o=rt(t,n);if(r.isTwoDigitYear){const e=fe(r.year,o);return t.setFullYear(e,0,n.firstWeekContainsDate),t.setHours(0,0,0,0),W(t,n)}const a="era"in e&&1!==e.era?1-r.year:r.year;return t.setFullYear(a,0,n.firstWeekContainsDate),t.setHours(0,0,0,0),W(t,n)}incompatibleTokens=["y","R","u","Q","q","M","L","I","d","D","i","t","T"]},R:new class extends Lt{priority=130;parse(t,e){return he("R"===e?4:e.length,t)}set(t,e,r){const n=j(t,0);return n.setFullYear(r,0,4),n.setHours(0,0,0,0),Q(n)}incompatibleTokens=["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"]},u:new class extends Lt{priority=130;parse(t,e){return he("u"===e?4:e.length,t)}set(t,e,r){return t.setFullYear(r,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["G","y","Y","R","w","I","i","e","c","t","T"]},Q:new class extends Lt{priority=120;parse(t,e,r){switch(e){case"Q":case"QQ":return de(e.length,t);case"Qo":return r.ordinalNumber(t,{unit:"quarter"});case"QQQ":return r.quarter(t,{width:"abbreviated",context:"formatting"})||r.quarter(t,{width:"narrow",context:"formatting"});case"QQQQQ":return r.quarter(t,{width:"narrow",context:"formatting"});default:return r.quarter(t,{width:"wide",context:"formatting"})||r.quarter(t,{width:"abbreviated",context:"formatting"})||r.quarter(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=1&&e<=4}set(t,e,r){return t.setMonth(3*(r-1),1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","M","L","w","I","d","D","i","e","c","t","T"]},q:new class extends Lt{priority=120;parse(t,e,r){switch(e){case"q":case"qq":return de(e.length,t);case"qo":return r.ordinalNumber(t,{unit:"quarter"});case"qqq":return r.quarter(t,{width:"abbreviated",context:"standalone"})||r.quarter(t,{width:"narrow",context:"standalone"});case"qqqqq":return r.quarter(t,{width:"narrow",context:"standalone"});default:return r.quarter(t,{width:"wide",context:"standalone"})||r.quarter(t,{width:"abbreviated",context:"standalone"})||r.quarter(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=1&&e<=4}set(t,e,r){return t.setMonth(3*(r-1),1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","Q","M","L","w","I","d","D","i","e","c","t","T"]},M:new class extends Lt{incompatibleTokens=["Y","R","q","Q","L","w","I","D","i","e","c","t","T"];priority=110;parse(t,e,r){const n=t=>t-1;switch(e){case"M":return ie(se(jt,t),n);case"MM":return ie(de(2,t),n);case"Mo":return ie(r.ordinalNumber(t,{unit:"month"}),n);case"MMM":return r.month(t,{width:"abbreviated",context:"formatting"})||r.month(t,{width:"narrow",context:"formatting"});case"MMMMM":return r.month(t,{width:"narrow",context:"formatting"});default:return r.month(t,{width:"wide",context:"formatting"})||r.month(t,{width:"abbreviated",context:"formatting"})||r.month(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.setMonth(r,1),t.setHours(0,0,0,0),t}},L:new class extends Lt{priority=110;parse(t,e,r){const n=t=>t-1;switch(e){case"L":return ie(se(jt,t),n);case"LL":return ie(de(2,t),n);case"Lo":return ie(r.ordinalNumber(t,{unit:"month"}),n);case"LLL":return r.month(t,{width:"abbreviated",context:"standalone"})||r.month(t,{width:"narrow",context:"standalone"});case"LLLLL":return r.month(t,{width:"narrow",context:"standalone"});default:return r.month(t,{width:"wide",context:"standalone"})||r.month(t,{width:"abbreviated",context:"standalone"})||r.month(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.setMonth(r,1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","w","I","D","i","e","c","t","T"]},w:new class extends Lt{priority=100;parse(t,e,r){switch(e){case"w":return se(Rt,t);case"wo":return r.ordinalNumber(t,{unit:"week"});default:return de(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,e,r,n){return W(function(t,e,r){const n=L(t),o=nt(n,r)-e;return n.setDate(n.getDate()-7*o),n}(t,r,n),n)}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","i","t","T"]},I:new class extends Lt{priority=100;parse(t,e,r){switch(e){case"I":return se(Rt,t);case"Io":return r.ordinalNumber(t,{unit:"week"});default:return de(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,e,r){return Q(function(t,e){const r=L(t),n=et(r)-e;return r.setDate(r.getDate()-7*n),r}(t,r))}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","e","c","t","T"]},d:new class extends Lt{priority=90;subPriority=1;parse(t,e,r){switch(e){case"d":return se(Yt,t);case"do":return r.ordinalNumber(t,{unit:"date"});default:return de(e.length,t)}}validate(t,e){const r=pe(t.getFullYear()),n=t.getMonth();return r?e>=1&&e<=ge[n]:e>=1&&e<=me[n]}set(t,e,r){return t.setDate(r),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","w","I","D","i","e","c","t","T"]},D:new class extends Lt{priority=90;subpriority=1;parse(t,e,r){switch(e){case"D":case"DD":return se(Ft,t);case"Do":return r.ordinalNumber(t,{unit:"date"});default:return de(e.length,t)}}validate(t,e){return pe(t.getFullYear())?e>=1&&e<=366:e>=1&&e<=365}set(t,e,r){return t.setMonth(0,r),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","L","w","I","d","E","i","e","c","t","T"]},E:new class extends Lt{priority=90;parse(t,e,r){switch(e){case"E":case"EE":case"EEE":return r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});case"EEEEE":return r.day(t,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});default:return r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=we(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["D","i","e","c","t","T"]},e:new class extends Lt{priority=90;parse(t,e,r,n){const o=t=>{const e=7*Math.floor((t-1)/7);return(t+n.weekStartsOn+6)%7+e};switch(e){case"e":case"ee":return ie(de(e.length,t),o);case"eo":return ie(r.ordinalNumber(t,{unit:"day"}),o);case"eee":return r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});case"eeeee":return r.day(t,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});default:return r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=we(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","c","t","T"]},c:new class extends Lt{priority=90;parse(t,e,r,n){const o=t=>{const e=7*Math.floor((t-1)/7);return(t+n.weekStartsOn+6)%7+e};switch(e){case"c":case"cc":return ie(de(e.length,t),o);case"co":return ie(r.ordinalNumber(t,{unit:"day"}),o);case"ccc":return r.day(t,{width:"abbreviated",context:"standalone"})||r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"});case"ccccc":return r.day(t,{width:"narrow",context:"standalone"});case"cccccc":return r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"});default:return r.day(t,{width:"wide",context:"standalone"})||r.day(t,{width:"abbreviated",context:"standalone"})||r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=we(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","e","t","T"]},i:new class extends Lt{priority=90;parse(t,e,r){const n=t=>0===t?7:t;switch(e){case"i":case"ii":return de(e.length,t);case"io":return r.ordinalNumber(t,{unit:"day"});case"iii":return ie(r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n);case"iiiii":return ie(r.day(t,{width:"narrow",context:"formatting"}),n);case"iiiiii":return ie(r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n);default:return ie(r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n)}}validate(t,e){return e>=1&&e<=7}set(t,e,r){return(t=ye(t,r)).setHours(0,0,0,0),t}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","E","e","c","t","T"]},a:new class extends Lt{priority=80;parse(t,e,r){switch(e){case"a":case"aa":case"aaa":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"aaaaa":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(le(r),0,0,0),t}incompatibleTokens=["b","B","H","k","t","T"]},b:new class extends Lt{priority=80;parse(t,e,r){switch(e){case"b":case"bb":case"bbb":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"bbbbb":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(le(r),0,0,0),t}incompatibleTokens=["a","B","H","k","t","T"]},B:new class extends Lt{priority=80;parse(t,e,r){switch(e){case"B":case"BB":case"BBB":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"BBBBB":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(le(r),0,0,0),t}incompatibleTokens=["a","b","t","T"]},h:new class extends Lt{priority=70;parse(t,e,r){switch(e){case"h":return se(Gt,t);case"ho":return r.ordinalNumber(t,{unit:"hour"});default:return de(e.length,t)}}validate(t,e){return e>=1&&e<=12}set(t,e,r){const n=t.getHours()>=12;return n&&r<12?t.setHours(r+12,0,0,0):n||12!==r?t.setHours(r,0,0,0):t.setHours(0,0,0,0),t}incompatibleTokens=["H","K","k","t","T"]},H:new class extends Lt{priority=70;parse(t,e,r){switch(e){case"H":return se(Wt,t);case"Ho":return r.ordinalNumber(t,{unit:"hour"});default:return de(e.length,t)}}validate(t,e){return e>=0&&e<=23}set(t,e,r){return t.setHours(r,0,0,0),t}incompatibleTokens=["a","b","h","K","k","t","T"]},K:new class extends Lt{priority=70;parse(t,e,r){switch(e){case"K":return se(It,t);case"Ko":return r.ordinalNumber(t,{unit:"hour"});default:return de(e.length,t)}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.getHours()>=12&&r<12?t.setHours(r+12,0,0,0):t.setHours(r,0,0,0),t}incompatibleTokens=["h","H","k","t","T"]},k:new class extends Lt{priority=70;parse(t,e,r){switch(e){case"k":return se(Qt,t);case"ko":return r.ordinalNumber(t,{unit:"hour"});default:return de(e.length,t)}}validate(t,e){return e>=1&&e<=24}set(t,e,r){const n=r<=24?r%24:r;return t.setHours(n,0,0,0),t}incompatibleTokens=["a","b","h","H","K","t","T"]},m:new class extends Lt{priority=60;parse(t,e,r){switch(e){case"m":return se(_t,t);case"mo":return r.ordinalNumber(t,{unit:"minute"});default:return de(e.length,t)}}validate(t,e){return e>=0&&e<=59}set(t,e,r){return t.setMinutes(r,0,0),t}incompatibleTokens=["t","T"]},s:new class extends Lt{priority=50;parse(t,e,r){switch(e){case"s":return se(zt,t);case"so":return r.ordinalNumber(t,{unit:"second"});default:return de(e.length,t)}}validate(t,e){return e>=0&&e<=59}set(t,e,r){return t.setSeconds(r,0),t}incompatibleTokens=["t","T"]},S:new class extends Lt{priority=30;parse(t,e){return ie(de(e.length,t),(t=>Math.trunc(t*Math.pow(10,3-e.length))))}set(t,e,r){return t.setMilliseconds(r),t}incompatibleTokens=["t","T"]},X:new class extends Lt{priority=10;parse(t,e){switch(e){case"X":return ue(ee,t);case"XX":return ue(re,t);case"XXXX":return ue(ne,t);case"XXXXX":return ue(ae,t);default:return ue(oe,t)}}set(t,e,r){return e.timestampIsSet?t:j(t,t.getTime()-_(t)-r)}incompatibleTokens=["t","T","x"]},x:new class extends Lt{priority=10;parse(t,e){switch(e){case"x":return ue(ee,t);case"xx":return ue(re,t);case"xxxx":return ue(ne,t);case"xxxxx":return ue(ae,t);default:return ue(oe,t)}}set(t,e,r){return e.timestampIsSet?t:j(t,t.getTime()-_(t)-r)}incompatibleTokens=["t","T","X"]},t:new class extends Lt{priority=40;parse(t){return ce(t)}set(t,e,r){return[j(t,1e3*r),{timestampIsSet:!0}]}incompatibleTokens="*"},T:new class extends Lt{priority=20;parse(t){return ce(t)}set(t,e,r){return[j(t,r),{timestampIsSet:!0}]}incompatibleTokens="*"}},be=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,xe=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,ke=/^'([^]*?)'?$/,Te=/''/g,Me=/\S/,Se=/[a-zA-Z]/;function Pe(t,e,r,n){const o=Object.assign({},R()),a=o.locale??V,i=o.firstWeekContainsDate??o.locale?.options?.firstWeekContainsDate??1,s=o.weekStartsOn??o.locale?.options?.weekStartsOn??0;if(""===e)return""===t?L(r):j(r,NaN);const u={firstWeekContainsDate:i,weekStartsOn:s,locale:a},c=[new Ct],d=e.match(xe).map((t=>{const e=t[0];if(e in yt){return(0,yt[e])(t,a.formatLong)}return t})).join("").match(be),h=[];for(let n of d){Tt(n)&&Mt(n,e,t),kt(n)&&Mt(n,e,t);const o=n[0],i=ve[o];if(i){const{incompatibleTokens:e}=i;if(Array.isArray(e)){const t=h.find((t=>e.includes(t.token)||t.token===o));if(t)throw new RangeError(`The format string mustn't contain \`${t.fullToken}\` and \`${n}\` at the same time`)}else if("*"===i.incompatibleTokens&&h.length>0)throw new RangeError(`The format string mustn't contain \`${n}\` and any other token at the same time`);h.push({token:o,fullToken:n});const s=i.run(t,n,a.match,u);if(!s)return j(r,NaN);c.push(s.setter),t=s.rest}else{if(o.match(Se))throw new RangeError("Format string contains an unescaped latin alphabet character `"+o+"`");if("''"===n?n="'":"'"===o&&(n=n.match(ke)[1].replace(Te,"'")),0!==t.indexOf(n))return j(r,NaN);t=t.slice(n.length)}}if(t.length>0&&Me.test(t))return j(r,NaN);const l=c.map((t=>t.priority)).sort(((t,e)=>e-t)).filter(((t,e,r)=>r.indexOf(t)===e)).map((t=>c.filter((e=>e.priority===t)).sort(((t,e)=>e.subPriority-t.subPriority)))).map((t=>t[0]));let f=L(r);if(isNaN(f.getTime()))return j(r,NaN);const p={};for(const t of l){if(!t.validate(f,u))return j(r,NaN);const e=t.set(f,p,u);Array.isArray(e)?(f=e[0],Object.assign(p,e[1])):f=e}return j(r,f)}var Ee=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return a(this,e),o(this,e,[t,r,"store-hour",n])}return h(e,x),u(e,[{key:"day",get:function(){return this.getAttribute("day")}},{key:"isClosed",get:function(){return null===this.getAttribute("start")&&null===this.getAttribute("end")}},{key:"is24Hours",get:function(){var t=this.startDateInstance,e=this.endDateInstance,r=Math.abs(t-e);return Math.floor(r/1e3/60)/60>23}},{key:"startDateInstance",get:function(){if(!this.hasAttribute("start"))return null;var t=this.getAttribute("start"),e=3===t.split(":").length;return Pe(t,e?"HH:mm:ss":"HH:mm",new Date)}},{key:"endDateInstance",get:function(){if(!this.hasAttribute("end"))return null;var t=this.getAttribute("end"),e=3===t.split(":").length;return Pe(t,e?"HH:mm:ss":"HH:mm",new Date)}},{key:"humanReadableHoursRange",get:function(){return z(this.startDateInstance)&&z(this.endDateInstance)?"".concat(At(this.startDateInstance,"p")," - ").concat(At(this.endDateInstance,"p")):"".concat(this.start," - ").concat(this.end)}},{key:"humanReadableHours",get:function(){return this.isClosed?"Closed":this.is24Hours?"24 Hours":this.humanReadableHoursRange}},{key:"create",value:function(){throw new Error("There is no create() method store location!")}},{key:"update",value:function(){throw new Error("There is no update() method store location!")}},{key:"destroy",value:function(){throw new Error("There is no destroy() method store location!")}},{key:"reload",value:function(){throw new Error("There is no reload() method store location!")}}])}(),De=function(e){function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return a(this,r),o(this,r,[t,e,"store-location",n])}return h(r,x),u(r,[{key:"latitude",get:function(){return this.getAttribute("place.location.coordinates.1")}},{key:"longitude",get:function(){return this.getAttribute("place.location.coordinates.0")}},{key:"hours",get:function(){return new t.Collection(this.getAttribute("hours").map((function(t){return new Ee(t)})))}},{key:"isAlwaysOpen",get:function(){return this.hours.every((function(t){return null==t?void 0:t.is24Hours}))}},{key:"today",get:function(){var t=At(new Date,"EEEE");return this.schedule[t]}},{key:"schedule",get:function(){for(var e={},r=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],n=0;n0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return a(this,r),o(this,r,[t,e,"store",n])}return h(r,x),u(r,[{key:"getReviews",value:function(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("reviews",p({store:this.id},r)).then((function(r){return new t.Collection(r.map((function(t){return new T(t,e.adapter)})))}))}},{key:"getLocations",value:function(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("locations",p({store:this.id},r)).then((function(r){return new t.Collection(r.map((function(r){return r.place&&(r.place=new t.Place(r.place)),new De(r,e.adapter)})))}))}},{key:"getLocation",value:function(t){var e=this;return this.adapter.get("locations/".concat(t),{store:this.id}).then((function(t){return new De(t,e.adapter)}))}},{key:"getPaymentGateways",value:function(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("gateways",r).then((function(r){return new t.Collection(r.map((function(t){return new C(t,e.adapter)})))}))}},{key:"getPaymentGateway",value:function(t){var e=this;return this.adapter.get("gateways/".concat(t)).then((function(t){return new C(t,e.adapter)}))}}])}(),Ae=Array.isArray,He=function(e){function r(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return a(this,r),n instanceof t.Adapter?m(e,e=o(this,r,[{},n,"service-quote",s])):o(this,r,[n,i,"service-quote",s])}return h(r,t.ServiceQuote),u(r,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new Re(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"formattedAmount",get:function(){var t=this.getAttributes(["amount","currency"]),e=t.amount,r=t.currency;return P(e)||P(r)?null:S(e/100,r)}},{key:"fetchServiceQuotesFromCart",value:(s=n(g().mark((function e(n,o,a){var i,s,u,c,d,h,l=this,f=arguments;return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return c=f.length>3&&void 0!==f[3]?f[3]:"storefront",d=f.length>4&&void 0!==f[4]&&f[4],null!==(i=n)&&void 0!==i&&i.id&&(n=n.id),null!==(s=o)&&void 0!==s&&s.id&&(o=o.id),null!==(u=a)&&void 0!==u&&u.id&&(a=a.id),e.prev=5,e.next=8,this.adapter.get("service-quotes/from-cart",{origin:n,destination:o,cart:a,config:c,all:d});case 8:if(h=e.sent,!Ae(h)){e.next=11;break}return e.abrupt("return",new t.Collection(h.map((function(t){return new r(t,l.adapter)}))));case 11:return e.abrupt("return",new r(h,this.adapter));case 14:throw e.prev=14,e.t0=e.catch(5),console.error("Error fetching service quotes:",e.t0),e.t0;case 18:case"end":return e.stop()}}),e,this,[[5,14]])}))),function(t,e,r){return s.apply(this,arguments)})}],[{key:"getFromCart",value:(i=n(g().mark((function t(e,n,o,a){var i,s,u,c=arguments;return g().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=c.length>4&&void 0!==c[4]?c[4]:"storefront",s=c.length>5&&void 0!==c[5]&&c[5],u=new r(e),t.abrupt("return",u.fetchServiceQuotesFromCart(n,o,a,i,s));case 4:case"end":return t.stop()}}),t)}))),function(t,e,r,n){return i.apply(this,arguments)})}]);var i,s}(),qe=new t.StoreActions({create:void 0,findAll:void 0,query:void 0,queryRecord:void 0,initialize:function(e,r,n,o){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return t.isResource(e)&&(e=e.id),t.isResource(r)&&(r=r.id),t.isResource(n)&&(n=n.id),t.isResource(o)&&(o=o.getAttribute("code")),this.adapter.get("".concat(this.namespace,"/before"),p(p({},a),{},{customer:e,cart:r,serviceQuote:n,gateway:o}),i)},captureOrder:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/capture"),{token:e,transactionDetails:r},n).then((function(e){return new t.Order(e)}))},createStripeSetupIntent:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.isResource(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/stripe-setup-intent"),{customer:e},r)},updateStripePaymentIntent:function(e,r,n,o){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return t.isResource(r)&&(r=r.id),t.isResource(n)&&(n=n.id),t.isResource(o)&&(o=o.id),this.adapter.put("".concat(this.namespace,"/stripe-update-payment-intent"),p({paymentIntent:e,customer:r,cart:n,serviceQuote:o},a),i)}}),Ne=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return a(this,e),o(this,e,[t,r,"checkout",n])}return h(e,x),u(e,[{key:"initialize",value:function(){var t;return(t=this.store).initialize.apply(t,arguments)}},{key:"captureOrder",value:function(){var t;return(t=this.store).captureOrder.apply(t,arguments)}}])}(),Ce={Product:E,Category:D,Customer:A,Cart:N,DeliveryServiceQuote:He,Store:Oe,StoreLocation:De,StoreHour:Ee,Checkout:Ne,Review:T},Le={BrowserAdapter:t.BrowserAdapter,NodeAdapter:t.NodeAdapter};function je(t){return t.split(/[^a-zA-Z0-9]/).filter(Boolean).map((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})).join("")}var Ye=function(){return u((function t(){return a(this,t),this.resources=Ce,this.adapters=Le,this.lookup.apply(this,arguments)}),[{key:"lookup",value:function(e,r){var n=t.pluralize(e),o=je(r),a=Array.prototype.slice.call(arguments).slice(2);if(!this[n])throw new Error("Attempted to resolve invalid type");if(!this[n][o])throw new Error("No ".concat(t.singularize(e)," named ").concat(r," (").concat(o,") to resolve"));return i(this[n][o],y(a))}}])}(),Fe=function(){return i(Ye,Array.prototype.slice.call(arguments))},Re=function(e){function r(){return a(this,r),o(this,r,arguments)}return h(r,t.Store),u(r,[{key:"extendActions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return t.extendStoreActions(this,e)}},{key:"serialize",value:function(e){return Fe("resource",t.classify(this.resource),e,this.adapter)}}])}();exports.Cart=N,exports.Category=D,exports.Checkout=Ne,exports.Customer=A,exports.DeliveryServiceQuote=He,exports.PaymentGateway=C,exports.Product=E,exports.Resolver=Ye,exports.Review=T,exports.Store=Oe,exports.StoreHour=Ee,exports.StoreLocation=De,exports.StorefrontResource=x,exports.StorefrontStore=Re,exports._asyncToGenerator=n,exports._callSuper=o,exports._classCallCheck=a,exports._construct=i,exports._createClass=u,exports._inherits=h,exports._objectSpread2=p,exports._regeneratorRuntime=g,exports.cartActions=q,exports.checkoutActions=qe,exports.customerActions=O,exports.lookup=Fe,exports.resources=Ce,exports.reviewActions=k; -//# sourceMappingURL=store-B5J1gYSv.js.map diff --git a/dist/cjs/store-B5J1gYSv.js.map b/dist/cjs/store-B5J1gYSv.js.map deleted file mode 100644 index 0ecce62..0000000 --- a/dist/cjs/store-B5J1gYSv.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"store-B5J1gYSv.js","sources":["../../src/resource.js","../../src/resources/review.js","../../src/utils/is-phone.js","../../src/utils/format-currency.js","../../src/utils/is-empty.js","../../src/resources/product.js","../../src/resources/category.js","../../src/resources/customer.js","../../src/resources/cart.js","../../src/resources/payment-gateway.js","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/toDate.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/constructFrom.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/addDays.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/_lib/defaultOptions.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/startOfWeek.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/startOfISOWeek.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/getISOWeekYear.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/startOfDay.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/isValid.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/isDate.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/en-US/_lib/formatDistance.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/_lib/buildFormatLongFn.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/en-US/_lib/formatLong.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/en-US/_lib/formatRelative.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/_lib/buildMatchFn.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/_lib/buildMatchPatternFn.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/en-US.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/en-US/_lib/localize.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/en-US/_lib/match.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/getDayOfYear.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/differenceInCalendarDays.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/constants.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/startOfYear.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/getISOWeek.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/startOfISOWeekYear.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/getWeekYear.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/getWeek.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/startOfWeekYear.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/_lib/addLeadingZeros.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/_lib/format/lightFormatters.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/_lib/format/formatters.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/_lib/format/longFormatters.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/_lib/protectedTokens.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/format.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/Setter.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/transpose.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/Parser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/constants.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/utils.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/DateParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/setDay.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/setISODay.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/getISODay.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/EraParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/YearParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/QuarterParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/MonthParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/setWeek.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/setISOWeek.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/DayParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/ISODayParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/AMPMParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/MinuteParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/SecondParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/getDefaultOptions.mjs","../../src/resources/store-hour.js","../../src/resources/store-location.js","../../src/resources/store.js","../../src/resources/delivery-service-quote.js","../../src/resources/checkout.js","../../src/resolver.js","../../src/store.js"],"sourcesContent":["import { Resource } from '@fleetbase/sdk';\nimport StorefrontStore from './store';\n\nexport default class StorefrontResource extends Resource {\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new StorefrontStore(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions,\n });\n\n return this;\n }\n}\n","import Resource from '../resource';\nimport { StoreActions } from '@fleetbase/sdk';\n\nconst reviewActions = new StoreActions({\n count: function (storeId, options = {}) {\n const params = {};\n\n if (storeId) {\n params.store = storeId;\n }\n\n return this.adapter.get(`${this.namespace}/count`, params, options);\n },\n});\n\nexport default class Review extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'review', options);\n }\n\n getMedia() {\n // @todo\n }\n\n getPhotos() {\n // @todo\n }\n\n getVideos() {\n // @todo\n }\n}\n\nexport { reviewActions };\n","const isPhone = (phone = '') => {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/g.test(phone);\n};\n\nexport default isPhone;\n","export default function formatCurrency(amount = 0, currency = 'USD', currencyDisplay = 'symbol') {\n return new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency,\n currencyDisplay,\n }).format(amount);\n}\n","const isEmpty = (obj) => {\n const none = obj === null || obj === undefined;\n if (none) {\n return none;\n }\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n const objectType = typeof obj;\n\n if (objectType === 'object') {\n const { size } = obj;\n if (typeof size === 'number') {\n return !size;\n }\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\n }\n\n if (objectType === 'object') {\n const { length } = obj;\n if (typeof length === 'number') {\n return !length;\n }\n }\n\n return false;\n};\n\nexport default isEmpty;\n","import Resource from '../resource';\nimport Review from './review';\nimport { formatCurrency, isEmpty } from '../utils';\nimport { Collection } from '@fleetbase/sdk';\n\nexport default class Product extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'product', options);\n }\n\n variants() {\n return this.getAttribute('variants');\n }\n\n addons() {\n return this.getAttribute('addon_categories');\n }\n\n get isOnSale() {\n return this.getAttribute('is_on_sale');\n }\n\n get isNotOnSale() {\n return !this.getAttribute('is_on_sale');\n }\n\n get formattedAmount() {\n const { price, sale_price, currency } = this.getAttributes(['price', 'sale_price', 'currency']);\n\n if (this.isOnSale) {\n if (isEmpty(sale_price) || isEmpty(currency)) {\n return null;\n }\n\n return formatCurrency(sale_price / 100, currency);\n }\n\n if (isEmpty(price) || isEmpty(currency)) {\n return null;\n }\n\n return formatCurrency(price / 100, currency);\n }\n\n getReviews() {\n return this.adapter.get('reviews', { store: this.id }).then((reviews) => {\n return new Collection(reviews.map((attributes) => new Review(attributes, this.adapter)));\n });\n }\n}\n","import Resource from '../resource';\nimport Product from './product';\nimport { Collection } from '@fleetbase/sdk';\n\nexport default class Category extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'category', options);\n }\n\n getProducts() {\n return this.adapter.get('products', { category: this.id }).then((products) => {\n return new Collection(products.map((attributes) => new Product(attributes, this.adapter)));\n });\n }\n}\n","import { Collection, Order, Place, StoreActions } from '@fleetbase/sdk';\nimport Resource from '../resource';\nimport StorefrontStore from '../store';\nimport { isPhone } from '../utils';\n\nconst customerActions = new StoreActions({\n // const { error } = await storefront.customers.login('+1 111-1111');\n login: function (identity, password = null, attributes = {}) {\n // handle phone number authentication\n if (isPhone(identity)) {\n return this.adapter.post('customers/login-with-sms', { phone: identity });\n }\n\n if (!password) {\n throw new Error('Login requires password!');\n }\n\n return this.adapter.post('customers/login', { identity, password, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n verifyCode: function (identity, code, attributes = {}) {\n return this.adapter.post('customers/verify-code', { identity, code, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n requestCreationCode(identity, mode = 'email') {\n return this.adapter.post('customers/request-creation-code', {\n identity,\n mode,\n });\n },\n\n create(identity, code, attributes = {}) {\n return this.adapter.post('customers', { identity, code, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n retrieve: function (id) {\n return this.findRecord(id);\n },\n});\n\nexport default class Customer extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'customer', {\n actions: customerActions,\n ...options,\n });\n }\n\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new StorefrontStore(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions,\n });\n\n return this;\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n async syncDevice(token) {\n return this.adapter\n .setHeaders({ 'Customer-Token': this.token })\n .post('customers/register-device', token)\n .then(() => {\n return this;\n });\n }\n\n async performAuthorizedRequest(endpoint, params = {}, method = 'GET') {\n try {\n const headers = { 'Customer-Token': this.token };\n const response = await this.adapter.setHeaders(headers)[method.toLowerCase()](endpoint, params);\n return response;\n } catch (error) {\n console.error(`Error in ${method} request to ${endpoint}:`, error);\n throw error;\n }\n }\n\n async getSavedPlaces() {\n try {\n const places = await this.performAuthorizedRequest('customers/places');\n return new Collection(places.map((attributes) => new Place(attributes, this.adapter)));\n } catch (error) {\n throw new Error('Failed to retrieve saved places');\n }\n }\n\n async getOrderHistory(params = {}) {\n try {\n const orders = await this.performAuthorizedRequest('customers/orders', params);\n return new Collection(orders.map((attributes) => new Order(attributes, this.adapter)));\n } catch (error) {\n throw new Error('Failed to retrieve order history');\n }\n }\n\n getStripeEphemeralKey(params = {}) {\n return this.adapter\n .setHeaders({ 'Customer-Token': this.token })\n .post('customers/stripe-ephemeral-key', params);\n }\n\n getStripeSetupIntent(params = {}) {\n return this.adapter\n .setHeaders({ 'Customer-Token': this.token })\n .post('customers/stripe-setup-intent', params);\n }\n}\n\nexport { customerActions };\n","import Resource from '../resource';\nimport Product from './product';\nimport { StoreActions } from '@fleetbase/sdk';\n\nconst { isArray } = Array;\n\nconst cartActions = new StoreActions({\n create: undefined,\n findAll: undefined,\n query: undefined,\n queryRecord: undefined,\n\n add: function (id, productId, quantity = 1, data = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/${productId}`, { ...data, quantity }, options).then(this.afterFetch.bind(this));\n },\n\n update: function (id, cartItemId, quantity, data = {}, options = {}) {\n return this.adapter.put(`${this.namespace}/${id}/${cartItemId}`, { ...data, quantity }, options).then(this.afterFetch.bind(this));\n },\n\n remove: function (id, cartItemId, options = {}) {\n return this.adapter.delete(`${this.namespace}/${id}/${cartItemId}`, {}, options).then(this.afterFetch.bind(this));\n },\n\n empty: function (id, options = {}) {\n return this.adapter.put(`${this.namespace}/${id}/empty`, {}, options).then(this.afterFetch.bind(this));\n },\n\n retrieve: function (id = '') {\n return this.findRecord(id);\n },\n});\n\nexport default class Cart extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'cart', { actions: cartActions, ...options });\n }\n\n add(productId, quantity = 1, data = {}, options = {}) {\n if (productId instanceof Product) {\n productId = productId.id;\n }\n\n return this.store.add(this.id, productId, quantity, data, options);\n }\n\n update(cartItemId, quantity, data = {}, options = {}) {\n return this.store.update(this.id, cartItemId, quantity, data, options);\n }\n\n remove(cartItemId, options = {}) {\n return this.store.remove(this.id, cartItemId, options);\n }\n\n empty(options = {}) {\n return this.store.empty(this.id, options);\n }\n\n delete() {\n return this.destroy();\n }\n\n refresh() {\n return this.store.retrieve(this.id);\n }\n\n subtotal() {\n let subtotal = 0;\n\n this.contents().forEach((cartItem) => {\n subtotal += cartItem.subtotal;\n });\n\n return subtotal;\n }\n\n contents() {\n return this.getAttribute('items', []);\n }\n\n hasProduct(productId) {\n return this.contents().findIndex((cartItem) => cartItem.product_id === productId) !== -1;\n }\n\n get isEmpty() {\n const contents = this.contents();\n\n if (!isArray(contents)) {\n return true;\n }\n\n return contents.length === 0;\n }\n\n get isNotEmpty() {\n return !this.isEmpty;\n }\n}\n\nexport { cartActions };\n","import Resource from '../resource';\n\nexport default class PaymentGateway extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'payment-gateway', options);\n }\n\n get type() {\n return this.getAttribute('type');\n }\n\n get code() {\n return this.getAttribute('code');\n }\n\n get isCashGateway() {\n return this.type === 'cash';\n }\n\n get isStripeGateway() {\n return this.type === 'stripe';\n }\n\n setCheckoutToken(token) {\n this.token = token;\n }\n\n getCheckoutToken() {\n return this.token;\n }\n\n // remove default resource methods\n findRecord() {\n throw new Error('There is no findRecord() method for payment gateways!');\n }\n\n // remove default resource methods\n create() {\n throw new Error('There is no create() method for payment gateways!');\n }\n\n // remove default resource methods\n update() {\n throw new Error('There is no update() method for payment gateways!');\n }\n\n // remove default resource methods\n destroy() {\n throw new Error('There is no destroy() method for payment gateways!');\n }\n\n // remove default resource methods\n reload() {\n throw new Error('There is no reload() method for payment gateways!');\n }\n}\n","/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument) {\n const argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (\n argument instanceof Date ||\n (typeof argument === \"object\" && argStr === \"[object Date]\")\n ) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new argument.constructor(+argument);\n } else if (\n typeof argument === \"number\" ||\n argStr === \"[object Number]\" ||\n typeof argument === \"string\" ||\n argStr === \"[object String]\"\n ) {\n // TODO: Can we get rid of as?\n return new Date(argument);\n } else {\n // TODO: Can we get rid of as?\n return new Date(NaN);\n }\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from 'date-fns'\n *\n * // A function that clones a date preserving the original type\n * function cloneDate Thu Sep 11 2014 00:00:00\n */\nexport function addDays(date, amount) {\n const _date = toDate(date);\n if (isNaN(amount)) return constructFrom(date, NaN);\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return _date;\n }\n _date.setDate(_date.getDate() + amount);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addDays;\n","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","import { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n","import { startOfWeek } from \"./startOfWeek.mjs\";\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfISOWeek(date) {\n return startOfWeek(date, { weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeek;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport function getISOWeekYear(date) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n\n const fourthOfJanuaryOfNextYear = constructFrom(date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n\n const fourthOfJanuaryOfThisYear = constructFrom(date, 0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getISOWeekYear;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport function startOfDay(date) {\n const _date = toDate(date);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n","import { toDate } from \"../toDate.mjs\";\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const _date = toDate(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n","import { isDate } from \"./isDate.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport function isValid(date) {\n if (!isDate(date) && typeof date !== \"number\") {\n return false;\n }\n const _date = toDate(date);\n return !isNaN(Number(_date));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n","/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport function isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.mjs\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","/* eslint-disable no-unused-vars */\n\n/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","import { formatDistance } from \"./en-US/_lib/formatDistance.mjs\";\nimport { formatLong } from \"./en-US/_lib/formatLong.mjs\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.mjs\";\nimport { localize } from \"./en-US/_lib/localize.mjs\";\nimport { match } from \"./en-US/_lib/match.mjs\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.mjs\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.mjs\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.mjs\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { differenceInCalendarDays } from \"./differenceInCalendarDays.mjs\";\nimport { startOfYear } from \"./startOfYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * const result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nexport function getDayOfYear(date) {\n const _date = toDate(date);\n const diff = differenceInCalendarDays(_date, startOfYear(_date));\n const dayOfYear = diff + 1;\n return dayOfYear;\n}\n\n// Fallback for modularized imports:\nexport default getDayOfYear;\n","import { millisecondsInDay } from \"./constants.mjs\";\nimport { startOfDay } from \"./startOfDay.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.mjs\";\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport function differenceInCalendarDays(dateLeft, dateRight) {\n const startOfDayLeft = startOfDay(dateLeft);\n const startOfDayRight = startOfDay(dateRight);\n\n const timestampLeft =\n +startOfDayLeft - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n const timestampRight =\n +startOfDayRight - getTimezoneOffsetInMilliseconds(startOfDayRight);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((timestampLeft - timestampRight) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n","import { toDate } from \"./toDate.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport function startOfYear(date) {\n const cleanDate = toDate(date);\n const _date = constructFrom(date, 0);\n _date.setFullYear(cleanDate.getFullYear(), 0, 1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfYear;\n","import { millisecondsInWeek } from \"./constants.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { startOfISOWeekYear } from \"./startOfISOWeekYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport function getISOWeek(date) {\n const _date = toDate(date);\n const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getISOWeek;\n","import { getISOWeekYear } from \"./getISOWeekYear.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfISOWeekYear(date) {\n const year = getISOWeekYear(date);\n const fourthOfJanuary = constructFrom(date, 0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n return startOfISOWeek(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeekYear;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport function getWeekYear(date, options) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const firstWeekOfNextYear = constructFrom(date, 0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n\n const firstWeekOfThisYear = constructFrom(date, 0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getWeekYear;\n","import { millisecondsInWeek } from \"./constants.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { startOfWeekYear } from \"./startOfWeekYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\n\nexport function getWeek(date, options) {\n const _date = toDate(date);\n const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeek;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { getWeekYear } from \"./getWeekYear.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = getWeekYear(date, options);\n const firstWeek = constructFrom(date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = startOfWeek(firstWeek, options);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n","export function addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? \"-\" : \"\";\n const output = Math.abs(number).toString().padStart(targetLength, \"0\");\n return sign + output;\n}\n","import { addLeadingZeros } from \"../addLeadingZeros.mjs\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nexport const lightFormatters = {\n // Year\n y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === \"yy\" ? year % 100 : year, token.length);\n },\n\n // Month\n M(date, token) {\n const month = date.getMonth();\n return token === \"M\" ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n\n // Day of the month\n d(date, token) {\n return addLeadingZeros(date.getDate(), token.length);\n },\n\n // AM or PM\n a(date, token) {\n const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return dayPeriodEnumValue.toUpperCase();\n case \"aaa\":\n return dayPeriodEnumValue;\n case \"aaaaa\":\n return dayPeriodEnumValue[0];\n case \"aaaa\":\n default:\n return dayPeriodEnumValue === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n\n // Hour [1-12]\n h(date, token) {\n return addLeadingZeros(date.getHours() % 12 || 12, token.length);\n },\n\n // Hour [0-23]\n H(date, token) {\n return addLeadingZeros(date.getHours(), token.length);\n },\n\n // Minute\n m(date, token) {\n return addLeadingZeros(date.getMinutes(), token.length);\n },\n\n // Second\n s(date, token) {\n return addLeadingZeros(date.getSeconds(), token.length);\n },\n\n // Fraction of second\n S(date, token) {\n const numberOfDigits = token.length;\n const milliseconds = date.getMilliseconds();\n const fractionalSeconds = Math.trunc(\n milliseconds * Math.pow(10, numberOfDigits - 3),\n );\n return addLeadingZeros(fractionalSeconds, token.length);\n },\n};\n","import { getDayOfYear } from \"../../getDayOfYear.mjs\";\nimport { getISOWeek } from \"../../getISOWeek.mjs\";\nimport { getISOWeekYear } from \"../../getISOWeekYear.mjs\";\nimport { getWeek } from \"../../getWeek.mjs\";\nimport { getWeekYear } from \"../../getWeekYear.mjs\";\nimport { addLeadingZeros } from \"../addLeadingZeros.mjs\";\nimport { lightFormatters } from \"./lightFormatters.mjs\";\n\nconst dayPeriodEnum = {\n am: \"am\",\n pm: \"pm\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nexport const formatters = {\n // Era\n G: function (date, token, localize) {\n const era = date.getFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return localize.era(era, { width: \"abbreviated\" });\n // A, B\n case \"GGGGG\":\n return localize.era(era, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return localize.era(era, { width: \"wide\" });\n }\n },\n\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === \"yo\") {\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, { unit: \"year\" });\n }\n\n return lightFormatters.y(date, token);\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n const signedWeekYear = getWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === \"YY\") {\n const twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === \"Yo\") {\n return localize.ordinalNumber(weekYear, { unit: \"year\" });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n\n // ISO week-numbering year\n R: function (date, token) {\n const isoWeekYear = getISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n const year = date.getFullYear();\n return addLeadingZeros(year, token.length);\n },\n\n // Quarter\n Q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"QQ\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"qq\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // Month\n M: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n case \"M\":\n case \"MM\":\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // J, F, ..., D\n case \"MMMMM\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return localize.month(month, { width: \"wide\", context: \"formatting\" });\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return String(month + 1);\n // 01, 02, ..., 12\n case \"LL\":\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // J, F, ..., D\n case \"LLLLL\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return localize.month(month, { width: \"wide\", context: \"standalone\" });\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n const week = getWeek(date, options);\n\n if (token === \"wo\") {\n return localize.ordinalNumber(week, { unit: \"week\" });\n }\n\n return addLeadingZeros(week, token.length);\n },\n\n // ISO week of year\n I: function (date, token, localize) {\n const isoWeek = getISOWeek(date);\n\n if (token === \"Io\") {\n return localize.ordinalNumber(isoWeek, { unit: \"week\" });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n\n // Day of the month\n d: function (date, token, localize) {\n if (token === \"do\") {\n return localize.ordinalNumber(date.getDate(), { unit: \"date\" });\n }\n\n return lightFormatters.d(date, token);\n },\n\n // Day of year\n D: function (date, token, localize) {\n const dayOfYear = getDayOfYear(date);\n\n if (token === \"Do\") {\n return localize.ordinalNumber(dayOfYear, { unit: \"dayOfYear\" });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n\n // Day of week\n E: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"EEEEE\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"EEEE\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case \"e\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"ee\":\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case \"eo\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"eee\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"eeeee\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"eeee\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case \"c\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"cc\":\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case \"co\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"ccc\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // T\n case \"ccccc\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"standalone\",\n });\n // Tuesday\n case \"cccc\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // ISO day of week\n i: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case \"i\":\n return String(isoDayOfWeek);\n // 02\n case \"ii\":\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case \"io\":\n return localize.ordinalNumber(isoDayOfWeek, { unit: \"day\" });\n // Tue\n case \"iii\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"iiiii\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"iiiiii\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"iiii\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n const hours = date.getHours();\n const dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"aaa\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"aaaaa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n }\n\n switch (token) {\n case \"b\":\n case \"bb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"bbb\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"bbbbb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"BBBBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === \"ho\") {\n let hours = date.getHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return lightFormatters.h(date, token);\n },\n\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === \"Ho\") {\n return localize.ordinalNumber(date.getHours(), { unit: \"hour\" });\n }\n\n return lightFormatters.H(date, token);\n },\n\n // Hour [0-11]\n K: function (date, token, localize) {\n const hours = date.getHours() % 12;\n\n if (token === \"Ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Hour [1-24]\n k: function (date, token, localize) {\n let hours = date.getHours();\n if (hours === 0) hours = 24;\n\n if (token === \"ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Minute\n m: function (date, token, localize) {\n if (token === \"mo\") {\n return localize.ordinalNumber(date.getMinutes(), { unit: \"minute\" });\n }\n\n return lightFormatters.m(date, token);\n },\n\n // Second\n s: function (date, token, localize) {\n if (token === \"so\") {\n return localize.ordinalNumber(date.getSeconds(), { unit: \"second\" });\n }\n\n return lightFormatters.s(date, token);\n },\n\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return \"Z\";\n }\n\n switch (token) {\n // Hours and optional minutes\n case \"X\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case \"XXXX\":\n case \"XX\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case \"XXXXX\":\n case \"XXX\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case \"x\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case \"xxxx\":\n case \"xx\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case \"xxxxx\":\n case \"xxx\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"O\":\n case \"OO\":\n case \"OOO\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"OOOO\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"zzzz\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Seconds timestamp\n t: function (date, token, _localize) {\n const timestamp = Math.trunc(date.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n\n // Milliseconds timestamp\n T: function (date, token, _localize) {\n const timestamp = date.getTime();\n return addLeadingZeros(timestamp, token.length);\n },\n};\n\nfunction formatTimezoneShort(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = Math.trunc(absOffset / 60);\n const minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n if (offset % 60 === 0) {\n const sign = offset > 0 ? \"-\" : \"+\";\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, delimiter);\n}\n\nfunction formatTimezone(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2);\n const minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n","const dateLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"P\":\n return formatLong.date({ width: \"short\" });\n case \"PP\":\n return formatLong.date({ width: \"medium\" });\n case \"PPP\":\n return formatLong.date({ width: \"long\" });\n case \"PPPP\":\n default:\n return formatLong.date({ width: \"full\" });\n }\n};\n\nconst timeLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"p\":\n return formatLong.time({ width: \"short\" });\n case \"pp\":\n return formatLong.time({ width: \"medium\" });\n case \"ppp\":\n return formatLong.time({ width: \"long\" });\n case \"pppp\":\n default:\n return formatLong.time({ width: \"full\" });\n }\n};\n\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n const matchResult = pattern.match(/(P+)(p+)?/) || [];\n const datePattern = matchResult[1];\n const timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n let dateTimeFormat;\n\n switch (datePattern) {\n case \"P\":\n dateTimeFormat = formatLong.dateTime({ width: \"short\" });\n break;\n case \"PP\":\n dateTimeFormat = formatLong.dateTime({ width: \"medium\" });\n break;\n case \"PPP\":\n dateTimeFormat = formatLong.dateTime({ width: \"long\" });\n break;\n case \"PPPP\":\n default:\n dateTimeFormat = formatLong.dateTime({ width: \"full\" });\n break;\n }\n\n return dateTimeFormat\n .replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong))\n .replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\n\nexport const longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter,\n};\n","const dayOfYearTokenRE = /^D+$/;\nconst weekYearTokenRE = /^Y+$/;\n\nconst throwTokens = [\"D\", \"DD\", \"YY\", \"YYYY\"];\n\nexport function isProtectedDayOfYearToken(token) {\n return dayOfYearTokenRE.test(token);\n}\n\nexport function isProtectedWeekYearToken(token) {\n return weekYearTokenRE.test(token);\n}\n\nexport function warnOrThrowProtectedError(token, format, input) {\n const _message = message(token, format, input);\n console.warn(_message);\n if (throwTokens.includes(token)) throw new RangeError(_message);\n}\n\nfunction message(token, format, input) {\n const subject = token[0] === \"Y\" ? \"years\" : \"days of the month\";\n return `Use \\`${token.toLowerCase()}\\` instead of \\`${token}\\` (in \\`${format}\\`) for formatting ${subject} to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;\n}\n","import { defaultLocale } from \"./_lib/defaultLocale.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\nimport { formatters } from \"./_lib/format/formatters.mjs\";\nimport { longFormatters } from \"./_lib/format/longFormatters.mjs\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.mjs\";\nimport { isValid } from \"./isValid.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { formatters, longFormatters };\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\nexport { format as formatDate };\n\n/**\n * The {@link format} function options.\n */\n\n/**\n * @name format\n * @alias formatDate\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)\n * and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nexport function format(date, formatStr, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const originalDate = toDate(date);\n\n if (!isValid(originalDate)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let parts = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp)\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return { isToken: false, value: \"'\" };\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return { isToken: false, value: cleanEscapedString(substring) };\n }\n\n if (formatters[firstCharacter]) {\n return { isToken: true, value: substring };\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return { isToken: false, value: substring };\n });\n\n // invoke localize preprocessor (only for french locales at the moment)\n if (locale.localize.preprocessor) {\n parts = locale.localize.preprocessor(originalDate, parts);\n }\n\n const formatterOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n return parts\n .map((part) => {\n if (!part.isToken) return part.value;\n\n const token = part.value;\n\n if (\n (!options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)) ||\n (!options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token))\n ) {\n warnOrThrowProtectedError(token, formatStr, String(date));\n }\n\n const formatter = formatters[token[0]];\n return formatter(originalDate, token, locale.localize, formatterOptions);\n })\n .join(\"\");\n}\n\nfunction cleanEscapedString(input) {\n const matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default format;\n","import { transpose } from \"../../transpose.mjs\";\nimport { constructFrom } from \"../../constructFrom.mjs\";\n\nconst TIMEZONE_UNIT_PRIORITY = 10;\n\nexport class Setter {\n subPriority = 0;\n\n validate(_utcDate, _options) {\n return true;\n }\n}\n\nexport class ValueSetter extends Setter {\n constructor(\n value,\n\n validateValue,\n\n setValue,\n\n priority,\n subPriority,\n ) {\n super();\n this.value = value;\n this.validateValue = validateValue;\n this.setValue = setValue;\n this.priority = priority;\n if (subPriority) {\n this.subPriority = subPriority;\n }\n }\n\n validate(date, options) {\n return this.validateValue(date, this.value, options);\n }\n\n set(date, flags, options) {\n return this.setValue(date, flags, this.value, options);\n }\n}\n\nexport class DateToSystemTimezoneSetter extends Setter {\n priority = TIMEZONE_UNIT_PRIORITY;\n subPriority = -1;\n set(date, flags) {\n if (flags.timestampIsSet) return date;\n return constructFrom(date, transpose(date, Date));\n }\n}\n","import { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name transpose\n * @category Generic Helpers\n * @summary Transpose the date to the given constructor.\n *\n * @description\n * The function transposes the date to the given constructor. It helps you\n * to transpose the date in the system time zone to say `UTCDate` or any other\n * date extension.\n *\n * @typeParam DateInputType - The input `Date` type derived from the passed argument.\n * @typeParam DateOutputType - The output `Date` type derived from the passed constructor.\n *\n * @param fromDate - The date to use values from\n * @param constructor - The date constructor to use\n *\n * @returns Date transposed to the given constructor\n *\n * @example\n * // Create July 10, 2022 00:00 in locale time zone\n * const date = new Date(2022, 6, 10)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0800 (Singapore Standard Time)'\n *\n * @example\n * // Transpose the date to July 10, 2022 00:00 in UTC\n * transpose(date, UTCDate)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0000 (Coordinated Universal Time)'\n */\nexport function transpose(fromDate, constructor) {\n const date =\n constructor instanceof Date\n ? constructFrom(constructor, 0)\n : new constructor(0);\n date.setFullYear(\n fromDate.getFullYear(),\n fromDate.getMonth(),\n fromDate.getDate(),\n );\n date.setHours(\n fromDate.getHours(),\n fromDate.getMinutes(),\n fromDate.getSeconds(),\n fromDate.getMilliseconds(),\n );\n return date;\n}\n\n// Fallback for modularized imports:\nexport default transpose;\n","import { ValueSetter } from \"./Setter.mjs\";\n\nexport class Parser {\n run(dateString, token, match, options) {\n const result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n\n return {\n setter: new ValueSetter(\n result.value,\n this.validate,\n this.set,\n this.priority,\n this.subPriority,\n ),\n rest: result.rest,\n };\n }\n\n validate(_utcDate, _value, _options) {\n return true;\n }\n}\n","export const numericPatterns = {\n month: /^(1[0-2]|0?\\d)/, // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/, // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/, // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/, // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/, // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/, // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/, // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/, // 0 to 12\n minute: /^[0-5]?\\d/, // 0 to 59\n second: /^[0-5]?\\d/, // 0 to 59\n\n singleDigit: /^\\d/, // 0 to 9\n twoDigits: /^\\d{1,2}/, // 0 to 99\n threeDigits: /^\\d{1,3}/, // 0 to 999\n fourDigits: /^\\d{1,4}/, // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/, // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/, // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/, // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/, // 0 to 9999, -0 to -9999\n};\n\nexport const timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/,\n};\n","import {\n millisecondsInHour,\n millisecondsInMinute,\n millisecondsInSecond,\n} from \"../../constants.mjs\";\nimport { numericPatterns } from \"./constants.mjs\";\n\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest,\n };\n}\n\nexport function parseNumericPattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseTimezonePattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === \"Z\") {\n return {\n value: 0,\n rest: dateString.slice(1),\n };\n }\n\n const sign = matchResult[1] === \"+\" ? 1 : -1;\n const hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n const minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n const seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n\n return {\n value:\n sign *\n (hours * millisecondsInHour +\n minutes * millisecondsInMinute +\n seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\n\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^-?\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case \"morning\":\n return 4;\n case \"evening\":\n return 17;\n case \"pm\":\n case \"noon\":\n case \"afternoon\":\n return 12;\n case \"am\":\n case \"midnight\":\n case \"night\":\n default:\n return 0;\n }\n}\n\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n const isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n const absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n\n let result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n const rangeEnd = absCurrentYear + 50;\n const rangeEndCentury = Math.trunc(rangeEnd / 100) * 100;\n const isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.mjs\";\n\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst DAYS_IN_MONTH_LEAP_YEAR = [\n 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,\n];\n\n// Day of the month\nexport class DateParser extends Parser {\n priority = 90;\n subPriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"d\":\n return parseNumericPattern(numericPatterns.date, dateString);\n case \"do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n const month = date.getMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n\n set(date, _flags, value) {\n date.setDate(value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { addDays } from \"./addDays.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link setDay} function options.\n */\n\n/**\n * @name setDay\n * @category Weekday Helpers\n * @summary Set the day of the week to the given date.\n *\n * @description\n * Set the day of the week to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param day - The day of the week of the new date\n * @param options - An object with options.\n *\n * @returns The new date with the day of the week set\n *\n * @example\n * // Set week day to Sunday, with the default weekStartsOn of Sunday:\n * const result = setDay(new Date(2014, 8, 1), 0)\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Set week day to Sunday, with a weekStartsOn of Monday:\n * const result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setDay(date, day, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date);\n const currentDay = _date.getDay();\n\n const remainder = day % 7;\n const dayIndex = (remainder + 7) % 7;\n\n const delta = 7 - weekStartsOn;\n const diff =\n day < 0 || day > 6\n ? day - ((currentDay + delta) % 7)\n : ((dayIndex + delta) % 7) - ((currentDay + delta) % 7);\n return addDays(_date, diff);\n}\n\n// Fallback for modularized imports:\nexport default setDay;\n","import { addDays } from \"./addDays.mjs\";\nimport { getISODay } from \"./getISODay.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setISODay\n * @category Weekday Helpers\n * @summary Set the day of the ISO week to the given date.\n *\n * @description\n * Set the day of the ISO week to the given date.\n * ISO week starts with Monday.\n * 7 is the index of Sunday, 1 is the index of Monday etc.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param day - The day of the ISO week of the new date\n *\n * @returns The new date with the day of the ISO week set\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * const result = setISODay(new Date(2014, 8, 1), 7)\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setISODay(date, day) {\n const _date = toDate(date);\n const currentDay = getISODay(_date);\n const diff = day - currentDay;\n return addDays(_date, diff);\n}\n\n// Fallback for modularized imports:\nexport default setISODay;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISODay\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The day of ISO week\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * const result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\nexport function getISODay(date) {\n const _date = toDate(date);\n let day = _date.getDay();\n\n if (day === 0) {\n day = 7;\n }\n\n return day;\n}\n\n// Fallback for modularized imports:\nexport default getISODay;\n","import { EraParser } from \"./parsers/EraParser.mjs\";\nimport { YearParser } from \"./parsers/YearParser.mjs\";\nimport { LocalWeekYearParser } from \"./parsers/LocalWeekYearParser.mjs\";\nimport { ISOWeekYearParser } from \"./parsers/ISOWeekYearParser.mjs\";\nimport { ExtendedYearParser } from \"./parsers/ExtendedYearParser.mjs\";\nimport { QuarterParser } from \"./parsers/QuarterParser.mjs\";\nimport { StandAloneQuarterParser } from \"./parsers/StandAloneQuarterParser.mjs\";\nimport { MonthParser } from \"./parsers/MonthParser.mjs\";\nimport { StandAloneMonthParser } from \"./parsers/StandAloneMonthParser.mjs\";\nimport { LocalWeekParser } from \"./parsers/LocalWeekParser.mjs\";\nimport { ISOWeekParser } from \"./parsers/ISOWeekParser.mjs\";\nimport { DateParser } from \"./parsers/DateParser.mjs\";\nimport { DayOfYearParser } from \"./parsers/DayOfYearParser.mjs\";\nimport { DayParser } from \"./parsers/DayParser.mjs\";\nimport { LocalDayParser } from \"./parsers/LocalDayParser.mjs\";\nimport { StandAloneLocalDayParser } from \"./parsers/StandAloneLocalDayParser.mjs\";\nimport { ISODayParser } from \"./parsers/ISODayParser.mjs\";\nimport { AMPMParser } from \"./parsers/AMPMParser.mjs\";\nimport { AMPMMidnightParser } from \"./parsers/AMPMMidnightParser.mjs\";\nimport { DayPeriodParser } from \"./parsers/DayPeriodParser.mjs\";\nimport { Hour1to12Parser } from \"./parsers/Hour1to12Parser.mjs\";\nimport { Hour0to23Parser } from \"./parsers/Hour0to23Parser.mjs\";\nimport { Hour0To11Parser } from \"./parsers/Hour0To11Parser.mjs\";\nimport { Hour1To24Parser } from \"./parsers/Hour1To24Parser.mjs\";\nimport { MinuteParser } from \"./parsers/MinuteParser.mjs\";\nimport { SecondParser } from \"./parsers/SecondParser.mjs\";\nimport { FractionOfSecondParser } from \"./parsers/FractionOfSecondParser.mjs\";\nimport { ISOTimezoneWithZParser } from \"./parsers/ISOTimezoneWithZParser.mjs\";\nimport { ISOTimezoneParser } from \"./parsers/ISOTimezoneParser.mjs\";\nimport { TimestampSecondsParser } from \"./parsers/TimestampSecondsParser.mjs\";\nimport { TimestampMillisecondsParser } from \"./parsers/TimestampMillisecondsParser.mjs\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- It's ok, we want any here\nexport const parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser(),\n};\n","import { Parser } from \"../Parser.mjs\";\n\nexport class EraParser extends Parser {\n priority = 140;\n\n parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return (\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n\n // A, B\n case \"GGGGG\":\n return match.era(dateString, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return (\n match.era(dateString, { width: \"wide\" }) ||\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n }\n }\n\n set(date, flags, value) {\n flags.era = value;\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"R\", \"u\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.mjs\";\n\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport class YearParser extends Parser {\n priority = 130;\n incompatibleTokens = [\"Y\", \"R\", \"u\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"yy\",\n });\n\n switch (token) {\n case \"y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value) {\n const currentYear = date.getFullYear();\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(normalizedTwoDigitYear, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { getWeekYear } from \"../../../getWeekYear.mjs\";\nimport { startOfWeek } from \"../../../startOfWeek.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.mjs\";\n\n// Local week-numbering year\nexport class LocalWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"YY\",\n });\n\n switch (token) {\n case \"Y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"Yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value, options) {\n const currentYear = getWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(\n normalizedTwoDigitYear,\n 0,\n options.firstWeekContainsDate,\n );\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, options.firstWeekContainsDate);\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { startOfISOWeek } from \"../../../startOfISOWeek.mjs\";\nimport { constructFrom } from \"../../../constructFrom.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigitsSigned } from \"../utils.mjs\";\n\n// ISO week-numbering year\nexport class ISOWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"R\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n const firstWeekOfYear = constructFrom(date, 0);\n firstWeekOfYear.setFullYear(value, 0, 4);\n firstWeekOfYear.setHours(0, 0, 0, 0);\n return startOfISOWeek(firstWeekOfYear);\n }\n\n incompatibleTokens = [\n \"G\",\n \"y\",\n \"Y\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { parseNDigitsSigned } from \"../utils.mjs\";\n\nexport class ExtendedYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"u\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"G\", \"y\", \"Y\", \"R\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { parseNDigits } from \"../utils.mjs\";\n\nexport class QuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n case \"QQ\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { parseNDigits } from \"../utils.mjs\";\n\nexport class StandAloneQuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n case \"qq\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class MonthParser extends Parser {\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"L\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"M\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"MM\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // J, F, ..., D\n case \"MMMMM\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class StandAloneMonthParser extends Parser {\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"LL\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // J, F, ..., D\n case \"LLLLL\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setWeek } from \"../../../setWeek.mjs\";\nimport { startOfWeek } from \"../../../startOfWeek.mjs\";\nimport { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\n// Local week of year\nexport class LocalWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"w\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"wo\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value, options) {\n return startOfWeek(setWeek(date, value, options), options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { getWeek } from \"./getWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * The {@link setWeek} function options.\n */\n\n/**\n * @name setWeek\n * @category Week Helpers\n * @summary Set the local week to the given date.\n *\n * @description\n * Set the local week to the given date, saving the weekday number.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param week - The week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the local week set\n *\n * @example\n * // Set the 1st week to 2 January 2005 with default options:\n * const result = setWeek(new Date(2005, 0, 2), 1)\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // Set the 1st week to 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January:\n * const result = setWeek(new Date(2005, 0, 2), 1, {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Sun Jan 4 2004 00:00:00\n */\nexport function setWeek(date, week, options) {\n const _date = toDate(date);\n const diff = getWeek(_date, options) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setWeek;\n","import { setISOWeek } from \"../../../setISOWeek.mjs\";\nimport { startOfISOWeek } from \"../../../startOfISOWeek.mjs\";\nimport { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\n// ISO week of year\nexport class ISOWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"I\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"Io\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value) {\n return startOfISOWeek(setISOWeek(date, value));\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getISOWeek } from \"./getISOWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setISOWeek\n * @category ISO Week Helpers\n * @summary Set the ISO week to the given date.\n *\n * @description\n * Set the ISO week to the given date, saving the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param week - The ISO week of the new date\n *\n * @returns The new date with the ISO week set\n *\n * @example\n * // Set the 53rd ISO week to 7 August 2004:\n * const result = setISOWeek(new Date(2004, 7, 7), 53)\n * //=> Sat Jan 01 2005 00:00:00\n */\nexport function setISOWeek(date, week) {\n const _date = toDate(date);\n const diff = getISOWeek(_date) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setISOWeek;\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.mjs\";\n\nexport class DayOfYearParser extends Parser {\n priority = 90;\n\n subpriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"D\":\n case \"DD\":\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case \"Do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n\n set(date, _flags, value) {\n date.setMonth(0, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"E\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setDay } from \"../../../setDay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\n\n// Day of week\nexport class DayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"EEEEE\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"EEEE\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"D\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { setDay } from \"../../../setDay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\n// Local day of week\nexport class LocalDayParser extends Parser {\n priority = 90;\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"e\":\n case \"ee\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"eo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"eee\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"eeeee\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"eeee\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setDay } from \"../../../setDay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\n// Stand-alone local day of week\nexport class StandAloneLocalDayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"c\":\n case \"cc\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"co\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"ccc\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // T\n case \"ccccc\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return (\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // Tuesday\n case \"cccc\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"e\",\n \"t\",\n \"T\",\n ];\n}\n","import { setISODay } from \"../../../setISODay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\n// ISO day of week\nexport class ISODayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n\n switch (token) {\n // 2\n case \"i\":\n case \"ii\": // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case \"io\":\n return match.ordinalNumber(dateString, { unit: \"day\" });\n // Tue\n case \"iii\":\n return mapValue(\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // T\n case \"iiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tu\n case \"iiiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tuesday\n case \"iiii\":\n default:\n return mapValue(\n match.day(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n\n set(date, _flags, value) {\n date = setISODay(date, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"E\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { dayPeriodEnumToHours } from \"../utils.mjs\";\n\nexport class AMPMParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"a\":\n case \"aa\":\n case \"aaa\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"aaaaa\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"b\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { dayPeriodEnumToHours } from \"../utils.mjs\";\n\nexport class AMPMMidnightParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"b\":\n case \"bb\":\n case \"bbb\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"bbbbb\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { dayPeriodEnumToHours } from \"../utils.mjs\";\n\n// in the morning, in the afternoon, in the evening, at night\nexport class DayPeriodParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"BBBBB\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour1to12Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"h\":\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case \"ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setHours(0, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"H\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour0to23Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"H\":\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case \"Ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n\n set(date, _flags, value) {\n date.setHours(value, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour0To11Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"K\":\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case \"Ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"h\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour1To24Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"k\":\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case \"ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n\n set(date, _flags, value) {\n const hours = value <= 24 ? value % 24 : value;\n date.setHours(hours, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"H\", \"K\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class MinuteParser extends Parser {\n priority = 60;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"m\":\n return parseNumericPattern(numericPatterns.minute, dateString);\n case \"mo\":\n return match.ordinalNumber(dateString, { unit: \"minute\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setMinutes(value, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class SecondParser extends Parser {\n priority = 50;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"s\":\n return parseNumericPattern(numericPatterns.second, dateString);\n case \"so\":\n return match.ordinalNumber(dateString, { unit: \"second\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setSeconds(value, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\nexport class FractionOfSecondParser extends Parser {\n priority = 30;\n\n parse(dateString, token) {\n const valueCallback = (value) =>\n Math.trunc(value * Math.pow(10, -token.length + 3));\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n\n set(date, _flags, value) {\n date.setMilliseconds(value);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.mjs\";\nimport { timezonePatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseTimezonePattern } from \"../utils.mjs\";\n\n// Timezone (ISO-8601. +00:00 is `'Z'`)\nexport class ISOTimezoneWithZParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"X\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"XX\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"XXXX\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"XXXXX\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"XXX\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"x\"];\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.mjs\";\nimport { timezonePatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseTimezonePattern } from \"../utils.mjs\";\n\n// Timezone (ISO-8601)\nexport class ISOTimezoneParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"x\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"xx\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"xxxx\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"xxxxx\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"xxx\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"X\"];\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseAnyDigitsSigned } from \"../utils.mjs\";\n\nexport class TimestampSecondsParser extends Parser {\n priority = 40;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value * 1000), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseAnyDigitsSigned } from \"../utils.mjs\";\n\nexport class TimestampMillisecondsParser extends Parser {\n priority = 20;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { getDefaultOptions } from \"./getDefaultOptions.mjs\";\nimport { defaultLocale } from \"./_lib/defaultLocale.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { longFormatters } from \"./_lib/format/longFormatters.mjs\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.mjs\";\nimport { parsers } from \"./parse/_lib/parsers.mjs\";\nimport { DateToSystemTimezoneSetter } from \"./parse/_lib/Setter.mjs\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { longFormatters, parsers };\n\n/**\n * The {@link parse} function options.\n */\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\n\nconst notWhitespaceRegExp = /\\S/;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear)\n * and [setWeekYear](https://date-fns.org/docs/setWeekYear)).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateStr - The string to parse\n * @param formatStr - The string of tokens\n * @param referenceDate - defines values missing from the parsed dateString\n * @param options - An object with options.\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @returns The parsed date\n *\n * @throws `options.locale` must contain `match` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport function parse(dateStr, formatStr, referenceDate, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n if (formatStr === \"\") {\n if (dateStr === \"\") {\n return toDate(referenceDate);\n } else {\n return constructFrom(referenceDate, NaN);\n }\n }\n\n const subFnOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n // If timezone isn't specified, it will be set to the system timezone\n const setters = [new DateToSystemTimezoneSetter()];\n\n const tokens = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp);\n\n const usedTokens = [];\n\n for (let token of tokens) {\n if (\n !options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n if (\n !options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n\n const firstCharacter = token[0];\n const parser = parsers[firstCharacter];\n if (parser) {\n const { incompatibleTokens } = parser;\n if (Array.isArray(incompatibleTokens)) {\n const incompatibleToken = usedTokens.find(\n (usedToken) =>\n incompatibleTokens.includes(usedToken.token) ||\n usedToken.token === firstCharacter,\n );\n if (incompatibleToken) {\n throw new RangeError(\n `The format string mustn't contain \\`${incompatibleToken.fullToken}\\` and \\`${token}\\` at the same time`,\n );\n }\n } else if (parser.incompatibleTokens === \"*\" && usedTokens.length > 0) {\n throw new RangeError(\n `The format string mustn't contain \\`${token}\\` and any other token at the same time`,\n );\n }\n\n usedTokens.push({ token: firstCharacter, fullToken: token });\n\n const parseResult = parser.run(\n dateStr,\n token,\n locale.match,\n subFnOptions,\n );\n\n if (!parseResult) {\n return constructFrom(referenceDate, NaN);\n }\n\n setters.push(parseResult.setter);\n\n dateStr = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateStr.indexOf(token) === 0) {\n dateStr = dateStr.slice(token.length);\n } else {\n return constructFrom(referenceDate, NaN);\n }\n }\n }\n\n // Check if the remaining input contains something other than whitespace\n if (dateStr.length > 0 && notWhitespaceRegExp.test(dateStr)) {\n return constructFrom(referenceDate, NaN);\n }\n\n const uniquePrioritySetters = setters\n .map((setter) => setter.priority)\n .sort((a, b) => b - a)\n .filter((priority, index, array) => array.indexOf(priority) === index)\n .map((priority) =>\n setters\n .filter((setter) => setter.priority === priority)\n .sort((a, b) => b.subPriority - a.subPriority),\n )\n .map((setterArray) => setterArray[0]);\n\n let date = toDate(referenceDate);\n\n if (isNaN(date.getTime())) {\n return constructFrom(referenceDate, NaN);\n }\n\n const flags = {};\n for (const setter of uniquePrioritySetters) {\n if (!setter.validate(date, subFnOptions)) {\n return constructFrom(referenceDate, NaN);\n }\n\n const result = setter.set(date, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n date = result[0];\n Object.assign(flags, result[1]);\n // Result is date\n } else {\n date = result;\n }\n }\n\n return constructFrom(referenceDate, date);\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default parse;\n","import { getDefaultOptions as getInternalDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * @name getDefaultOptions\n * @category Common Helpers\n * @summary Get default options.\n * @pure false\n *\n * @description\n * Returns an object that contains defaults for\n * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate`\n * arguments for all functions.\n *\n * You can change these with [setDefaultOptions](https://date-fns.org/docs/setDefaultOptions).\n *\n * @returns The default options\n *\n * @example\n * const result = getDefaultOptions()\n * //=> {}\n *\n * @example\n * setDefaultOptions({ weekStarsOn: 1, firstWeekContainsDate: 4 })\n * const result = getDefaultOptions()\n * //=> { weekStarsOn: 1, firstWeekContainsDate: 4 }\n */\nexport function getDefaultOptions() {\n return Object.assign({}, getInternalDefaultOptions());\n}\n\n// Fallback for modularized imports:\nexport default getDefaultOptions;\n","import Resource from '../resource';\nimport { format, parse, isValid } from 'date-fns';\n\nexport default class StoreHour extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'store-hour', options);\n }\n\n get day() {\n return this.getAttribute('day');\n }\n\n get isClosed() {\n return this.getAttribute('start') === null && this.getAttribute('end') === null;\n }\n\n get is24Hours() {\n const start = this.startDateInstance;\n const end = this.endDateInstance;\n const diff = Math.abs(start - end);\n const hours = Math.floor(diff / 1000 / 60) / 60;\n\n return hours > 23;\n }\n\n get startDateInstance() {\n if (!this.hasAttribute('start')) {\n return null;\n }\n\n const start = this.getAttribute('start');\n const includesSeconds = start.split(':').length === 3;\n const format = includesSeconds ? 'HH:mm:ss' : 'HH:mm';\n\n return parse(start, format, new Date());\n }\n\n get endDateInstance() {\n if (!this.hasAttribute('end')) {\n return null;\n }\n\n const end = this.getAttribute('end');\n const includesSeconds = end.split(':').length === 3;\n const format = includesSeconds ? 'HH:mm:ss' : 'HH:mm';\n\n return parse(end, format, new Date());\n }\n\n get humanReadableHoursRange() {\n if (!isValid(this.startDateInstance) || !isValid(this.endDateInstance)) {\n return `${this.start} - ${this.end}`;\n }\n\n return `${format(this.startDateInstance, 'p')} - ${format(this.endDateInstance, 'p')}`;\n }\n\n get humanReadableHours() {\n if (this.isClosed) {\n return 'Closed';\n }\n\n if (this.is24Hours) {\n return '24 Hours';\n }\n\n return this.humanReadableHoursRange;\n }\n\n // remove default resource methods\n create() {\n throw new Error('There is no create() method store location!');\n }\n\n // remove default resource methods\n update() {\n throw new Error('There is no update() method store location!');\n }\n\n // remove default resource methods\n destroy() {\n throw new Error('There is no destroy() method store location!');\n }\n\n // remove default resource methods\n reload() {\n throw new Error('There is no reload() method store location!');\n }\n}\n","import Resource from '../resource';\nimport StoreHour from './store-hour';\nimport { Collection } from '@fleetbase/sdk';\nimport { format } from 'date-fns';\n\nexport default class StoreLocation extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'store-location', options);\n }\n\n get latitude() {\n return this.getAttribute('place.location.coordinates.1');\n }\n\n get longitude() {\n return this.getAttribute('place.location.coordinates.0');\n }\n\n get hours() {\n return new Collection(this.getAttribute('hours').map((attributes) => new StoreHour(attributes)));\n }\n\n get isAlwaysOpen() {\n return this.hours.every((hour) => hour?.is24Hours);\n }\n\n get today() {\n const today = format(new Date(), 'EEEE');\n\n return this.schedule[today];\n }\n\n get schedule() {\n const schedule = {};\n const week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];\n\n for (let i = 0; i < week.length; i++) {\n const day = week[i];\n\n schedule[day] = new Collection();\n }\n\n for (let i = 0; i < this.hours.length; i++) {\n const hour = this.hours.objectAt(i);\n\n schedule[hour.day].pushObject(hour);\n }\n\n return schedule;\n }\n\n // remove default resource methods\n create() {\n throw new Error('There is no create() method store location!');\n }\n\n // remove default resource methods\n update() {\n throw new Error('There is no update() method store location!');\n }\n\n // remove default resource methods\n destroy() {\n throw new Error('There is no destroy() method store location!');\n }\n}\n","import Resource from '../resource';\nimport StoreLocation from './store-location';\nimport PaymentGateway from './payment-gateway';\nimport Review from './review';\nimport { Collection, Place } from '@fleetbase/sdk';\n\nexport default class Store extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'store', options);\n }\n\n getReviews(params = {}) {\n return this.adapter.get('reviews', { store: this.id, ...params }).then((reviews) => {\n return new Collection(reviews.map((attributes) => new Review(attributes, this.adapter)));\n });\n }\n\n getLocations(params = {}) {\n return this.adapter.get('locations', { store: this.id, ...params }).then((storeLocations) => {\n return new Collection(\n storeLocations.map((attributes) => {\n if (attributes.place) {\n attributes.place = new Place(attributes.place);\n }\n\n return new StoreLocation(attributes, this.adapter);\n })\n );\n });\n }\n\n getLocation(id) {\n return this.adapter.get(`locations/${id}`, { store: this.id }).then((attributes) => {\n return new StoreLocation(attributes, this.adapter);\n });\n }\n\n getPaymentGateways(params = {}) {\n return this.adapter.get('gateways', params).then((gateways) => {\n return new Collection(\n gateways.map((attributes) => {\n return new PaymentGateway(attributes, this.adapter);\n })\n );\n });\n }\n\n getPaymentGateway(id) {\n return this.adapter.get(`gateways/${id}`).then((attributes) => {\n return new PaymentGateway(attributes, this.adapter);\n });\n }\n}\n","import { Adapter, Collection, ServiceQuote } from '@fleetbase/sdk';\nimport StorefrontStore from '../store';\nimport { formatCurrency, isEmpty } from '../utils';\n\nconst { isArray } = Array;\n\nexport default class DeliveryServiceQuote extends ServiceQuote {\n constructor(attributes = {}, adapter, options = {}) {\n if (attributes instanceof Adapter) {\n return super({}, attributes, 'service-quote', options);\n }\n\n super(attributes, adapter, 'service-quote', options);\n }\n\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new StorefrontStore(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions,\n });\n\n return this;\n }\n\n get formattedAmount() {\n const { amount, currency } = this.getAttributes(['amount', 'currency']);\n\n if (isEmpty(amount) || isEmpty(currency)) {\n return null;\n }\n\n return formatCurrency(amount / 100, currency);\n }\n\n async fetchServiceQuotesFromCart(origin, destination, cart, config = 'storefront', all = false) {\n if (origin?.id) {\n origin = origin.id;\n }\n if (destination?.id) {\n destination = destination.id;\n }\n if (cart?.id) {\n cart = cart.id;\n }\n\n try {\n const serviceQuotes = await this.adapter.get('service-quotes/from-cart', {\n origin,\n destination,\n cart,\n config,\n all,\n });\n\n if (isArray(serviceQuotes)) {\n return new Collection(serviceQuotes.map((serviceQuote) => new DeliveryServiceQuote(serviceQuote, this.adapter)));\n }\n\n return new DeliveryServiceQuote(serviceQuotes, this.adapter);\n } catch (error) {\n console.error('Error fetching service quotes:', error);\n throw error;\n }\n }\n\n static async getFromCart(adapter, origin, destination, cart, config = 'storefront', all = false) {\n const quote = new DeliveryServiceQuote(adapter);\n return quote.fetchServiceQuotesFromCart(origin, destination, cart, config, all);\n }\n}\n","import { Order, StoreActions, isResource } from '@fleetbase/sdk';\nimport Resource from '../resource';\n\nconst checkoutActions = new StoreActions({\n create: undefined,\n findAll: undefined,\n query: undefined,\n queryRecord: undefined,\n\n initialize: function (customer, cart, serviceQuote, gateway, orderOptions = {}, options = {}) {\n if (isResource(customer)) {\n customer = customer.id;\n }\n\n if (isResource(cart)) {\n cart = cart.id;\n }\n\n if (isResource(serviceQuote)) {\n serviceQuote = serviceQuote.id;\n }\n\n if (isResource(gateway)) {\n gateway = gateway.getAttribute('code');\n }\n\n return this.adapter.get(`${this.namespace}/before`, { ...orderOptions, customer, cart, serviceQuote, gateway }, options);\n },\n\n captureOrder: function (token, transactionDetails = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/capture`, { token, transactionDetails }, options).then((orderJson) => new Order(orderJson));\n },\n\n createStripeSetupIntent: function (customer, options = {}) {\n if (isResource(customer)) {\n customer = customer.id;\n }\n\n return this.adapter.post(`${this.namespace}/stripe-setup-intent`, { customer }, options);\n },\n\n updateStripePaymentIntent: function (paymentIntent, customer, cart, serviceQuote, orderOptions = {}, options = {}) {\n if (isResource(customer)) {\n customer = customer.id;\n }\n\n if (isResource(cart)) {\n cart = cart.id;\n }\n\n if (isResource(serviceQuote)) {\n serviceQuote = serviceQuote.id;\n }\n\n return this.adapter.put(`${this.namespace}/stripe-update-payment-intent`, { paymentIntent, customer, cart, serviceQuote, ...orderOptions }, options);\n },\n});\n\nexport default class Checkout extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'checkout', options);\n }\n\n initialize() {\n return this.store.initialize(...arguments);\n }\n\n captureOrder() {\n return this.store.captureOrder(...arguments);\n }\n}\n\nexport { checkoutActions };\n","import { Product, Category, Customer, Cart, DeliveryServiceQuote, Store, StoreLocation, StoreHour, Checkout, Review } from './resources';\nimport { BrowserAdapter, NodeAdapter, pluralize, singularize } from '@fleetbase/sdk';\n\nexport const resources = {\n Product,\n Category,\n Customer,\n Cart,\n DeliveryServiceQuote,\n Store,\n StoreLocation,\n StoreHour,\n Checkout,\n Review,\n};\n\nconst adapters = {\n BrowserAdapter,\n NodeAdapter,\n};\n\nfunction toStudlyCase(str) {\n return str\n .split(/[^a-zA-Z0-9]/) // Split by non-alphanumeric characters\n .filter(Boolean) // Remove empty elements\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1)) // Capitalize the first letter of each word\n .join(''); // Join the words together without spaces\n}\n\nclass Resolver {\n constructor() {\n this.resources = resources;\n this.adapters = adapters;\n\n return this.lookup(...arguments);\n }\n\n lookup(type, className) {\n const key = pluralize(type);\n const classKey = toStudlyCase(className);\n const params = [...arguments].slice(2);\n\n if (!this[key]) {\n throw new Error('Attempted to resolve invalid type');\n }\n\n if (!this[key][classKey]) {\n throw new Error(`No ${singularize(type)} named ${className} (${classKey}) to resolve`);\n }\n\n return new this[key][classKey](...params);\n }\n}\n\nconst lookup = function () {\n return new Resolver(...arguments);\n};\n\nexport { Resolver, lookup };\nexport default Resolver;","import { Store, classify, extendStoreActions } from '@fleetbase/sdk';\nimport { lookup } from './resolver';\n\nexport default class StorefrontStore extends Store {\n constructor() {\n super(...arguments);\n }\n\n extendActions(actions = []) {\n return extendStoreActions(this, actions);\n }\n\n serialize(json) {\n return lookup('resource', classify(this.resource), json, this.adapter);\n }\n}\n"],"names":["StorefrontResource","_Resource","_classCallCheck","_callSuper","this","arguments","_inherits","Resource","_createClass","key","value","adapter","_this$options","store","StorefrontStore","resource","onAfterFetch","syncAttributes","bind","actions","options","reviewActions","StoreActions","count","storeId","length","undefined","params","get","concat","namespace","Review","attributes","isPhone","phone","test","formatCurrency","amount","currency","currencyDisplay","Intl","NumberFormat","style","format","isEmpty","obj","none","size","objectType","_typeof","Product","getAttribute","_this$getAttributes","getAttributes","price","sale_price","isOnSale","_this","id","then","reviews","Collection","map","Category","category","products","customerActions","login","identity","password","post","Error","_objectSpread","afterFetch","verifyCode","code","requestCreationCode","mode","create","retrieve","findRecord","Customer","_syncDevice","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","wrap","_context","prev","next","abrupt","setHeaders","stop","_x","apply","_performAuthorizedRequest","_callee2","endpoint","method","headers","response","_args2","_context2","toLowerCase","sent","t0","console","error","_x2","_getSavedPlaces","_callee3","places","_this2","_context3","performAuthorizedRequest","Place","_getOrderHistory","_callee4","orders","_this3","_args4","_context4","Order","isArray","Array","cartActions","findAll","query","queryRecord","add","productId","quantity","data","update","cartItemId","put","remove","empty","Cart","destroy","subtotal","contents","forEach","cartItem","findIndex","product_id","PaymentGateway","type","toDate","argument","argStr","Object","prototype","toString","call","Date","constructor","NaN","constructFrom","date","addDays","_date","isNaN","setDate","getDate","defaultOptions","getDefaultOptions","startOfWeek","weekStartsOn","locale","day","getDay","diff","setHours","startOfISOWeek","getISOWeekYear","year","getFullYear","fourthOfJanuaryOfNextYear","setFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","getTime","startOfDay","getTimezoneOffsetInMilliseconds","utcDate","UTC","getMonth","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","isValid","Number","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","args","width","String","defaultWidth","formats","formatLong","full","long","medium","short","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","valuesArray","context","formattingValues","defaultFormattingWidth","values","argumentCallback","buildMatchFn","string","matchPattern","matchPatterns","defaultMatchWidth","matchResult","match","matchedString","parsePatterns","defaultParseWidth","array","predicate","pattern","object","hasOwnProperty","findKey","valueCallback","rest","slice","enUS","formatDistance","result","tokenValue","replace","addSuffix","comparison","formatRelative","_baseDate","_options","localize","ordinalNumber","dirtyNumber","number","rem100","era","narrow","abbreviated","wide","quarter","month","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","parsePattern","parseInt","parseResult","any","index","firstWeekContainsDate","getDayOfYear","dateLeft","dateRight","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","Math","round","differenceInCalendarDays","cleanDate","startOfYear","getISOWeek","fourthOfJanuary","startOfISOWeekYear","getWeekYear","firstWeekOfNextYear","firstWeekOfThisYear","getWeek","firstWeek","startOfWeekYear","addLeadingZeros","targetLength","abs","padStart","lightFormatters","y","signedYear","M","d","a","dayPeriodEnumValue","toUpperCase","h","H","m","s","S","numberOfDigits","milliseconds","trunc","pow","dayPeriodEnum","formatters","G","unit","Y","signedWeekYear","weekYear","R","u","Q","ceil","q","L","w","week","I","isoWeek","D","dayOfYear","E","dayOfWeek","e","localDayOfWeek","c","i","isoDayOfWeek","b","hours","B","K","k","X","_localize","timezoneOffset","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","x","O","formatTimezoneShort","z","t","T","offset","delimiter","sign","absOffset","minutes","dateLongFormatter","timeLongFormatter","longFormatters","p","P","dateTimeLongFormatter","datePattern","timePattern","dateTimeFormat","dayOfYearTokenRE","weekYearTokenRE","throwTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","warnOrThrowProtectedError","input","_message","subject","message","warn","includes","RangeError","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","formatStr","defaultLocale","originalDate","parts","substring","firstCharacter","longFormatter","join","isToken","cleanEscapedString","preprocessor","formatterOptions","part","formatter","matched","Setter","subPriority","validate","_utcDate","ValueSetter","validateValue","setValue","priority","super","set","flags","DateToSystemTimezoneSetter","timestampIsSet","fromDate","transpose","Parser","run","dateString","parse","setter","_value","numericPatterns","timezonePatterns","mapValue","parseFnResult","mapFn","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","n","RegExp","parseNDigitsSigned","dayPeriodEnumToHours","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","isLeapYearIndex","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","setDay","currentDay","delta","setISODay","getISODay","parsers","incompatibleTokens","isTwoDigitYear","normalizedTwoDigitYear","_flags","firstWeekOfYear","setMonth","setWeek","setISOWeek","isLeapYear","subpriority","wholeWeekDays","floor","isPM","setMinutes","setSeconds","setMilliseconds","notWhitespaceRegExp","dateStr","referenceDate","assign","getInternalDefaultOptions","subFnOptions","setters","tokens","usedTokens","parser","incompatibleToken","find","usedToken","fullToken","push","indexOf","uniquePrioritySetters","sort","filter","setterArray","StoreHour","start","startDateInstance","end","endDateInstance","hasAttribute","includesSeconds","split","isClosed","is24Hours","humanReadableHoursRange","StoreLocation","every","hour","schedule","objectAt","pushObject","Store","storeLocations","place","_this4","gateways","_this5","DeliveryServiceQuote","_ServiceQuote","Adapter","_possibleConstructorReturn","ServiceQuote","_fetchServiceQuotesFromCart","origin","destination","cart","_origin","_destination","_cart","config","all","serviceQuotes","_args","serviceQuote","_x3","_getFromCart","quote","fetchServiceQuotesFromCart","_x4","_x5","_x6","_x7","checkoutActions","initialize","customer","gateway","orderOptions","isResource","captureOrder","transactionDetails","orderJson","createStripeSetupIntent","updateStripePaymentIntent","paymentIntent","Checkout","_this$store","_this$store2","resources","adapters","BrowserAdapter","NodeAdapter","toStudlyCase","str","Boolean","word","charAt","Resolver","lookup","className","pluralize","classKey","singularize","_construct","_toConsumableArray","_Store","extendStoreActions","json","classify"],"mappings":"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","x_google_ignoreList":[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89]} \ No newline at end of file diff --git a/dist/cjs/storefront.cjs b/dist/cjs/storefront.cjs new file mode 100644 index 0000000..cb74dac --- /dev/null +++ b/dist/cjs/storefront.cjs @@ -0,0 +1,930 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +require('countries-list'); +var dateFns = require('date-fns'); + +function t(t,e){this.v=t,this.k=e;}function e(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:true}:{done:false,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=true,s=false;return {s:function(){n=n.call(t);},n:function(){var t=n.next();return a=t.done,t},e:function(t){s=true,o=t;},f:function(){try{a||null==n.return||n.return();}finally{if(s)throw o}}}}function g(t,e,n){return (e=j(e))in t?Object.defineProperty(t,e,{value:n,enumerable:true,configurable:true,writable:true}):t[e]=n,t}function y(t){return y=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},y(t)}function b(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:true,configurable:true}}),Object.defineProperty(t,"prototype",{writable:false}),e&&O(t,e);}function m(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));}catch(t){}return (m=function(){return !!t})()}function w(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}function k(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function E(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r);}return n}function A(t){for(var e=1;e=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var u=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(u&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),_(n),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;_(n);}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:L(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),g}},e}function O(t,e){return O=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},O(t,e)}function R(t,e){return n(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,o,a,s=[],u=true,c=false;try{if(o=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;u=!1;}else for(;!(u=(r=o.call(n)).done)&&(s.push(r.value),s.length!==e);u=!0);}catch(t){c=true,i=t;}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw i}}return s}}(t,e)||_(t,e)||k()}function S(t){return function(t){if(Array.isArray(t))return e(t)}(t)||w(t)||_(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function j(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return ("string"===e?String:Number)(t)}(t,"string");return "symbol"==typeof e?e:e+""}function T(t){return T="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},T(t)}function _(t,n){if(t){if("string"==typeof t)return e(t,n);var r={}.toString.call(t).slice(8,-1);return "Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?e(t,n):void 0}}function P(t){return function(){return new L(t.apply(this,arguments))}}function L(e){var n,r;function i(n,r){try{var a=e[n](r),s=a.value,u=s instanceof t;Promise.resolve(u?s.v:s).then((function(t){if(u){var r="return"===n?"return":"next";if(!s.k||t.done)return i(r,t);t=e[r](t).value;}o(a.done?"return":"normal",t);}),(function(t){i("throw",t);}));}catch(t){o("throw",t);}}function o(t,e){switch(t){case "return":n.resolve({value:e,done:true});break;case "throw":n.reject(e);break;default:n.resolve({value:e,done:false});}(n=n.next)?i(n.key,n.arg):r=null;}this._invoke=function(t,e){return new Promise((function(o,a){var s={key:t,arg:e,resolve:o,reject:a,next:null};r?r=r.next=s:(n=r=s,i(t,e));}))},"function"!=typeof e.return&&(this.return=void 0);}function C(t){var e="function"==typeof Map?new Map:void 0;return C=function(t){if(null===t||!function(t){try{return -1!==Function.toString.call(t).indexOf("[native code]")}catch(e){return "function"==typeof t}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n);}function n(){return f(t,arguments,y(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:false,writable:true,configurable:true}}),O(n,t)},C(t)}L.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},L.prototype.next=function(t){return this._invoke("next",t)},L.prototype.throw=function(t){return this._invoke("throw",t)},L.prototype.return=function(t){return this._invoke("return",t)};var N=function(){function t(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];h(this,t),g(this,"uncountableWords",["equipment","information","rice","money","species","series","fish","sheep","moose","deer","news"]),g(this,"pluralRules",[[new RegExp("(m)an$","gi"),"$1en"],[new RegExp("(pe)rson$","gi"),"$1ople"],[new RegExp("(child)$","gi"),"$1ren"],[new RegExp("^(ox)$","gi"),"$1en"],[new RegExp("(ax|test)is$","gi"),"$1es"],[new RegExp("(octop|vir)us$","gi"),"$1i"],[new RegExp("(alias|status)$","gi"),"$1es"],[new RegExp("(bu)s$","gi"),"$1ses"],[new RegExp("(buffal|tomat|potat)o$","gi"),"$1oes"],[new RegExp("([ti])um$","gi"),"$1a"],[new RegExp("sis$","gi"),"ses"],[new RegExp("(?:([^f])fe|([lr])f)$","gi"),"$1$2ves"],[new RegExp("(hive)$","gi"),"$1s"],[new RegExp("([^aeiouy]|qu)y$","gi"),"$1ies"],[new RegExp("(x|ch|ss|sh)$","gi"),"$1es"],[new RegExp("(matr|vert|ind)ix|ex$","gi"),"$1ices"],[new RegExp("([m|l])ouse$","gi"),"$1ice"],[new RegExp("(quiz)$","gi"),"$1zes"],[new RegExp("s$","gi"),"s"],[new RegExp("$","gi"),"s"]]),g(this,"singularRules",[[new RegExp("(m)en$","gi"),"$1an"],[new RegExp("(pe)ople$","gi"),"$1rson"],[new RegExp("(child)ren$","gi"),"$1"],[new RegExp("([ti])a$","gi"),"$1um"],[new RegExp("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$","gi"),"$1$2sis"],[new RegExp("(hive)s$","gi"),"$1"],[new RegExp("(tive)s$","gi"),"$1"],[new RegExp("(curve)s$","gi"),"$1"],[new RegExp("([lr])ves$","gi"),"$1f"],[new RegExp("([^fo])ves$","gi"),"$1fe"],[new RegExp("([^aeiouy]|qu)ies$","gi"),"$1y"],[new RegExp("(s)eries$","gi"),"$1eries"],[new RegExp("(m)ovies$","gi"),"$1ovie"],[new RegExp("(x|ch|ss|sh)es$","gi"),"$1"],[new RegExp("([m|l])ice$","gi"),"$1ouse"],[new RegExp("(bus)es$","gi"),"$1"],[new RegExp("(o)es$","gi"),"$1"],[new RegExp("(shoe)s$","gi"),"$1"],[new RegExp("(cris|ax|test)es$","gi"),"$1is"],[new RegExp("(octop|vir)i$","gi"),"$1us"],[new RegExp("(alias|status)es$","gi"),"$1"],[new RegExp("^(ox)en","gi"),"$1"],[new RegExp("(vert|ind)ices$","gi"),"$1ex"],[new RegExp("(matr)ices$","gi"),"$1ix"],[new RegExp("(quiz)zes$","gi"),"$1"],[new RegExp("s$","gi"),""]]),g(this,"nonTitlecasedWords",["and","or","nor","a","an","the","so","but","to","of","at","by","from","into","on","onto","off","out","in","over","with","for"]),g(this,"idSuffix",new RegExp("(_ids|_id)$","g")),g(this,"underbar",new RegExp("_","g")),g(this,"spaceOrUnderbar",new RegExp("[ _]","g")),g(this,"uppercase",new RegExp("([A-Z])","g")),g(this,"underbarPrefix",new RegExp("^_")),this.str=e,this.chain=n;}return v(t,[{key:"get",value:function(){return this.str}},{key:"applyRules",value:function(t,e,n,r){if(r)t=r;else if(!(n.indexOf(t.toLowerCase())>-1))for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:null;return t=t||this.str,this.applyRules(t,this.pluralRules,this.uncountableWords,e)}},{key:"singularize",value:function(t,e){return t=t||this.str,this.applyRules(t,this.singularRules,this.uncountableWords,e)}},{key:"camelize",value:function(t,e){for(var n=(t=t||this.str).split("/"),r=0;r1&&void 0!==arguments[1]&&arguments[1];return t=t||this.str,t=this.underscore(this.demodulize(t))+(e?"":"_")+"id",this.str=t,true===this.chain?this:t}},{key:"ordinalize",value:function(t){for(var e=(t=t||this.str).split(" "),n=0;n2?i-2:0),a=2;a2?n-2:0),i=2;i2?n-2:0),i=2;i1?e-1:0),r=1;r3&&void 0!==arguments[3]?arguments[3]:[];if(V(t))if(r.length<=X)t.splice.apply(t,[e,n].concat(S(r)));else {t.splice(e,n);for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:0,r=t.length,i=n;i2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3?arguments[3]:void 0,i=t.length;return n<0&&(n+=i),nt(t,r&&e!=e?function(t){return t!=t}:function(t){return t===e},n)}function it(t,e,n){return Q(t,e,0,[n]),n}function ot(){return f(at,Array.prototype.slice.call(arguments))}var at=function(){function t(){return h(this,t),r(V(arguments[0])?l(this,t,S(arguments[0])):l(this,t,arguments))}return b(t,C(Array)),v(t,[{key:"notEmpty",get:function(){return this.length>0}},{key:"empty",get:function(){return 0===this.length}},{key:"first",get:function(){return tt(this,0)}},{key:"last",get:function(){return tt(this,this.length-1)}},{key:"replace",value:function(t,e){return Q(this,t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:[]),this}},{key:"objectsAt",value:function(t){var e=this;return t.map((function(t){return tt(e,t)}))}},{key:"objectAt",value:function(t){return tt(this,t)}},{key:"indexOf",value:function(t,e){return rt(this,t,e,false)}},{key:"lastIndexOf",value:function(t,e){var n=this.length;(void 0===e||e>=n)&&(e=n-1),e<0&&(e+=n);for(var r=e;r>=0;r--)if(tt(this,r)===t)return r;return -1}},{key:"includes",value:function(t,e){return -1!==rt(this,t,e,true)}},{key:"findBy",value:function(){return t=this,e=et.apply(void 0,arguments),-1===(r=nt(t,e.bind(n),0))?void 0:tt(t,r);var t,e,n,r;}},{key:"findIndexBy",value:function(){return nt(this,et.apply(void 0,arguments))}},{key:"isEvery",value:function(){return t=this,e=et.apply(void 0,arguments),r=e.bind(n),-1===nt(t,(function(t,e,n){return !r(t,e,n)}),0);var t,e,n,r;}},{key:"isAny",value:function(){return t=this,e=et.apply(void 0,arguments),-1!==nt(t,e.bind(n),0);var t,e,n;}},{key:"invoke",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:Y,n=[],r=new Set,i="function"==typeof e?e:function(t){return get(t,e)};return t.forEach((function(t){var e=i(t);r.has(e)||(r.add(e),n.push(t));})),n}(this,t)}},{key:"without",value:function(t){if(!this.includes(t))return this;var e=t==t?function(e){return e!==t}:function(t){return t==t};return this.filter(e)}},{key:"clear",value:function(){var t=this.length;return 0===t||this.replace(0,t,[]),this}},{key:"insertAt",value:function(t,e){return it(this,t,e),this}},{key:"replaceAt",value:function(t,e){return this.replace(t,1,[e])}},{key:"removeAt",value:function(t,e){return function(t,e){return Q(t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,[]),t}(this,t,e)}},{key:"pushObject",value:function(t){return this.insertAt(this.length,t)}},{key:"pushObjects",value:function(t){return this.replace(this.length,0,t),this}},{key:"popObject",value:function(){var t=this.length;if(0===t)return null;var e=tt(this,t-1);return this.removeAt(t-1,1),e}},{key:"shiftObject",value:function(){if(0===this.length)return null;var t=tt(this,0);return this.removeAt(0),t}},{key:"unshiftObject",value:function(t){return it(this,0,t)}},{key:"unshiftObjects",value:function(t){return this.replace(0,0,t),this}},{key:"reverseObjects",value:function(){var t=this.length;if(0===t)return this;var e=this.toArray().reverse();return this.replace(0,t,e),this}},{key:"setObjects",value:function(t){if(0===t.length)return this.clear();var e=this.length;return this.replace(0,e,t),this}},{key:"removeObject",value:function(t){for(var e=this.length||0;--e>=0;){tt(this,e)===t&&this.removeAt(e);}return this}},{key:"removeObjects",value:function(t){for(var e=t.length-1;e>=0;e--)this.removeObject(t[e]);return this}},{key:"addObject",value:function(t){return this.includes(t)||this.pushObject(t),this}},{key:"addObjects",value:function(t){var e=this;return t.forEach((function(t){return e.addObject(t)})),this}}])}();function st(t){var e=null==t;if(e)return e;if("number"==typeof t.size)return !t.size;var n=T(t);if("object"===n){var r=t.size;if("number"==typeof r)return !r}if("number"==typeof t.length&&"function"!==n)return !t.length;if("object"===n){var i=t.length;if("number"==typeof i)return !i}return false}function lt(){var t,e,n;return !("undefined"==typeof process||"object"!==T(null===(t=process)||void 0===t?void 0:t.env)&&-1===(null===(e=process.release)||void 0===e||null===(e=e.name)||void 0===e?void 0:e.search(/node|io.js/))||"undefined"!=typeof window&&"ReactNative"!==(null===(n=window)||void 0===n||null===(n=n.navigator)||void 0===n?void 0:n.product))}function ht(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return lt()?W("adapter","NodeAdapter",t):W("adapter","BrowserAdapter",t)}(function(){return v((function t(e){h(this,t),this.place=e,this.geometry=null==e?void 0:e.geometry,this.components=this.parseComponents(),this.attributes=this.parseProperties();}),[{key:"parse",value:function(){this.parseComponents(),this.parseProperties();}},{key:"parseComponents",value:function(){var t;return ((null===(t=this.place)||void 0===t?void 0:t.address_components)||[]).reduce((function(t,e){return e.types.forEach((function(n){t[n]=e;})),t}),{})}},{key:"parseProperties",value:function(){var t,e={streetNumber:this.get("street_number"),streetName:this.get("route"),coordinates:null!==(t=this.geometry)&&void 0!==t&&t.location?Object.values(this.geometry.location):[0,0],city:this.or(["locality","sublocality","sublocality_level_1","neighborhood","administrative_area_level_3","administrative_area_level_2"]),county:this.get("administrative_area_level_2"),stateShort:this.get("administrative_area_level_1",true),stateLong:this.get("administrative_area_level_1"),countryShort:this.get("country",true),country:this.get("country",true),countryLong:this.get("country"),postalCode:this.get("postal_code")};return e.address=[e.streetNumber,e.streetName].filter(Boolean).join(" "),e}},{key:"all",value:function(){return this.attributes}},{key:"or",value:function(){var t,e=p(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]);try{for(e.s();!(t=e.n()).done;){var n=t.value;if(V(n)){var r=n[0],i=n[1];if(this.has(r))return this.get(r,i)}else if(this.has(n))return this.get(n)}}catch(t){e.e(t);}finally{e.f();}return null}},{key:"has",value:function(t){return t in this.components}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t in this.components?e?this.components[t].short_name:this.components[t].long_name:null}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.attributes=A(A({},this.attributes),t),this}},{key:"setAttribute",value:function(t,e){return this.attributes[t]=e,this}},{key:"getAttribute",value:function(t){return this.attributes[t]||null}}])})();var dt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;h(this,t),this.type="Point",this.coordinates=[n,e];}return v(t,[{key:"latitude",get:function(){return this.coordinates[1]}},{key:"longitude",get:function(){return this.coordinates[0]}},{key:"lat",value:function(){return this.latitude}},{key:"lng",value:function(){return this.longitude}},{key:"serialize",value:function(){return {type:"Point",coorindates:[this.lat(),this.lng()]}}},{key:"toJson",value:function(){return this.serialize()}},{key:"toString",value:function(){return "(".concat(this.latitude,", ").concat(this.longitude,")")}}],[{key:"fromGeoJson",value:function(e){var n=R(e.coordinates,2),r=n[0];return new t(n[1],r)}}])}();function vt(t,e){var n=t();return Array.isArray(n)||"object"===T(n)?pt(n,e):null}function pt(t,e){var n,r=t,i=T(t),o="object"===i,a="function"===i,s=Array.isArray(t),u="string"===T(e)&&e.includes(".")?e.split("."):[e];if(s||o){for(var c=0;c1&&void 0!==arguments[1]?arguments[1]:[];if(t.actions=V(e)?e:[e],!V(e))return e instanceof mt&&e.extend(t),t;var n,r=p(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;t.extendActions(i);}}catch(t){r.e(t);}finally{r.f();}}var mt=function(){return v((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;h(this,t),this.actions=e,this.bind=n;}),[{key:"extend",value:function(){var t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||this.bind;if(!t)return this;if(null!=this&&this.actions&&"object"===T(this.actions))for(var e in this.actions){var n=this.actions[e];"function"==typeof n?gt(t,e,n.bind(t)):gt(t,e,n);}return this}}])}();function wt(t){return t instanceof kt}var kt=function(){return v((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};h(this,t),this.attributes=e,this.dirtyAttributes={},this.changes={},this.isLoading=false,this.isSaving=false,this.isDestroying=false,this.isReloading=false,this.resource=r,this.options=i,this.version=i.version||"v1",this.setAdapter(n);}),[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=M(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"id",get:function(){return this.getAttribute("id")}},{key:"create",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.mergeAttributes(e);return this.setFlags(["isLoading","isSaving"]),this.store.create(n).then((function(e){return t.setFlags(["isLoading","isSaving"],false),e}))}},{key:"update",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setFlags(["isLoading","isSaving"]),this.store.update(this.attributes.id,e).then((function(e){return t.setFlags(["isLoading","isSaving"],false),e}))}},{key:"destroy",value:function(){var t=this;return this.setFlags(["isLoading","isDestroying"]),this.store.destroy(this.attributes.id).then((function(e){return t.setFlags(["isLoading","isDestroying"],false),e}))}},{key:"reload",value:function(){var t=this;return this.setFlags(["isLoading","isReloading"]),this.store.findRecord(this.attributes.id).then((function(e){return t.reset(),e}))}},{key:"setFlags",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=["isLoading","isSaving","isReloading","isDestroying"],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=this.getAttributes();return st(this.id)?this.create(e):true===t.onlyDirty?this.savedirty():this.update(e)}},{key:"saveDirty",value:function(){for(var t=Object.keys(this.dirtyAttributes),e={},n=0;n0}},{key:"mutate",value:function(t,e){this.attributes[t]=e;}},{key:"setAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null===n&&"object"===T(t))return this.setAttributes(t);var r=null!==(e=null==this?void 0:this.attributes[t])&&void 0!==e?e:null;return gt(this.attributes,t,n),gt(this.dirtyAttributes,t,r),V(null==this?void 0:this.changes[t])||(this.changes[t]=[]),this.changes[t].push({property:t,previousValue:r,value:n,changedAt:new Date}),this}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var e in t)this.setAttribute(e,t[e]);return this}},{key:"getAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=pt(null!==(e=null==this?void 0:this.attributes)&&void 0!==e?e:{},t);return void 0===r?n:r}},{key:"hasAttribute",value:function(t){if(V(t)){var e,n=t,r=Object.keys(null!==(e=this.attributes)&&void 0!==e?e:{});return n.every((function(t){return r.includes(t)}))}return !(null==this||!this.attributes)&&t in this.attributes}},{key:"hasAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.hasAttribute(t)}},{key:"isAttributeFilled",value:function(t){var e=this;return V(t)?this.hasAttribute(t)&&t.every((function(t){return !st(e.getAttribute(t))})):this.hasAttribute(t)&&!st(this.getAttribute(t))}},{key:"getAttributes",value:function(t){var e={};if(null==t)return this.getAttributes(Object.keys(this.attributes));if("string"==typeof t)return this.getAttribute(Array.prototype.slice.call(arguments));if(!V(t))throw new Error("No attribute properties provided!");var n,r=p(t);try{for(r.s();!(n=r.n()).done;){var i,o,a=n.value;if("string"==typeof a){var s=this.getAttribute(a);"object"!==T(null===(i=s)||void 0===i?void 0:i.attributes)||V(null===(o=s)||void 0===o?void 0:o.attributes)||(s=s.attributes),e[a]=s;}}}catch(t){r.e(t);}finally{r.f();}return e}},{key:"serialize",value:function(){return this.getAttributes()}},{key:"mergeAttributes",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=null!==(t=null==this?void 0:this.attributes)&&void 0!==t?t:{};return this.attributes=A(A({},n),e),this.attributes}},{key:"syncAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attributes=t;}}])}();q("resource","Resource",kt);var Et=function(){return v((function t(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};h(this,t),this.resource=e,this.adapter=n||ht(),this.namespace=F(e),this.storage=ot(),this.options=r,this.extendActions(r.actions);}),[{key:"extendActions",value:function(){return yt(this,arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])}},{key:"deposit",value:function(t){return t}},{key:"serialize",value:function(t){return W("resource",z(this.resource),t,this.adapter)}},{key:"afterFetch",value:function(t){return function(t,e){if("function"==typeof t.options.onAfterFetch&&t.options.onAfterFetch(e),V(e)){var n,r=[],i=p(e);try{for(i.s();!(n=i.n()).done;){var o=n.value;r.push(t.afterFetch(o));}}catch(t){i.e(t);}finally{i.f();}return ot.apply(void 0,r)}var a=t.serialize(e);return t.deposit(a)}(this,t)}},{key:"create",value:(a=u(x().mark((function t(){var e,n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=4,this.adapter.post("".concat(this.namespace),e,n);case 4:return r=t.sent,t.abrupt("return",this.afterFetch(r));case 6:case "end":return t.stop()}}),t,this)}))),function(){return a.apply(this,arguments)})},{key:"update",value:(o=u(x().mark((function t(e){var n,r,i,o=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=o.length>1&&void 0!==o[1]?o[1]:{},r=o.length>2&&void 0!==o[2]?o[2]:{},t.next=4,this.adapter.put("".concat(this.namespace,"/").concat(e),n,r);case 4:return i=t.sent,t.abrupt("return",this.afterFetch(i));case 6:case "end":return t.stop()}}),t,this)}))),function(t){return o.apply(this,arguments)})},{key:"findRecord",value:(i=u(x().mark((function t(e){var n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=3,this.adapter.get("".concat(this.namespace,"/").concat(e),{},n);case 3:return r=t.sent,t.abrupt("return",this.afterFetch(r));case 5:case "end":return t.stop()}}),t,this)}))),function(t){return i.apply(this,arguments)})},{key:"findAll",value:(r=u(x().mark((function t(){var e,n,r=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=r.length>0&&void 0!==r[0]?r[0]:{},t.next=3,this.adapter.get("".concat(this.namespace),{},e);case 3:return n=t.sent,t.abrupt("return",this.afterFetch(n));case 5:case "end":return t.stop()}}),t,this)}))),function(){return r.apply(this,arguments)})},{key:"query",value:(n=u(x().mark((function t(){var e,n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=4,this.adapter.get("".concat(this.namespace),e,n);case 4:return r=t.sent,t.abrupt("return",this.afterFetch(r));case 6:case "end":return t.stop()}}),t,this)}))),function(){return n.apply(this,arguments)})},{key:"queryRecord",value:(e=u(x().mark((function t(){var e,n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},(e=i.length>0&&void 0!==i[0]?i[0]:{}).single=true,t.next=5,this.adapter.get("".concat(this.namespace),e,n);case 5:return r=t.sent,t.abrupt("return",this.afterFetch(r));case 7:case "end":return t.stop()}}),t,this)}))),function(){return e.apply(this,arguments)})},{key:"destroy",value:(t=u(x().mark((function t(e){var n,r,i,o=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=o.length>1&&void 0!==o[1]?o[1]:{},r=wt(e)?e.getAttribute("id"):e,t.next=4,this.adapter.delete("".concat(this.namespace,"/").concat(r),{},n);case 4:return i=t.sent,t.abrupt("return",this.afterFetch(i));case 6:case "end":return t.stop()}}),t,this)}))),function(e){return t.apply(this,arguments)})}]);var t,e,n,r,i,o,a;}();q("store","Store",Et);var At=new mt({getDistanceAndTime:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/distance-and-time"),e,n)},getNextActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/next-activity"),e,n)},dispatch:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/dispatch"),e,n).then(this.afterFetch.bind(this))},start:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/start"),e,n).then(this.afterFetch.bind(this))},updateActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/update-activity"),e,n).then(this.afterFetch.bind(this))},setDestination:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return wt(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/set-destination/").concat(e),n,r).then(this.afterFetch.bind(this))},captureQrCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return wt(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-qr").concat(e?"/"+e:""),n,r)},captureSignature:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return wt(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-signature").concat(e?"/"+e:""),n,r)},complete:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/complete"),e,n).then(this.afterFetch.bind(this))},cancel:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete("".concat(this.namespace,"/").concat(t,"/cancel"),e,n).then(this.afterFetch.bind(this))}}),xt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"order",A({actions:At},r)])}return b(t,kt),v(t,[{key:"getDistanceAndTime",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getDistanceAndTime(this.id,t,e)}},{key:"dispatch",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.dispatch(this.id,t,e)}},{key:"start",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.start(this.id,t,e)}},{key:"setDestination",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.setDestination(this.id,t,e,n)}},{key:"captureQrCode",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureQrCode(this.id,t,e,n)}},{key:"captureSignature",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureSignature(this.id,t,e,n)}},{key:"getNextActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getNextActivity(this.id,t,e)}},{key:"updateActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.updateActivity(this.id,t,e)}},{key:"cancel",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.cancel(this.id,t,e)}},{key:"complete",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.complete(this.id,t,e)}},{key:"isDispatched",get:function(){return null!==this.getAttribute("dispatched_at")}},{key:"isNotDispatched",get:function(){return null==this.getAttribute("dispatched_at")}},{key:"isStarted",get:function(){return null!==this.getAttribute("started_at")}},{key:"isNotStarted",get:function(){return null==this.getAttribute("started_at")}},{key:"isCompleted",get:function(){return "completed"==this.getAttribute("status")}},{key:"isCanceled",get:function(){return "canceled"==this.getAttribute("status")}},{key:"isEnroute",get:function(){return "driver_enroute"==this.getAttribute("status")||"enroute"===this.getAttribute("status")}},{key:"isInProgress",get:function(){return this.isStarted&&!this.isCanceled&&!this.isCompleted}},{key:"scheduledAt",get:function(){return this.isAttributeFilled("scheduled_at")?new Date(this.getAttribute("scheduled_at")):null}},{key:"startedAt",get:function(){return this.isAttributeFilled("started_at")?new Date(this.getAttribute("started_at")):null}},{key:"dispatchedAt",get:function(){return this.isAttributeFilled("dispatched_at")?new Date(this.getAttribute("dispatched_at")):null}},{key:"status",get:function(){return this.getAttribute("status")}}])}();q("resource","Order",xt);var Ot=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"payload",r])}return b(t,kt),v(t,[{key:"attach",value:function(t){}},{key:"entities",get:function(){var t=this;return ot(this.entities.map((function(e){return G("Entity",e,t.adapter)})))}},{key:"dropoff",get:function(){return this.dropoff?G("Place",this.dropoff,this.adapter):null}},{key:"pickup",get:function(){return this.pickup?G("Place",this.pickup,this.adapter):null}},{key:"waypoints",get:function(){var t=this;return ot(this.waypoints.map((function(e){return G("Waypoint",e,t.adapter)})))}}])}();q("resource","Payload",Ot);var Rt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"entity",r])}return b(t,kt),v(t)}();q("resource","Entity",Rt);var St=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"place",r])}return b(t,kt),v(t,[{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new dt))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new dt))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return [this.latitude,this.longitude]}},{key:"setOwner",value:function(t){return wt(t)&&this.setAttribute("owner",t.id),"string"==typeof t&&this.setAttribute("owner",t),this}}],[{key:"fromGoogleAddress",value:function(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=R(e.getAttribute("coordinates"),2),o=i[0],a=i[1];return new t({name:null,address:e.getAttribute("address"),location:new dt(o,a),street1:e.getAttribute("address"),street2:null,city:e.getAttribute("city"),province:e.getAttribute("stateLong"),postal_code:e.getAttribute("postalCode"),neighborhood:e.get("neighborhood"),district:e.getAttribute("county"),building:e.get("building"),country:e.getAttribute("countryShort"),phone:null,security_access_code:null},n,r)}}])}();q("resource","Place",St);var jt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"waypoint",r])}return b(t,St),v(t)}();q("resource","Waypoint",jt);var Tt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"tracking-status",r])}return b(t,kt),v(t)}();q("resource","TrackingStatus",Tt);var _t=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"vehicle",r])}return b(t,kt),v(t)}();q("resource","Vehicle",_t);var Pt=new mt({current:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.get("".concat(this.namespace,"/current"),t,e)}}),Lt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"organization",A({actions:Pt},r)])}return b(t,kt),v(t)}();q("resource","Organization",Lt);var Ct=function(t,e){return V(t)?t.map((function(t){return new Lt(t,e)})):new Lt(t,e)},Nt=new mt({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(function(){return /^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"")}(t))return this.adapter.post("drivers/login-with-sms",{phone:t});if(!e)throw new Error("Login requires password!");return this.adapter.post("drivers/login",A({identity:t,password:e},n)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/verify-code",A({identity:t,code:e},n)).then(this.afterFetch.bind(this))},track:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/track"),e,n).then(this.afterFetch.bind(this))},listOrganizations:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("drivers/".concat(t,"/organizations"),n,r).then((function(t){return Ct(t,e.adapter)}))},switchOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/switch-organization"),n,r).then((function(t){return Ct(t,e.adapter)}))},currentOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("drivers/".concat(t,"/current-organization"),n,r).then((function(t){return Ct(t,e.adapter)}))},retrieve:function(t){return this.findRecord(t)},syncDevice:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/register-device"),e,n)}}),Ft=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"driver",A({actions:Nt},r)])}return b(t,kt),v(t,[{key:"token",get:function(){return this.getAttribute("token")}},{key:"isOnline",get:function(){return true===this.getAttribute("online")}},{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new dt))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new dt))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return [this.latitude,this.longitude]}},{key:"track",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.track(this.id,t,e)}},{key:"syncDevice",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.syncDevice(this.id,t,e)}},{key:"listOrganizations",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.listOrganizations(this.id,t,e)}},{key:"switchOrganization",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.switchOrganization(this.id,{next:t},e)}},{key:"currentOrganization",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.currentOrganization(this.id,t,e)}}])}();q("resource","Driver",Ft);var Dt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"vendor",r])}return b(t,kt),v(t)}();q("resource","Vendor",Dt);var $t=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"contact",r])}return b(t,kt),v(t)}();q("resource","Contact",$t);var Ut=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"zone",r])}return b(t,kt),v(t)}();q("resource","Zone",Ut);var zt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"service-area",r])}return b(t,kt),v(t)}();q("resource","ServiceArea",zt);var Bt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"service-rate",r])}return b(t,kt),v(t)}();q("resource","ServiceRate",Bt);var qt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"service-quote",r])}return b(t,kt),v(t,[{key:"fromPreliminary",value:function(){}},{key:"fromPayload",value:function(){}}])}();q("resource","ServiceQuote",qt);var It=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"fleet",r])}return b(t,kt),v(t)}();q("resource","Fleet",It);var Mt=v((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};h(this,t),this.version=e.version||"v1",this.host=e.host||null,this.namespace=e.namespace||null,this.headers=e.headers||{};}));q("adapter","Adapter",Mt);var Ht=function(){function t(e){var n;return h(this,t),(n=l(this,t,[e])).setHeaders({Authorization:"Bearer ".concat(e.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;browser"}),n}return b(t,Mt),v(t,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.headers=A(A({},this.headers),t),this}},{key:"parseJSON",value:function(t){return new Promise((function(e,n){t.json().then((function(n){e({statusText:t.statusText,status:t.status,ok:t.ok,json:n});})).catch((function(){n(new Error("Oops! Something went wrong when handling your request."));}));}))}},{key:"request",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new Promise((function(o,a){fetch(i.url||"".concat(e.host,"/").concat(e.namespace,"/").concat(t),A({method:n,mode:i.mode||"cors",headers:new Headers(A(A({},e.headers||{}),i.headers||{}))},r)).then(e.parseJSON).then((function(t){if(t.ok)return o(t.json);a(new Error(t.json.errors?t.json.errors[0]:t.statusText));})).catch((function(t){a(t);}));}))}},{key:"get",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=st(e=n)||"string"==typeof e&&false===/\S/.test(e)?"":new URLSearchParams(n).toString();return this.request("".concat(t).concat(i?"?".concat(i):""),"GET",{},r)}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"POST",{body:JSON.stringify(e)},n)}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PUT",{body:JSON.stringify(e)},n)}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(t,"DELETE",{},e)}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PATCH",{body:JSON.stringify(e)},n)}}])}();function Jt(t,e){return function(){return t.apply(e,arguments)}}q("adapter","BrowserAdapter",Ht);var Wt,Kt=Object.prototype.toString,Gt=Object.getPrototypeOf,Vt=(Wt=Object.create(null),function(t){var e=Kt.call(t);return Wt[e]||(Wt[e]=e.slice(8,-1).toLowerCase())}),Xt=function(t){return t=t.toLowerCase(),function(e){return Vt(e)===t}},Qt=function(t){return function(e){return T(e)===t}},Yt=Array.isArray,Zt=Qt("undefined");var te=Xt("ArrayBuffer");var ee=Qt("string"),ne=Qt("function"),re=Qt("number"),ie=function(t){return null!==t&&"object"===T(t)},oe=function(t){if("object"!==Vt(t))return false;var e=Gt(t);return !(null!==e&&e!==Object.prototype&&null!==Object.getPrototypeOf(e)||Symbol.toStringTag in t||Symbol.iterator in t)},ae=Xt("Date"),se=Xt("File"),ue=Xt("Blob"),ce=Xt("FileList"),le=Xt("URLSearchParams"),he=R(["ReadableStream","Request","Response","Headers"].map(Xt),4),fe=he[0],de=he[1],ve=he[2],pe=he[3];function ge(t,e){var n,r,i=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).allOwnKeys,o=void 0!==i&&i;if(null!=t)if("object"!==T(t)&&(t=[t]),Yt(t))for(n=0,r=t.length;n0;)if(e===(n=r[i]).toLowerCase())return n;return null}var be="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,me=function(t){return !Zt(t)&&t!==be};var we,ke=(we="undefined"!=typeof Uint8Array&&Gt(Uint8Array),function(t){return we&&t instanceof we}),Ee=Xt("HTMLFormElement"),Ae=function(){var t=Object.prototype.hasOwnProperty;return function(e,n){return t.call(e,n)}}(),xe=Xt("RegExp"),Oe=function(t,e){var n=Object.getOwnPropertyDescriptors(t),r={};ge(n,(function(n,i){var o;false!==(o=e(n,i,t))&&(r[i]=o||n);})),Object.defineProperties(t,r);},Re="abcdefghijklmnopqrstuvwxyz",Se="0123456789",je={DIGIT:Se,ALPHA:Re,ALPHA_DIGIT:Re+Re.toUpperCase()+Se};var Te,_e,Pe,Le,Ce=Xt("AsyncFunction"),Ne=(Te="function"==typeof setImmediate,_e=ne(be.postMessage),Te?setImmediate:_e?(Pe="axios@".concat(Math.random()),Le=[],be.addEventListener("message",(function(t){var e=t.source,n=t.data;e===be&&n===Pe&&Le.length&&Le.shift()();}),false),function(t){Le.push(t),be.postMessage(Pe,"*");}):function(t){return setTimeout(t)}),Fe="undefined"!=typeof queueMicrotask?queueMicrotask.bind(be):"undefined"!=typeof process&&process.nextTick||Ne,De={isArray:Yt,isArrayBuffer:te,isBuffer:function(t){return null!==t&&!Zt(t)&&null!==t.constructor&&!Zt(t.constructor)&&ne(t.constructor.isBuffer)&&t.constructor.isBuffer(t)},isFormData:function(t){var e;return t&&("function"==typeof FormData&&t instanceof FormData||ne(t.append)&&("formdata"===(e=Vt(t))||"object"===e&&ne(t.toString)&&"[object FormData]"===t.toString()))},isArrayBufferView:function(t){return "undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&te(t.buffer)},isString:ee,isNumber:re,isBoolean:function(t){return true===t||false===t},isObject:ie,isPlainObject:oe,isReadableStream:fe,isRequest:de,isResponse:ve,isHeaders:pe,isUndefined:Zt,isDate:ae,isFile:se,isBlob:ue,isRegExp:xe,isFunction:ne,isStream:function(t){return ie(t)&&ne(t.pipe)},isURLSearchParams:le,isTypedArray:ke,isFileList:ce,forEach:ge,merge:function t(){for(var e=(me(this)&&this||{}).caseless,n={},r=function(r,i){var o=e&&ye(n,i)||i;oe(n[o])&&oe(r)?n[o]=t(n[o],r):oe(r)?n[o]=t({},r):Yt(r)?n[o]=r.slice():n[o]=r;},i=0,o=arguments.length;i3&&void 0!==arguments[3]?arguments[3]:{}).allOwnKeys}),t},trim:function(t){return t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")},stripBOM:function(t){return 65279===t.charCodeAt(0)&&(t=t.slice(1)),t},inherits:function(t,e,n,r){t.prototype=Object.create(e.prototype,r),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),n&&Object.assign(t.prototype,n);},toFlatObject:function(t,e,n,r){var i,o,a,s={};if(e=e||{},null==t)return e;do{for(o=(i=Object.getOwnPropertyNames(t)).length;o-- >0;)a=i[o],r&&!r(a,t,e)||s[a]||(e[a]=t[a],s[a]=true);t=false!==n&&Gt(t);}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},kindOf:Vt,kindOfTest:Xt,endsWith:function(t,e,n){t=String(t),(void 0===n||n>t.length)&&(n=t.length),n-=e.length;var r=t.indexOf(e,n);return -1!==r&&r===n},toArray:function(t){if(!t)return null;if(Yt(t))return t;var e=t.length;if(!re(e))return null;for(var n=new Array(e);e-- >0;)n[e]=t[e];return n},forEachEntry:function(t,e){for(var n,r=(t&&t[Symbol.iterator]).call(t);(n=r.next())&&!n.done;){var i=n.value;e.call(t,i[0],i[1]);}},matchAll:function(t,e){for(var n,r=[];null!==(n=t.exec(e));)r.push(n);return r},isHTMLForm:Ee,hasOwnProperty:Ae,hasOwnProp:Ae,reduceDescriptors:Oe,freezeMethods:function(t){Oe(t,(function(e,n){if(ne(t)&&-1!==["arguments","caller","callee"].indexOf(n))return false;var r=t[n];ne(r)&&(e.enumerable=false,"writable"in e?e.writable=false:e.set||(e.set=function(){throw Error("Can not rewrite read-only method '"+n+"'")}));}));},toObjectSet:function(t,e){var n={},r=function(t){t.forEach((function(t){n[t]=true;}));};return Yt(t)?r(t):r(String(t).split(e)),n},toCamelCase:function(t){return t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(t,e,n){return e.toUpperCase()+n}))},noop:function(){},toFiniteNumber:function(t,e){return null!=t&&Number.isFinite(t=+t)?t:e},findKey:ye,global:be,isContextDefined:me,ALPHABET:je,generateString:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:je.ALPHA_DIGIT,n="",r=e.length;t--;)n+=e[Math.random()*r|0];return n},isSpecCompliantForm:function(t){return !!(t&&ne(t.append)&&"FormData"===t[Symbol.toStringTag]&&t[Symbol.iterator])},toJSONObject:function(t){var e=new Array(10),n=function(t,r){if(ie(t)){if(e.indexOf(t)>=0)return;if(!("toJSON"in t)){e[r]=t;var i=Yt(t)?[]:{};return ge(t,(function(t,e){var o=n(t,r+1);!Zt(o)&&(i[e]=o);})),e[r]=void 0,i}}return t};return n(t,0)},isAsyncFn:Ce,isThenable:function(t){return t&&(ie(t)||ne(t))&&ne(t.then)&&ne(t.catch)},setImmediate:Ne,asap:Fe};function $e(t,e,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=t,this.name="AxiosError",e&&(this.code=e),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status?i.status:null);}De.inherits($e,Error,{toJSON:function(){return {message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:De.toJSONObject(this.config),code:this.code,status:this.status}}});var Ue=$e.prototype,ze={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((function(t){ze[t]={value:t};})),Object.defineProperties($e,ze),Object.defineProperty(Ue,"isAxiosError",{value:true}),$e.from=function(t,e,n,r,i,o){var a=Object.create(Ue);return De.toFlatObject(t,a,(function(t){return t!==Error.prototype}),(function(t){return "isAxiosError"!==t})),$e.call(a,t.message,e,n,r,i),a.cause=t,a.name=t.name,o&&Object.assign(a,o),a};function Be(t){return De.isPlainObject(t)||De.isArray(t)}function qe(t){return De.endsWith(t,"[]")?t.slice(0,-2):t}function Ie(t,e,n){return t?t.concat(e).map((function(t,e){return t=qe(t),!n&&e?"["+t+"]":t})).join(n?".":""):e}var Me=De.toFlatObject(De,{},null,(function(t){return /^is[A-Z]/.test(t)}));function He(t,e,n){if(!De.isObject(t))throw new TypeError("target must be an object");e=e||new FormData;var r=(n=De.toFlatObject(n,{metaTokens:true,dots:false,indexes:false},false,(function(t,e){return !De.isUndefined(e[t])}))).metaTokens,i=n.visitor||c,o=n.dots,a=n.indexes,s=(n.Blob||"undefined"!=typeof Blob&&Blob)&&De.isSpecCompliantForm(e);if(!De.isFunction(i))throw new TypeError("visitor must be a function");function u(t){if(null===t)return "";if(De.isDate(t))return t.toISOString();if(!s&&De.isBlob(t))throw new $e("Blob is not supported. Use a Buffer instead.");return De.isArrayBuffer(t)||De.isTypedArray(t)?s&&"function"==typeof Blob?new Blob([t]):Buffer.from(t):t}function c(t,n,i){var s=t;if(t&&!i&&"object"===T(t))if(De.endsWith(n,"{}"))n=r?n:n.slice(0,-2),t=JSON.stringify(t);else if(De.isArray(t)&&function(t){return De.isArray(t)&&!t.some(Be)}(t)||(De.isFileList(t)||De.endsWith(n,"[]"))&&(s=De.toArray(t)))return n=qe(n),s.forEach((function(t,r){!De.isUndefined(t)&&null!==t&&e.append(true===a?Ie([n],r,o):null===a?n:n+"[]",u(t));})),false;return !!Be(t)||(e.append(Ie(i,n,o),u(t)),false)}var l=[],h=Object.assign(Me,{defaultVisitor:c,convertValue:u,isVisitable:Be});if(!De.isObject(t))throw new TypeError("data must be an object");return function t(n,r){if(!De.isUndefined(n)){if(-1!==l.indexOf(n))throw Error("Circular reference detected in "+r.join("."));l.push(n),De.forEach(n,(function(n,o){ true===(!(De.isUndefined(n)||null===n)&&i.call(e,n,De.isString(o)?o.trim():o,r,h))&&t(n,r?r.concat(o):[o]);})),l.pop();}}(t),e}function Je(t){var e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,(function(t){return e[t]}))}function We(t,e){this._pairs=[],t&&He(t,this,e);}var Ke=We.prototype;function Ge(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Ve(t,e,n){if(!e)return t;var r=n&&n.encode||Ge;De.isFunction(n)&&(n={serialize:n});var i,o=n&&n.serialize;if(i=o?o(e,n):De.isURLSearchParams(e)?e.toString():new We(e,n).toString(r)){var a=t.indexOf("#");-1!==a&&(t=t.slice(0,a)),t+=(-1===t.indexOf("?")?"?":"&")+i;}return t}Ke.append=function(t,e){this._pairs.push([t,e]);},Ke.toString=function(t){var e=t?function(e){return t.call(this,e,Je)}:Je;return this._pairs.map((function(t){return e(t[0])+"="+e(t[1])}),"").join("&")};var Xe=function(){return v((function t(){h(this,t),this.handlers=[];}),[{key:"use",value:function(t,e,n){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}},{key:"eject",value:function(t){this.handlers[t]&&(this.handlers[t]=null);}},{key:"clear",value:function(){this.handlers&&(this.handlers=[]);}},{key:"forEach",value:function(t){De.forEach(this.handlers,(function(e){null!==e&&t(e);}));}}])}(),Qe={silentJSONParsing:true,forcedJSONParsing:true,clarifyTimeoutError:false},Ye={isBrowser:true,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:We,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},Ze="undefined"!=typeof window&&"undefined"!=typeof document,tn="object"===("undefined"==typeof navigator?"undefined":T(navigator))&&navigator||void 0,en=Ze&&(!tn||["ReactNative","NativeScript","NS"].indexOf(tn.product)<0),nn="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,rn=Ze&&window.location.href||"http://localhost",on=A(A({},Object.freeze({__proto__:null,hasBrowserEnv:Ze,hasStandardBrowserEnv:en,hasStandardBrowserWebWorkerEnv:nn,navigator:tn,origin:rn})),Ye);function an(t){function e(t,n,r,i){var o=t[i++];if("__proto__"===o)return true;var a=Number.isFinite(+o),s=i>=t.length;return o=!o&&De.isArray(r)?r.length:o,s?(De.hasOwnProp(r,o)?r[o]=[r[o],n]:r[o]=n,!a):(r[o]&&De.isObject(r[o])||(r[o]=[]),e(t,n,r[o],i)&&De.isArray(r[o])&&(r[o]=function(t){var e,n,r={},i=Object.keys(t),o=i.length;for(e=0;e-1,o=De.isObject(t);if(o&&De.isHTMLForm(t)&&(t=new FormData(t)),De.isFormData(t))return i?JSON.stringify(an(t)):t;if(De.isArrayBuffer(t)||De.isBuffer(t)||De.isStream(t)||De.isFile(t)||De.isBlob(t)||De.isReadableStream(t))return t;if(De.isArrayBufferView(t))return t.buffer;if(De.isURLSearchParams(t))return e.setContentType("application/x-www-form-urlencoded;charset=utf-8",false),t.toString();if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return function(t,e){return He(t,new on.classes.URLSearchParams,Object.assign({visitor:function(t,e,n,r){return on.isNode&&De.isBuffer(t)?(this.append(e,t.toString("base64")),false):r.defaultVisitor.apply(this,arguments)}},e))}(t,this.formSerializer).toString();if((n=De.isFileList(t))||r.indexOf("multipart/form-data")>-1){var a=this.env&&this.env.FormData;return He(n?{"files[]":t}:t,a&&new a,this.formSerializer)}}return o||i?(e.setContentType("application/json",false),function(t,e){if(De.isString(t))try{return (e||JSON.parse)(t),De.trim(t)}catch(t){if("SyntaxError"!==t.name)throw t}return (0, JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){var e=this.transitional||sn.transitional,n=e&&e.forcedJSONParsing,r="json"===this.responseType;if(De.isResponse(t)||De.isReadableStream(t))return t;if(t&&De.isString(t)&&(n&&!this.responseType||r)){var i=!(e&&e.silentJSONParsing)&&r;try{return JSON.parse(t)}catch(t){if(i){if("SyntaxError"===t.name)throw $e.from(t,$e.ERR_BAD_RESPONSE,this,null,this.response);throw t}}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:on.classes.FormData,Blob:on.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};De.forEach(["delete","get","head","post","put","patch"],(function(t){sn.headers[t]={};}));var un=De.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),cn=Symbol("internals");function ln(t){return t&&String(t).trim().toLowerCase()}function hn(t){return false===t||null==t?t:De.isArray(t)?t.map(hn):String(t)}function fn(t,e,n,r,i){return De.isFunction(r)?r.call(this,e,n):(i&&(e=n),De.isString(e)?De.isString(r)?-1!==e.indexOf(r):De.isRegExp(r)?r.test(e):void 0:void 0)}var dn=function(){return v((function t(e){h(this,t),e&&this.set(e);}),[{key:"set",value:function(t,e,n){var r=this;function i(t,e,n){var i=ln(e);if(!i)throw new Error("header name must be a non-empty string");var o=De.findKey(r,i);(!o||void 0===r[o]||true===n||void 0===n&&false!==r[o])&&(r[o||e]=hn(t));}var o=function(t,e){return De.forEach(t,(function(t,n){return i(t,n,e)}))};if(De.isPlainObject(t)||t instanceof this.constructor)o(t,e);else if(De.isString(t)&&(t=t.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim()))o(function(t){var e,n,r,i={};return t&&t.split("\n").forEach((function(t){r=t.indexOf(":"),e=t.substring(0,r).trim().toLowerCase(),n=t.substring(r+1).trim(),!e||i[e]&&un[e]||("set-cookie"===e?i[e]?i[e].push(n):i[e]=[n]:i[e]=i[e]?i[e]+", "+n:n);})),i}(t),e);else if(De.isHeaders(t)){var a,s=p(t.entries());try{for(s.s();!(a=s.n()).done;){var u=R(a.value,2),c=u[0];i(u[1],c,n);}}catch(t){s.e(t);}finally{s.f();}}else null!=t&&i(e,t,n);return this}},{key:"get",value:function(t,e){if(t=ln(t)){var n=De.findKey(this,t);if(n){var r=this[n];if(!e)return r;if(true===e)return function(t){for(var e,n=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;e=r.exec(t);)n[e[1]]=e[2];return n}(r);if(De.isFunction(e))return e.call(this,r,n);if(De.isRegExp(e))return e.exec(r);throw new TypeError("parser must be boolean|regexp|function")}}}},{key:"has",value:function(t,e){if(t=ln(t)){var n=De.findKey(this,t);return !(!n||void 0===this[n]||e&&!fn(0,this[n],n,e))}return false}},{key:"delete",value:function(t,e){var n=this,r=false;function i(t){if(t=ln(t)){var i=De.findKey(n,t);!i||e&&!fn(0,n[i],i,e)||(delete n[i],r=true);}}return De.isArray(t)?t.forEach(i):i(t),r}},{key:"clear",value:function(t){for(var e=Object.keys(this),n=e.length,r=false;n--;){var i=e[n];t&&!fn(0,this[i],i,t,true)||(delete this[i],r=true);}return r}},{key:"normalize",value:function(t){var e=this,n={};return De.forEach(this,(function(r,i){var o=De.findKey(n,i);if(o)return e[o]=hn(r),void delete e[i];var a=t?function(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(function(t,e,n){return e.toUpperCase()+n}))}(i):String(i).trim();a!==i&&delete e[i],e[a]=hn(r),n[a]=true;})),this}},{key:"concat",value:function(){for(var t,e=arguments.length,n=new Array(e),r=0;r1?n-1:0),i=1;i2&&void 0!==arguments[2]?arguments[2]:3,r=0,i=function(t,e){t=t||10;var n,r=new Array(t),i=new Array(t),o=0,a=0;return e=void 0!==e?e:1e3,function(s){var u=Date.now(),c=i[a];n||(n=u),r[o]=s,i[o]=u;for(var l=a,h=0;l!==o;)h+=r[l++],l%=t;if((o=(o+1)%t)===a&&(a=(a+1)%t),!(u-n1&&void 0!==arguments[1]?arguments[1]:Date.now();i=o,n=null,r&&(clearTimeout(r),r=null),t.apply(null,e);};return [function(){for(var t=Date.now(),e=t-i,s=arguments.length,u=new Array(s),c=0;c=o?a(u,t):(n=u,r||(r=setTimeout((function(){r=null,a(n);}),o-e)));},function(){return n&&a(n)}]}((function(n){var o=n.loaded,a=n.lengthComputable?n.total:void 0,s=o-r,u=i(s);r=o;var c=g({loaded:o,total:a,progress:a?o/a:void 0,bytes:s,rate:u||void 0,estimated:u&&a&&o<=a?(a-o)/u:void 0,event:n,lengthComputable:null!=a},e?"download":"upload",true);t(c);}),n)},mn=function(t,e){var n=null!=t;return [function(r){return e[0]({lengthComputable:n,total:t,loaded:r})},e[1]]},wn=function(t){return function(){for(var e=arguments.length,n=new Array(e),r=0;r1?e-1:0),r=1;r1?"since :\n"+s.map(Wn).join("\n"):" "+Wn(s[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return n};function Vn(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new gn(null,t)}function Xn(t){return Vn(t),t.headers=dn.from(t.headers),t.data=vn.call(t,t.transformRequest),-1!==["post","put","patch"].indexOf(t.method)&&t.headers.setContentType("application/x-www-form-urlencoded",false),Gn(t.adapter||sn.adapter)(t).then((function(e){return Vn(t),e.data=vn.call(t,t.transformResponse,e),e.headers=dn.from(e.headers),e}),(function(e){return pn(e)||(Vn(t),e&&e.response&&(e.response.data=vn.call(t,t.transformResponse,e.response),e.response.headers=dn.from(e.response.headers))),Promise.reject(e)}))}var Qn="1.7.9",Yn={};["object","boolean","number","function","string","symbol"].forEach((function(t,e){Yn[t]=function(n){return T(n)===t||"a"+(e<1?"n ":" ")+t};}));var Zn={};Yn.transitional=function(t,e,n){function r(t,e){return "[Axios v1.7.9] Transitional option '"+t+"'"+e+(n?". "+n:"")}return function(n,i,o){if(false===t)throw new $e(r(i," has been removed"+(e?" in "+e:"")),$e.ERR_DEPRECATED);return e&&!Zn[i]&&(Zn[i]=true,console.warn(r(i," has been deprecated since v"+e+" and will be removed in the near future"))),!t||t(n,i,o)}},Yn.spelling=function(t){return function(e,n){return console.warn("".concat(n," is likely a misspelling of ").concat(t)),true}};var tr={assertOptions:function(t,e,n){if("object"!==T(t))throw new $e("options must be an object",$e.ERR_BAD_OPTION_VALUE);for(var r=Object.keys(t),i=r.length;i-- >0;){var o=r[i],a=e[o];if(a){var s=t[o],u=void 0===s||a(s,o,t);if(true!==u)throw new $e("option "+o+" must be "+u,$e.ERR_BAD_OPTION_VALUE)}else if(true!==n)throw new $e("Unknown option "+o,$e.ERR_BAD_OPTION)}},validators:Yn},er=tr.validators,nr=function(){return v((function t(e){h(this,t),this.defaults=e,this.interceptors={request:new Xe,response:new Xe};}),[{key:"request",value:(t=u(x().mark((function t(e,n){var r,i;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,this._request(e,n);case 3:return t.abrupt("return",t.sent);case 6:if(t.prev=6,t.t0=t.catch(0),t.t0 instanceof Error){r={},Error.captureStackTrace?Error.captureStackTrace(r):r=new Error,i=r.stack?r.stack.replace(/^.+\n/,""):"";try{t.t0.stack?i&&!String(t.t0.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(t.t0.stack+="\n"+i):t.t0.stack=i;}catch(t){}}throw t.t0;case 10:case "end":return t.stop()}}),t,this,[[0,6]])}))),function(e,n){return t.apply(this,arguments)})},{key:"_request",value:function(t,e){"string"==typeof t?(e=e||{}).url=t:e=t||{};var n=e=On(this.defaults,e),r=n.transitional,i=n.paramsSerializer,o=n.headers;void 0!==r&&tr.assertOptions(r,{silentJSONParsing:er.transitional(er.boolean),forcedJSONParsing:er.transitional(er.boolean),clarifyTimeoutError:er.transitional(er.boolean)},false),null!=i&&(De.isFunction(i)?e.paramsSerializer={serialize:i}:tr.assertOptions(i,{encode:er.function,serialize:er.function},true)),tr.assertOptions(e,{baseUrl:er.spelling("baseURL"),withXsrfToken:er.spelling("withXSRFToken")},true),e.method=(e.method||this.defaults.method||"get").toLowerCase();var a=o&&De.merge(o.common,o[e.method]);o&&De.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete o[t];})),e.headers=dn.concat(a,o);var s=[],u=true;this.interceptors.request.forEach((function(t){"function"==typeof t.runWhen&&false===t.runWhen(e)||(u=u&&t.synchronous,s.unshift(t.fulfilled,t.rejected));}));var c,l=[];this.interceptors.response.forEach((function(t){l.push(t.fulfilled,t.rejected);}));var h,f=0;if(!u){var d=[Xn.bind(this),void 0];for(d.unshift.apply(d,s),d.push.apply(d,l),h=d.length,c=Promise.resolve(e);f0;)r._listeners[e](t);r._listeners=null;}})),this.promise.then=function(t){var e,n=new Promise((function(t){r.subscribe(t),e=t;})).then(t);return n.cancel=function(){r.unsubscribe(e);},n},e((function(t,e,i){r.reason||(r.reason=new gn(t,e,i),n(r.reason));}));}return v(t,[{key:"throwIfRequested",value:function(){if(this.reason)throw this.reason}},{key:"subscribe",value:function(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t];}},{key:"unsubscribe",value:function(t){if(this._listeners){var e=this._listeners.indexOf(t);-1!==e&&this._listeners.splice(e,1);}}},{key:"toAbortSignal",value:function(){var t=this,e=new AbortController,n=function(t){e.abort(t);};return this.subscribe(n),e.signal.unsubscribe=function(){return t.unsubscribe(n)},e.signal}}],[{key:"source",value:function(){var e;return {token:new t((function(t){e=t;})),cancel:e}}}])}();var ir={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(ir).forEach((function(t){var e=R(t,2),n=e[0],r=e[1];ir[r]=n;}));var or=function t(e){var n=new nr(e),r=Jt(nr.prototype.request,n);return De.extend(r,nr.prototype,n,{allOwnKeys:true}),De.extend(r,n,null,{allOwnKeys:true}),r.create=function(n){return t(On(e,n))},r}(sn);or.Axios=nr,or.CanceledError=gn,or.CancelToken=rr,or.isCancel=pn,or.VERSION=Qn,or.toFormData=He,or.AxiosError=$e,or.Cancel=or.CanceledError,or.all=function(t){return Promise.all(t)},or.spread=function(t){return function(e){return t.apply(null,e)}},or.isAxiosError=function(t){return De.isObject(t)&&true===t.isAxiosError},or.mergeConfig=On,or.AxiosHeaders=dn,or.formToJSON=function(t){return an(De.isHTMLForm(t)?new FormData(t):t)},or.getAdapter=Gn,or.HttpStatusCode=ir,or.default=or,or.Axios,or.AxiosError,or.CanceledError,or.isCancel,or.CancelToken,or.VERSION,or.all,or.Cancel,or.isAxiosError,or.spread,or.toFormData,or.AxiosHeaders,or.HttpStatusCode,or.formToJSON,or.getAdapter,or.mergeConfig;var ar=function(){function t(e){var n;return h(this,t),(n=l(this,t,[e])).axiosInstance=or.create({baseURL:"".concat(n.host,"/").concat(n.namespace),headers:{Authorization:"Bearer ".concat(e.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;node"}}),n.axiosInstance.interceptors.response.use((function(t){return t.data}),(function(t){if(t.response){var e=t.response.data;if(V(e.errors)&&e.errors.length)throw new Error(e.errors[0]);if(e.error)throw new Error(e.error)}throw t})),n}return b(t,Mt),v(t,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.axiosInstance.defaults.headers.common=A(A({},this.axiosInstance.defaults.headers.common),t),this}},{key:"request",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axiosInstance.request(A({method:t,url:e},n))}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request("GET",t,A({params:e},n))}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request("POST",t,A({data:e},n))}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request("PUT",t,A({data:e},n))}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request("DELETE",t,e)}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request("PATCH",t,A({data:e},n))}}])}();q("adapter","NodeAdapter",ar);var sr=function(){function t(){return h(this,t),l(this,t,arguments)}return b(t,Mt),v(t)}();q("adapter","EmberJsAdapter",sr);(function(){function t(e){var n,r,i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(h(this,t),this.version=null!==(n=o.version)&&void 0!==n?n:"v1",this.options={version:this.version,host:null!==(r=o.host)&&void 0!==r?r:"https://api.fleetbase.io",namespace:null!==(i=o.namespace)&&void 0!==i?i:this.version,debug:a,publicKey:e},"string"!=typeof e||0===e.length)throw new Error("⚠️ Invalid public key given to Fleetbase SDK");if(!lt()&&e.toLowerCase().startsWith("$"))throw new Error("Secret key provided. You must use a public key with Fleetbase Javascript SDK!");this.adapter=o.adapter||ht(this.options),this.orders=new Et("order",this.adapter).extendActions(At),this.entities=new Et("entity",this.adapter),this.places=new Et("place",this.adapter),this.drivers=new Et("driver",this.adapter).extendActions(Nt),this.vehicles=new Et("vehicle",this.adapter),this.vendors=new Et("vendor",this.adapter),this.contacts=new Et("contact",this.adapter),this.serviceAreas=new Et("service-area",this.adapter),this.zones=new Et("zone",this.adapter),this.fleets=new Et("fleet",this.adapter),this.organizations=new Et("organization",this.adapter).extendActions(Pt);}return v(t,[{key:"setAdapter",value:function(t){this.adapter=t;}},{key:"getAdapter",value:function(){return this.adapter}}],[{key:"newInstance",value:function(){return f(t,Array.prototype.slice.call(arguments))}}])})(); + +class StorefrontStore extends Et { + constructor(resource, adapter, options = {}) { + super(resource, adapter, options); + } + extendActions(actions = []) { + return yt(this, actions); + } + serialize(json) { + return W('resource', z(this.resource), json, this.adapter); + } +} + +function isPhone(phone = '') { + return /^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/.test(phone); +} + +function formatCurrency(amount = 0, currency = 'USD', currencyDisplay = 'symbol') { + return new Intl.NumberFormat('en-US', { + style: 'currency', + currency, + currencyDisplay, + }).format(amount); +} + +function isKeyValid(key) { + return typeof key === 'string' && key.length > 30 && (key.startsWith('store_') || key.startsWith('network_')); +} + +function isEmpty(obj) { + const none = obj === null || obj === undefined; + if (none) { + return none; + } + const objectType = typeof obj; + if (typeof obj === 'object' && typeof obj.size === 'number') { + return !obj.size; + } + if ((typeof obj === 'object' || typeof obj === 'string') && typeof obj.length === 'number' && objectType !== 'function') { + return !obj.length; + } + return false; +} + +function isArray$1(value) { + return Array.isArray(value); +} + +class StorefrontResource extends kt { + /** + * Set a new adapter to the resource instance, this will update the Store instance + * + * @param {import('@fleetbase/sdk').Adapter} adapter + * @return {this} + */ + setAdapter(adapter) { + this.adapter = adapter; + this.store = new StorefrontStore(this.resource, adapter, { + onAfterFetch: this.syncAttributes.bind(this), + actions: this.options?.actions, + }); + return this; + } +} +q('resource', 'StorefrontResource', StorefrontResource); + +const reviewActions = new mt({ + count: function (storeId, options = {}) { + const params = {}; + if (storeId) { + params.store = storeId; + } + return this.adapter.get(`${this.namespace}/count`, params, options); + }, +}); +class Review extends StorefrontResource { + constructor(attributes = {}, adapter, options = {}) { + super(attributes, adapter, 'review', options); + } + getMedia() { + return this.getPhotos(); + } + getPhotos() { + return (this.getAttribute('photos') ?? []); + } + getVideos() { + return this.getMedia().filter((media) => typeof media?.type === 'string' && media.type.startsWith('video/')); + } +} +q('resource', 'Review', Review); + +class StoreHour extends StorefrontResource { + constructor(attributes = {}, adapter, options = {}) { + super(attributes, adapter, 'store-hour', options); + } + get day() { + return this.getAttribute('day'); + } + get isClosed() { + return this.getAttribute('start') === null && this.getAttribute('end') === null; + } + get is24Hours() { + const start = this.startDateInstance; + const end = this.endDateInstance; + if (start === null || end === null || !dateFns.isValid(start) || !dateFns.isValid(end)) { + return false; + } + const diff = Math.abs(start.getTime() - end.getTime()); + const hours = Math.floor(diff / 1000 / 60) / 60; + return hours > 23; + } + get startDateInstance() { + if (!this.hasAttribute('start')) { + return null; + } + const start = this.getAttribute('start'); + if (typeof start !== 'string') { + return null; + } + const includesSeconds = start.split(':').length === 3; + const format = includesSeconds ? 'HH:mm:ss' : 'HH:mm'; + return dateFns.parse(start, format, new Date()); + } + get endDateInstance() { + if (!this.hasAttribute('end')) { + return null; + } + const end = this.getAttribute('end'); + if (typeof end !== 'string') { + return null; + } + const includesSeconds = end.split(':').length === 3; + const format = includesSeconds ? 'HH:mm:ss' : 'HH:mm'; + return dateFns.parse(end, format, new Date()); + } + get humanReadableHoursRange() { + const start = this.startDateInstance; + const end = this.endDateInstance; + if (start === null || end === null || !dateFns.isValid(start) || !dateFns.isValid(end)) { + return `${this.getAttribute('start')} - ${this.getAttribute('end')}`; + } + return `${dateFns.format(start, 'p')} - ${dateFns.format(end, 'p')}`; + } + get humanReadableHours() { + if (this.isClosed) { + return 'Closed'; + } + if (this.is24Hours) { + return '24 Hours'; + } + return this.humanReadableHoursRange; + } + // remove default resource methods + create() { + throw new Error('There is no create() method store location!'); + } + // remove default resource methods + update() { + throw new Error('There is no update() method store location!'); + } + // remove default resource methods + destroy() { + throw new Error('There is no destroy() method store location!'); + } + // remove default resource methods + reload() { + throw new Error('There is no reload() method store location!'); + } +} +q('resource', 'StoreHour', StoreHour); + +class StoreLocation extends StorefrontResource { + constructor(attributes = {}, adapter, options = {}) { + super(attributes, adapter, 'store-location', options); + } + get latitude() { + return this.getAttribute('place.location.coordinates.1'); + } + get longitude() { + return this.getAttribute('place.location.coordinates.0'); + } + get hours() { + const hours = this.getAttribute('hours', []); + return new at((hours || []).map((attributes) => new StoreHour(attributes, this.adapter))); + } + /** Raw embedded merchant payload, normalized across API response versions. */ + get storeData() { + const embeddedStore = this.getAttribute('store_data'); + const legacyStore = this.getAttribute('store'); + return embeddedStore || (legacyStore && typeof legacyStore === 'object' ? legacyStore : null); + } + /** Public store identifier for this location. */ + get storeId() { + const store = this.getAttribute('store'); + const data = this.storeData; + return (typeof store === 'string' ? store : data?.id || data?.public_id); + } + /** Typed embedded merchant when requested with `with_store`. */ + get merchant() { + return this.storeData ? W('resource', 'Store', this.storeData, this.adapter) : null; + } + get isAlwaysOpen() { + return this.hours.length > 0 && this.hours.every((hour) => hour?.is24Hours); + } + get today() { + const today = dateFns.format(new Date(), 'EEEE'); + return this.schedule[today]; + } + get schedule() { + const schedule = {}; + const week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']; + for (let i = 0; i < week.length; i++) { + const day = week[i]; + schedule[day] = new at(); + } + for (let i = 0; i < this.hours.length; i++) { + const hour = this.hours.objectAt(i); + if (hour && schedule[hour.day]) { + schedule[hour.day].pushObject(hour); + } + } + return schedule; + } + // remove default resource methods + create() { + throw new Error('There is no create() method store location!'); + } + // remove default resource methods + update() { + throw new Error('There is no update() method store location!'); + } + // remove default resource methods + destroy() { + throw new Error('There is no destroy() method store location!'); + } +} +q('resource', 'StoreLocation', StoreLocation); + +class PaymentGateway extends StorefrontResource { + token; + constructor(attributes = {}, adapter, options = {}) { + super(attributes, adapter, 'payment-gateway', options); + } + get type() { + return this.getAttribute('type'); + } + get code() { + return this.getAttribute('code'); + } + get isCashGateway() { + return this.type === 'cash'; + } + get isStripeGateway() { + return this.type === 'stripe'; + } + get isQPayGateway() { + return this.type === 'qpay' || this.code === 'qpay'; + } + setCheckoutToken(token) { + this.token = token; + } + getCheckoutToken() { + return this.token; + } + // remove default resource methods + findRecord() { + throw new Error('There is no findRecord() method for payment gateways!'); + } + // remove default resource methods + create() { + throw new Error('There is no create() method for payment gateways!'); + } + // remove default resource methods + update() { + throw new Error('There is no update() method for payment gateways!'); + } + // remove default resource methods + destroy() { + throw new Error('There is no destroy() method for payment gateways!'); + } + // remove default resource methods + reload() { + throw new Error('There is no reload() method for payment gateways!'); + } +} +q('resource', 'PaymentGateway', PaymentGateway); + +class Store extends StorefrontResource { + constructor(attributes = {}, adapter, options = {}) { + super(attributes, adapter, 'store', options); + } + getReviews(params = {}) { + return this.adapter.get('reviews', { store: this.id, ...params }).then((reviews) => { + return new at(reviews.map((attributes) => new Review(attributes, this.adapter))); + }); + } + getTags(params = {}) { + return this.adapter.get('tags', params); + } + getLocations(params = {}) { + return this.adapter.get('locations', { store: this.id, ...params }).then((storeLocations) => { + return new at(storeLocations.map((attributes) => { + if (attributes.place) { + attributes.place = new St(attributes.place, this.adapter); + } + return new StoreLocation(attributes, this.adapter); + })); + }); + } + getLocation(id) { + return this.adapter.get(`locations/${id}`, { store: this.id }).then((attributes) => { + return new StoreLocation(attributes, this.adapter); + }); + } + getPaymentGateways(params = {}) { + return this.adapter.get('gateways', params).then((gateways) => { + return new at(gateways.map((attributes) => { + return new PaymentGateway(attributes, this.adapter); + })); + }); + } + getPaymentGateway(id) { + return this.adapter.get(`gateways/${id}`).then((attributes) => { + return new PaymentGateway(attributes, this.adapter); + }); + } +} +q('resource', 'Store', Store); + +class Product extends StorefrontResource { + constructor(attributes = {}, adapter, options = {}) { + super(attributes, adapter, 'product', options); + } + variants() { + return this.getAttribute('variants'); + } + addons() { + return this.getAttribute('addon_categories'); + } + images() { + return this.getAttribute('images') ?? []; + } + videos() { + return this.getAttribute('videos') ?? []; + } + hours() { + return this.getAttribute('hours') ?? []; + } + get isOnSale() { + return this.getAttribute('is_on_sale'); + } + get isNotOnSale() { + return !this.getAttribute('is_on_sale'); + } + get formattedAmount() { + const { price, sale_price, currency } = this.getAttributes(['price', 'sale_price', 'currency']); + if (this.isOnSale) { + if (isEmpty(sale_price) || isEmpty(currency)) { + return null; + } + return formatCurrency(sale_price / 100, currency); + } + if (isEmpty(price) || isEmpty(currency)) { + return null; + } + return formatCurrency(price / 100, currency); + } + get merchant() { + const attributes = this.getAttribute('store'); + return attributes && typeof attributes === 'object' ? new Store(attributes, this.adapter) : null; + } + getReviews() { + return this.adapter.get('reviews', { store: this.id }).then((reviews) => { + return new at(reviews.map((attributes) => new Review(attributes, this.adapter))); + }); + } +} +q('resource', 'Product', Product); + +class Category extends StorefrontResource { + constructor(attributes = {}, adapter, options = {}) { + super(attributes, adapter, 'category', options); + } + getProducts() { + return this.adapter.get('products', { category: this.id }).then((products) => { + return new at(products.map((attributes) => new Product(attributes, this.adapter))); + }); + } +} +q('resource', 'Category', Category); + +const customerActions = new mt({ + // const { error } = await storefront.customers.login('+1 111-1111'); + login: function (identity, password = null, attributes = {}) { + // handle phone number authentication + if (isPhone(identity)) { + return this.adapter.post('customers/login-with-sms', { phone: identity }); + } + if (!password) { + throw new Error('Login requires password!'); + } + return this.adapter.post('customers/login', { identity, password, ...attributes }).then(this.afterFetch.bind(this)); + }, + // const customer = await storefront.customers.loginWithApple('', '', '', '', ''); + loginWithApple: function (appleUserId, identityToken, authorizationCode, email, name, attributes = {}) { + return this.adapter.post('customers/login-with-apple', { appleUserId, identityToken, authorizationCode, email, name, ...attributes }).then(this.afterFetch.bind(this)); + }, + // const customer = await storefront.customers.loginWithFacebook('', '', '', ''); + loginWithFacebook: function (facebookUserId, email, name, avatarUrl, attributes = {}) { + return this.adapter.post('customers/login-with-facebook', { facebookUserId, email, name, avatarUrl, ...attributes }).then(this.afterFetch.bind(this)); + }, + // const customer = await storefront.customers.loginWithGoogle('', ''); + loginWithGoogle: function (idToken, clientId, attributes = {}) { + return this.adapter.post('customers/login-with-google', { idToken, clientId, ...attributes }).then(this.afterFetch.bind(this)); + }, + verifyCode: function (identity, code, attributes = {}) { + return this.adapter.post('customers/verify-code', { identity, code, ...attributes }).then(this.afterFetch.bind(this)); + }, + requestCreationCode(identity, mode = 'email') { + return this.adapter.post('customers/request-creation-code', { + identity, + mode, + }); + }, + create(identity, code, attributes = {}) { + return this.adapter.post('customers', { identity, code, ...attributes }).then(this.afterFetch.bind(this)); + }, + retrieve: function (id) { + return this.findRecord(id); + }, +}); +class Customer extends StorefrontResource { + constructor(attributes = {}, adapter, options = {}) { + super(attributes, adapter, 'customer', { + actions: customerActions, + ...options, + }); + } + /** + * Set a new adapter to the resource instance, this will update the Store instance + * + * @param {import('@fleetbase/sdk').Adapter} adapter + * @return {this} + */ + setAdapter(adapter) { + this.adapter = adapter; + this.store = new StorefrontStore(this.resource, adapter, { + onAfterFetch: this.syncAttributes.bind(this), + actions: this.options?.actions, + }); + return this; + } + get token() { + const token = this.getAttribute('token'); + return typeof token === 'string' ? token : undefined; + } + async syncDevice(token, platform) { + return this.performAuthorizedRequest('customers/register-device', { token, platform }, 'POST'); + } + performAuthorizedRequest(endpoint, params = {}, method = 'GET', options = {}) { + const requestOptions = { + ...options, + headers: { + ...options.headers, + 'Customer-Token': this.token, + }, + }; + const adapter = this.adapter; + return adapter[method.toLowerCase()](endpoint, params, requestOptions); + } + async getSavedPlaces() { + const places = await this.performAuthorizedRequest('customers/places'); + return new at(places.map((attributes) => new St(attributes, this.adapter))); + } + async getOrderHistory(params = {}) { + const orders = await this.performAuthorizedRequest('customers/orders', params); + return new at(orders.map((attributes) => new xt(attributes, this.adapter))); + } + getStripeEphemeralKey(params = {}) { + return this.performAuthorizedRequest('customers/stripe-ephemeral-key', params, 'POST'); + } + getStripeSetupIntent(params = {}) { + return this.performAuthorizedRequest('customers/stripe-setup-intent', params, 'POST'); + } + startAccountClosure(params = {}, options = {}) { + return this.performAuthorizedRequest('customers/account-closure', params, 'POST', options); + } + confirmAccountClosure(code, params = {}, options = {}) { + return this.performAuthorizedRequest('customers/confirm-account-closure', { code, ...params }, 'POST', options); + } + requestPhoneVerification(phone, params = {}, options = {}) { + return this.performAuthorizedRequest('customers/request-phone-verification', { phone, ...params }, 'POST', options); + } + verifyPhoneNumber(code, phone, params = {}, options = {}) { + return this.performAuthorizedRequest('customers/verify-phone-number', { code, phone, ...params }, 'POST', options); + } + updateContactAlias(attributes = {}, options = {}) { + return this.performAuthorizedRequest(`contacts/${this.id}`, attributes, 'PUT', options).then((response) => { + this.syncAttributes(response); + return this; + }); + } +} +q('resource', 'Customer', Customer); + +const { isArray } = Array; +const cartActions = new mt({ + create: undefined, + findAll: undefined, + query: undefined, + queryRecord: undefined, + add: function (id, productId, quantity = 1, data = {}, options = {}) { + return this.adapter.post(`${this.namespace}/${id}/${productId}`, { ...data, quantity }, options).then(this.afterFetch.bind(this)); + }, + update: function (id, cartItemId, quantity, data = {}, options = {}) { + return this.adapter.put(`${this.namespace}/${id}/${cartItemId}`, { ...data, quantity }, options).then(this.afterFetch.bind(this)); + }, + remove: function (id, cartItemId, options = {}) { + return this.adapter.delete(`${this.namespace}/${id}/${cartItemId}`, {}, options).then(this.afterFetch.bind(this)); + }, + empty: function (id, options = {}) { + return this.adapter.put(`${this.namespace}/${id}/empty`, {}, options).then(this.afterFetch.bind(this)); + }, + retrieve: function (id = '') { + return this.findRecord(id); + }, +}); +class Cart extends StorefrontResource { + constructor(attributes = {}, adapter, options = {}) { + super(attributes, adapter, 'cart', { actions: cartActions, ...options }); + } + add(productId, quantity = 1, data = {}, options = {}) { + if (productId instanceof Product) { + productId = productId.id; + } + return this.store.add(this.id, productId, quantity, data, options); + } + update(cartItemId, quantity, data = {}, options = {}) { + const update = this.store.update; + return update.call(this.store, this.id, cartItemId, quantity, data, options); + } + remove(cartItemId, options = {}) { + return this.store.remove(this.id, cartItemId, options); + } + empty(options = {}) { + return this.store.empty(this.id, options); + } + delete() { + return this.destroy(); + } + refresh() { + return this.store.retrieve(this.id); + } + subtotal() { + return this.contents().reduce((subtotal, cartItem) => subtotal + Number(cartItem?.subtotal || 0), 0); + } + contents() { + const items = this.getAttribute('items', []); + return isArray(items) ? items : []; + } + hasProduct(productId) { + return this.contents().findIndex((cartItem) => cartItem.product_id === productId) !== -1; + } + get isEmpty() { + return this.contents().length === 0; + } + get isNotEmpty() { + return !this.isEmpty; + } +} +q('resource', 'Cart', Cart); + +class Network extends StorefrontResource { + constructor(attributes = {}, adapter, options = {}) { + super(attributes, adapter, 'network', options); + } + getTags(params = {}) { + return this.adapter.get('tags', params); + } + async getResourceCollection(endpoint, ResourceClass, params = {}) { + const resources = await this.adapter.get(endpoint, params); + return new at(resources.map((attributes) => new ResourceClass(attributes, this.adapter))); + } + async getStores(params = {}) { + return this.getResourceCollection('stores', Store, params); + } + async getStoreLocations(params = {}) { + return this.getResourceCollection('store-locations', StoreLocation, params); + } + async getCategories(params = {}) { + return this.getResourceCollection('categories', Category, params); + } + async search(query, params = {}) { + return this.getResourceCollection('search', Product, { query, with_store: true, ...params }); + } + async lookupStore(id) { + const attributes = await this.adapter.get(`lookup/${id}`); + return new Store(attributes, this.adapter); + } + async getReviews(storeId, params = {}) { + return this.getResourceCollection('reviews', Review, { store: storeId, ...params }); + } + async getPaymentGateways(params = {}) { + return this.getResourceCollection('gateways', PaymentGateway, params); + } +} +q('resource', 'Network', Network); + +class DeliveryServiceQuote extends qt { + constructor(attributes = {}, adapter, options = {}) { + let finalAttributes = attributes; + let finalAdapter = adapter; + // If `attributes` is actually an Adapter, adjust the arguments accordingly. + if (attributes instanceof Mt || (attributes && typeof attributes.get === 'function' && typeof attributes.post === 'function')) { + finalAttributes = {}; + finalAdapter = attributes; + } + // Call `super()` exactly once with the resolved arguments. + super(finalAttributes, finalAdapter, 'service-quote', options); + } + /** + * Set a new adapter to the resource instance, this will update the Store instance + * + * @param {Adapter} adapter + * @return {this} + */ + setAdapter(adapter) { + this.adapter = adapter; + this.store = new StorefrontStore(this.resource, adapter, { + onAfterFetch: this.syncAttributes.bind(this), + actions: this.options?.actions, + }); + return this; + } + get formattedAmount() { + const { amount, currency } = this.getAttributes(['amount', 'currency']); + if (isEmpty(amount) || isEmpty(currency)) { + return null; + } + return formatCurrency(amount / 100, currency); + } + async fromCart(...args) { + return this.fetchServiceQuotesFromCart(...args); + } + async fetchServiceQuotesFromCart(origin, destination, cart, config = 'storefront', all = false) { + if (typeof origin === 'object' && origin?.id) { + origin = origin.id; + } + if (typeof destination === 'object' && destination?.id) { + destination = destination.id; + } + if (typeof cart === 'object' && cart?.id) { + cart = cart.id; + } + const serviceQuotes = await this.adapter.get('service-quotes/from-cart', { + origin, + destination, + cart, + config, + all, + }); + if (isArray$1(serviceQuotes)) { + return new at(serviceQuotes.map((serviceQuote) => new DeliveryServiceQuote(serviceQuote, this.adapter))); + } + return new DeliveryServiceQuote(serviceQuotes, this.adapter); + } + static async getFromCart(adapter, origin, destination, cart, config = 'storefront', all = false) { + const quote = new DeliveryServiceQuote(adapter); + return quote.fetchServiceQuotesFromCart(origin, destination, cart, config, all); + } +} +q('resource', 'DeliveryServiceQuote', DeliveryServiceQuote); + +class Order extends xt { + constructor(attributes = {}, adapter, options = {}) { + super(attributes, adapter, options); + } +} +q('resource', 'Order', Order); + +const checkoutActions = new mt({ + create: undefined, + findAll: undefined, + query: undefined, + queryRecord: undefined, + initialize: function (customer, cart, serviceQuote, gateway, orderOptions = {}, options = {}) { + if (wt(customer)) { + customer = customer.id; + } + if (wt(cart)) { + cart = cart.id; + } + if (wt(serviceQuote)) { + serviceQuote = serviceQuote.id; + } + if (wt(gateway)) { + gateway = gateway.getAttribute('code'); + } + return this.adapter.get(`${this.namespace}/before`, { ...orderOptions, customer, cart, serviceQuote, gateway }, options); + }, + captureOrder: function (token, params = {}, options = {}) { + return this.adapter.post(`${this.namespace}/capture`, { token, ...params }, options).then((orderJson) => new Order(orderJson, this.adapter)); + }, + createStripeSetupIntent: function (customer, params = {}, options = {}) { + if (wt(customer)) { + customer = customer.id; + } + return this.adapter.post(`${this.namespace}/stripe-setup-intent`, { customer, ...params }, options); + }, + updateStripePaymentIntent: function (paymentIntent, customer, cart, serviceQuote, orderOptions = {}, options = {}) { + if (wt(customer)) { + customer = customer.id; + } + if (wt(cart)) { + cart = cart.id; + } + if (wt(serviceQuote)) { + serviceQuote = serviceQuote.id; + } + return this.adapter.put(`${this.namespace}/stripe-update-payment-intent`, { paymentIntent, customer, cart, serviceQuote, ...orderOptions }, options); + }, + getStatus: function (checkout, token, options = {}) { + if (wt(checkout)) { + checkout = checkout.id; + } + return this.adapter.get(`${this.namespace}/status`, { checkout, token }, options); + }, + captureQPay: function (checkout, params = {}, options = {}) { + if (wt(checkout)) { + checkout = checkout.id; + } + return this.adapter.post(`${this.namespace}/capture-qpay`, { checkout, ...params }, options); + }, + captureQPayCallback: function (checkout, params = {}, options = {}) { + if (wt(checkout)) { + checkout = checkout.id; + } + return this.adapter.get(`${this.namespace}/capture-qpay`, { checkout, ...params }, options); + }, +}); +class Checkout extends StorefrontResource { + constructor(attributes = {}, adapter, options = {}) { + super(attributes, adapter, 'checkout', { actions: checkoutActions, ...options }); + } + initialize(customer, cart, serviceQuote, gateway, orderOptions = {}, options = {}) { + return this.store.initialize(customer, cart, serviceQuote, gateway, orderOptions, options); + } + captureOrder(token, params = {}, options = {}) { + return this.store.captureOrder(token, params, options); + } + createStripeSetupIntent(customer, params = {}, options = {}) { + return this.store.createStripeSetupIntent(customer, params, options); + } + updateStripePaymentIntent(paymentIntent, customer, cart, serviceQuote, orderOptions = {}, options = {}) { + return this.store.updateStripePaymentIntent(paymentIntent, customer, cart, serviceQuote, orderOptions, options); + } + getStatus(checkout, token, options = {}) { + return this.store.getStatus(checkout, token, options); + } + captureQPay(checkout, params = {}, options = {}) { + return this.store.captureQPay(checkout, params, options); + } + captureQPayCallback(checkout, params = {}, options = {}) { + return this.store.captureQPayCallback(checkout, params, options); + } +} +q('resource', 'Checkout', Checkout); + +class FoodTruck extends StorefrontResource { + constructor(attributes = {}, adapter, options = {}) { + super(attributes, adapter, 'food-truck', options); + } +} +q('resource', 'FoodTruck', FoodTruck); + +function idFor(value) { + return wt(value) ? value.id : value; +} +const orderActions = new mt({ + create: undefined, + update: undefined, + findAll: undefined, + query: undefined, + queryRecord: undefined, + completePickup: function (order, params = {}, options = {}) { + return this.adapter.put(`${this.namespace}/picked-up`, { order: idFor(order), ...params }, options); + }, + getReceipt: function (order, params = {}, options = {}) { + return this.adapter.post(`${this.namespace}/receipt`, { order: idFor(order), ...params }, options); + }, +}); + +/** + * // instance + * const storefront = new Storefront(); + * + */ +class Storefront { + version; + options; + adapter; + products; + categories; + foodTrucks; + reviews; + customers; + cart; + checkout; + orders; + /** + * Builds an instance of the Fleetbase Storefront SDK + * + * @param {String} storeKey The access key for the storefront store + * @param {Object} config The config object + * @param {Boolean} debug Enable debug mode + * @return {Storefront} Instance + */ + constructor(storeKey, config = {}, debug = false) { + this.version = config.version || 'v1'; + this.options = { + version: this.version, + host: config.host || 'https://api.fleetbase.io', + namespace: config.namespace || `storefront/${this.version}`, + publicKey: storeKey, + debug, + }; + if (!isKeyValid(storeKey)) { + throw new Error('⚠️ Invalid Storefront key given to Storefront SDK'); + } + this.adapter = config.adapter || ht(this.options); + this.initializeStores(); + } + initializeStores() { + this.products = new StorefrontStore('product', this.adapter); + this.categories = new StorefrontStore('category', this.adapter); + this.foodTrucks = new StorefrontStore('food-truck', this.adapter); + this.reviews = new StorefrontStore('review', this.adapter).extendActions(reviewActions); + this.customers = new StorefrontStore('customer', this.adapter).extendActions(customerActions); + this.cart = new StorefrontStore('cart', this.adapter).extendActions(cartActions); + this.checkout = new StorefrontStore('checkout', this.adapter).extendActions(checkoutActions); + this.orders = new StorefrontStore('order', this.adapter).extendActions(orderActions); + return this; + } + /** + * Loads information about this storefront. + * + * @param {{ resource?: boolean }} options + * @returns {Promise | Store | Network>} + */ + about(options = {}) { + return this.adapter.get('about').then((attributes) => (options.resource ? this.hydrateOwner(attributes) : attributes)); + } + /** @returns {Promise} Loads the storefront owner as a typed resource. */ + getOwner() { + return this.about({ resource: true }); + } + /** + * Looks up a specific store or network by public ID. + * + * @param {string} id + * @param {{ resource?: boolean }} options + * @returns {Promise | Store | Network>} + */ + lookup(id, options = {}) { + return this.adapter.get(`lookup/${id}`).then((attributes) => (options.resource ? this.hydrateOwner(attributes) : attributes)); + } + /** + * @param {string} id + * @returns {Promise} + */ + lookupResource(id) { + return this.lookup(id, { resource: true }); + } + /** + * Searches products in the current store or network. + * + * @param {string} query + * @param {Record} options + * @returns {Promise>} + */ + search(query, options = {}) { + return this.adapter.get('search', { query, ...options }).then((products) => { + return new at(products.map((product) => new Product(product, this.adapter))); + }); + } + hydrateOwner(attributes = {}) { + if (attributes?.is_network === true) { + return new Network(attributes, this.adapter); + } + return new Store(attributes, this.adapter); + } + static newInstance(...args) { + return new Storefront(...args); + } + setAdapter(adapter) { + this.adapter = adapter; + return this.initializeStores(); + } + getAdapter() { + return this.adapter; + } +} + +exports.Cart = Cart; +exports.Category = Category; +exports.Checkout = Checkout; +exports.Customer = Customer; +exports.DeliveryServiceQuote = DeliveryServiceQuote; +exports.FoodTruck = FoodTruck; +exports.Network = Network; +exports.Order = Order; +exports.PaymentGateway = PaymentGateway; +exports.Product = Product; +exports.Review = Review; +exports.Store = Store; +exports.StoreHour = StoreHour; +exports.StoreLocation = StoreLocation; +exports.default = Storefront; +exports.lookup = W; +//# sourceMappingURL=storefront.cjs.map + +module.exports = Object.assign(exports.default, exports); diff --git a/dist/cjs/storefront.cjs.map b/dist/cjs/storefront.cjs.map new file mode 100644 index 0000000..0c36440 --- /dev/null +++ b/dist/cjs/storefront.cjs.map @@ -0,0 +1 @@ +{"version":3,"file":"storefront.cjs","sources":["../../node_modules/.pnpm/@fleetbase+sdk@1.2.13/node_modules/@fleetbase/sdk/dist/esm/fleetbase.js","../../src/store.ts","../../src/utils/is-phone.ts","../../src/utils/format-currency.ts","../../src/utils/is-key-valid.ts","../../src/utils/is-empty.ts","../../src/utils/array.ts","../../src/resource.ts","../../src/resources/review.ts","../../src/resources/store-hour.ts","../../src/resources/store-location.ts","../../src/resources/payment-gateway.ts","../../src/resources/store.ts","../../src/resources/product.ts","../../src/resources/category.ts","../../src/resources/customer.ts","../../src/resources/cart.ts","../../src/resources/network.ts","../../src/resources/delivery-service-quote.ts","../../src/resources/order.ts","../../src/resources/checkout.ts","../../src/resources/food-truck.ts","../../src/resources/order-actions.ts","../../src/storefront.ts"],"sourcesContent":["function t(t,e){this.v=t,this.k=e}function e(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,a=!0,s=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function g(t,e,n){return(e=j(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function y(t){return y=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},y(t)}function b(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,\"prototype\",{writable:!1}),e&&O(t,e)}function m(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(m=function(){return!!t})()}function w(t){if(\"undefined\"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t[\"@@iterator\"])return Array.from(t)}function k(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}function E(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function A(t){for(var e=1;e=0;--o){var a=this.tryEntries[o],s=a.completion;if(\"root\"===a.tryLoc)return i(\"end\");if(a.tryLoc<=this.prev){var u=r.call(a,\"catchLoc\"),c=r.call(a,\"finallyLoc\");if(u&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,\"finallyLoc\")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),_(n),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var i=r.arg;_(n)}return i}}throw Error(\"illegal catch attempt\")},delegateYield:function(e,n,r){return this.delegate={iterator:L(e),resultName:n,nextLoc:r},\"next\"===this.method&&(this.arg=t),g}},e}function O(t,e){return O=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},O(t,e)}function R(t,e){return n(t)||function(t,e){var n=null==t?null:\"undefined\"!=typeof Symbol&&t[Symbol.iterator]||t[\"@@iterator\"];if(null!=n){var r,i,o,a,s=[],u=!0,c=!1;try{if(o=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=o.call(n)).done)&&(s.push(r.value),s.length!==e);u=!0);}catch(t){c=!0,i=t}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw i}}return s}}(t,e)||_(t,e)||k()}function S(t){return function(t){if(Array.isArray(t))return e(t)}(t)||w(t)||_(t)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function j(t){var e=function(t,e){if(\"object\"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||\"default\");if(\"object\"!=typeof r)return r;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===e?String:Number)(t)}(t,\"string\");return\"symbol\"==typeof e?e:e+\"\"}function T(t){return T=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},T(t)}function _(t,n){if(t){if(\"string\"==typeof t)return e(t,n);var r={}.toString.call(t).slice(8,-1);return\"Object\"===r&&t.constructor&&(r=t.constructor.name),\"Map\"===r||\"Set\"===r?Array.from(t):\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?e(t,n):void 0}}function P(t){return function(){return new L(t.apply(this,arguments))}}function L(e){var n,r;function i(n,r){try{var a=e[n](r),s=a.value,u=s instanceof t;Promise.resolve(u?s.v:s).then((function(t){if(u){var r=\"return\"===n?\"return\":\"next\";if(!s.k||t.done)return i(r,t);t=e[r](t).value}o(a.done?\"return\":\"normal\",t)}),(function(t){i(\"throw\",t)}))}catch(t){o(\"throw\",t)}}function o(t,e){switch(t){case\"return\":n.resolve({value:e,done:!0});break;case\"throw\":n.reject(e);break;default:n.resolve({value:e,done:!1})}(n=n.next)?i(n.key,n.arg):r=null}this._invoke=function(t,e){return new Promise((function(o,a){var s={key:t,arg:e,resolve:o,reject:a,next:null};r?r=r.next=s:(n=r=s,i(t,e))}))},\"function\"!=typeof e.return&&(this.return=void 0)}function C(t){var e=\"function\"==typeof Map?new Map:void 0;return C=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf(\"[native code]\")}catch(e){return\"function\"==typeof t}}(t))return t;if(\"function\"!=typeof t)throw new TypeError(\"Super expression must either be null or a function\");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return f(t,arguments,y(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),O(n,t)},C(t)}L.prototype[\"function\"==typeof Symbol&&Symbol.asyncIterator||\"@@asyncIterator\"]=function(){return this},L.prototype.next=function(t){return this._invoke(\"next\",t)},L.prototype.throw=function(t){return this._invoke(\"throw\",t)},L.prototype.return=function(t){return this._invoke(\"return\",t)};var N=function(){function t(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];h(this,t),g(this,\"uncountableWords\",[\"equipment\",\"information\",\"rice\",\"money\",\"species\",\"series\",\"fish\",\"sheep\",\"moose\",\"deer\",\"news\"]),g(this,\"pluralRules\",[[new RegExp(\"(m)an$\",\"gi\"),\"$1en\"],[new RegExp(\"(pe)rson$\",\"gi\"),\"$1ople\"],[new RegExp(\"(child)$\",\"gi\"),\"$1ren\"],[new RegExp(\"^(ox)$\",\"gi\"),\"$1en\"],[new RegExp(\"(ax|test)is$\",\"gi\"),\"$1es\"],[new RegExp(\"(octop|vir)us$\",\"gi\"),\"$1i\"],[new RegExp(\"(alias|status)$\",\"gi\"),\"$1es\"],[new RegExp(\"(bu)s$\",\"gi\"),\"$1ses\"],[new RegExp(\"(buffal|tomat|potat)o$\",\"gi\"),\"$1oes\"],[new RegExp(\"([ti])um$\",\"gi\"),\"$1a\"],[new RegExp(\"sis$\",\"gi\"),\"ses\"],[new RegExp(\"(?:([^f])fe|([lr])f)$\",\"gi\"),\"$1$2ves\"],[new RegExp(\"(hive)$\",\"gi\"),\"$1s\"],[new RegExp(\"([^aeiouy]|qu)y$\",\"gi\"),\"$1ies\"],[new RegExp(\"(x|ch|ss|sh)$\",\"gi\"),\"$1es\"],[new RegExp(\"(matr|vert|ind)ix|ex$\",\"gi\"),\"$1ices\"],[new RegExp(\"([m|l])ouse$\",\"gi\"),\"$1ice\"],[new RegExp(\"(quiz)$\",\"gi\"),\"$1zes\"],[new RegExp(\"s$\",\"gi\"),\"s\"],[new RegExp(\"$\",\"gi\"),\"s\"]]),g(this,\"singularRules\",[[new RegExp(\"(m)en$\",\"gi\"),\"$1an\"],[new RegExp(\"(pe)ople$\",\"gi\"),\"$1rson\"],[new RegExp(\"(child)ren$\",\"gi\"),\"$1\"],[new RegExp(\"([ti])a$\",\"gi\"),\"$1um\"],[new RegExp(\"((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$\",\"gi\"),\"$1$2sis\"],[new RegExp(\"(hive)s$\",\"gi\"),\"$1\"],[new RegExp(\"(tive)s$\",\"gi\"),\"$1\"],[new RegExp(\"(curve)s$\",\"gi\"),\"$1\"],[new RegExp(\"([lr])ves$\",\"gi\"),\"$1f\"],[new RegExp(\"([^fo])ves$\",\"gi\"),\"$1fe\"],[new RegExp(\"([^aeiouy]|qu)ies$\",\"gi\"),\"$1y\"],[new RegExp(\"(s)eries$\",\"gi\"),\"$1eries\"],[new RegExp(\"(m)ovies$\",\"gi\"),\"$1ovie\"],[new RegExp(\"(x|ch|ss|sh)es$\",\"gi\"),\"$1\"],[new RegExp(\"([m|l])ice$\",\"gi\"),\"$1ouse\"],[new RegExp(\"(bus)es$\",\"gi\"),\"$1\"],[new RegExp(\"(o)es$\",\"gi\"),\"$1\"],[new RegExp(\"(shoe)s$\",\"gi\"),\"$1\"],[new RegExp(\"(cris|ax|test)es$\",\"gi\"),\"$1is\"],[new RegExp(\"(octop|vir)i$\",\"gi\"),\"$1us\"],[new RegExp(\"(alias|status)es$\",\"gi\"),\"$1\"],[new RegExp(\"^(ox)en\",\"gi\"),\"$1\"],[new RegExp(\"(vert|ind)ices$\",\"gi\"),\"$1ex\"],[new RegExp(\"(matr)ices$\",\"gi\"),\"$1ix\"],[new RegExp(\"(quiz)zes$\",\"gi\"),\"$1\"],[new RegExp(\"s$\",\"gi\"),\"\"]]),g(this,\"nonTitlecasedWords\",[\"and\",\"or\",\"nor\",\"a\",\"an\",\"the\",\"so\",\"but\",\"to\",\"of\",\"at\",\"by\",\"from\",\"into\",\"on\",\"onto\",\"off\",\"out\",\"in\",\"over\",\"with\",\"for\"]),g(this,\"idSuffix\",new RegExp(\"(_ids|_id)$\",\"g\")),g(this,\"underbar\",new RegExp(\"_\",\"g\")),g(this,\"spaceOrUnderbar\",new RegExp(\"[ _]\",\"g\")),g(this,\"uppercase\",new RegExp(\"([A-Z])\",\"g\")),g(this,\"underbarPrefix\",new RegExp(\"^_\")),this.str=e,this.chain=n}return v(t,[{key:\"get\",value:function(){return this.str}},{key:\"applyRules\",value:function(t,e,n,r){if(r)t=r;else if(!(n.indexOf(t.toLowerCase())>-1))for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:null;return t=t||this.str,this.applyRules(t,this.pluralRules,this.uncountableWords,e)}},{key:\"singularize\",value:function(t,e){return t=t||this.str,this.applyRules(t,this.singularRules,this.uncountableWords,e)}},{key:\"camelize\",value:function(t,e){for(var n=(t=t||this.str).split(\"/\"),r=0;r1&&void 0!==arguments[1]&&arguments[1];return t=t||this.str,t=this.underscore(this.demodulize(t))+(e?\"\":\"_\")+\"id\",this.str=t,!0===this.chain?this:t}},{key:\"ordinalize\",value:function(t){for(var e=(t=t||this.str).split(\" \"),n=0;n2?i-2:0),a=2;a2?n-2:0),i=2;i2?n-2:0),i=2;i2?n-2:0),i=2;i1?e-1:0),r=1;r3&&void 0!==arguments[3]?arguments[3]:[];if(V(t))if(r.length<=X)t.splice.apply(t,[e,n].concat(S(r)));else{t.splice(e,n);for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:0,r=t.length,i=n;i2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3?arguments[3]:void 0,i=t.length;return n<0&&(n+=i),nt(t,r&&e!=e?function(t){return t!=t}:function(t){return t===e},n)}function it(t,e,n){return Q(t,e,0,[n]),n}function ot(){return f(at,Array.prototype.slice.call(arguments))}var at=function(){function t(){return h(this,t),r(V(arguments[0])?l(this,t,S(arguments[0])):l(this,t,arguments))}return b(t,C(Array)),v(t,[{key:\"notEmpty\",get:function(){return this.length>0}},{key:\"empty\",get:function(){return 0===this.length}},{key:\"first\",get:function(){return tt(this,0)}},{key:\"last\",get:function(){return tt(this,this.length-1)}},{key:\"replace\",value:function(t,e){return Q(this,t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:[]),this}},{key:\"objectsAt\",value:function(t){var e=this;return t.map((function(t){return tt(e,t)}))}},{key:\"objectAt\",value:function(t){return tt(this,t)}},{key:\"indexOf\",value:function(t,e){return rt(this,t,e,!1)}},{key:\"lastIndexOf\",value:function(t,e){var n=this.length;(void 0===e||e>=n)&&(e=n-1),e<0&&(e+=n);for(var r=e;r>=0;r--)if(tt(this,r)===t)return r;return-1}},{key:\"includes\",value:function(t,e){return-1!==rt(this,t,e,!0)}},{key:\"findBy\",value:function(){return t=this,e=et.apply(void 0,arguments),-1===(r=nt(t,e.bind(n),0))?void 0:tt(t,r);var t,e,n,r}},{key:\"findIndexBy\",value:function(){return nt(this,et.apply(void 0,arguments))}},{key:\"isEvery\",value:function(){return t=this,e=et.apply(void 0,arguments),r=e.bind(n),-1===nt(t,(function(t,e,n){return!r(t,e,n)}),0);var t,e,n,r}},{key:\"isAny\",value:function(){return t=this,e=et.apply(void 0,arguments),-1!==nt(t,e.bind(n),0);var t,e,n}},{key:\"invoke\",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:Y,n=[],r=new Set,i=\"function\"==typeof e?e:function(t){return get(t,e)};return t.forEach((function(t){var e=i(t);r.has(e)||(r.add(e),n.push(t))})),n}(this,t)}},{key:\"without\",value:function(t){if(!this.includes(t))return this;var e=t==t?function(e){return e!==t}:function(t){return t==t};return this.filter(e)}},{key:\"clear\",value:function(){var t=this.length;return 0===t||this.replace(0,t,[]),this}},{key:\"insertAt\",value:function(t,e){return it(this,t,e),this}},{key:\"replaceAt\",value:function(t,e){return this.replace(t,1,[e])}},{key:\"removeAt\",value:function(t,e){return function(t,e){return Q(t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,[]),t}(this,t,e)}},{key:\"pushObject\",value:function(t){return this.insertAt(this.length,t)}},{key:\"pushObjects\",value:function(t){return this.replace(this.length,0,t),this}},{key:\"popObject\",value:function(){var t=this.length;if(0===t)return null;var e=tt(this,t-1);return this.removeAt(t-1,1),e}},{key:\"shiftObject\",value:function(){if(0===this.length)return null;var t=tt(this,0);return this.removeAt(0),t}},{key:\"unshiftObject\",value:function(t){return it(this,0,t)}},{key:\"unshiftObjects\",value:function(t){return this.replace(0,0,t),this}},{key:\"reverseObjects\",value:function(){var t=this.length;if(0===t)return this;var e=this.toArray().reverse();return this.replace(0,t,e),this}},{key:\"setObjects\",value:function(t){if(0===t.length)return this.clear();var e=this.length;return this.replace(0,e,t),this}},{key:\"removeObject\",value:function(t){for(var e=this.length||0;--e>=0;){tt(this,e)===t&&this.removeAt(e)}return this}},{key:\"removeObjects\",value:function(t){for(var e=t.length-1;e>=0;e--)this.removeObject(t[e]);return this}},{key:\"addObject\",value:function(t){return this.includes(t)||this.pushObject(t),this}},{key:\"addObjects\",value:function(t){var e=this;return t.forEach((function(t){return e.addObject(t)})),this}}])}();function st(t){var e=null==t;if(e)return e;if(\"number\"==typeof t.size)return!t.size;var n=T(t);if(\"object\"===n){var r=t.size;if(\"number\"==typeof r)return!r}if(\"number\"==typeof t.length&&\"function\"!==n)return!t.length;if(\"object\"===n){var i=t.length;if(\"number\"==typeof i)return!i}return!1}function ut(t){return isFinite(t)&&Math.abs(t)<=90}function ct(t){return isFinite(t)&&Math.abs(t)<=180&&Math.abs(t)>=90}function lt(){var t,e,n;return!(\"undefined\"==typeof process||\"object\"!==T(null===(t=process)||void 0===t?void 0:t.env)&&-1===(null===(e=process.release)||void 0===e||null===(e=e.name)||void 0===e?void 0:e.search(/node|io.js/))||\"undefined\"!=typeof window&&\"ReactNative\"!==(null===(n=window)||void 0===n||null===(n=n.navigator)||void 0===n?void 0:n.product))}function ht(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return lt()?W(\"adapter\",\"NodeAdapter\",t):W(\"adapter\",\"BrowserAdapter\",t)}var ft=function(){return v((function t(e){h(this,t),this.place=e,this.geometry=null==e?void 0:e.geometry,this.components=this.parseComponents(),this.attributes=this.parseProperties()}),[{key:\"parse\",value:function(){this.parseComponents(),this.parseProperties()}},{key:\"parseComponents\",value:function(){var t;return((null===(t=this.place)||void 0===t?void 0:t.address_components)||[]).reduce((function(t,e){return e.types.forEach((function(n){t[n]=e})),t}),{})}},{key:\"parseProperties\",value:function(){var t,e={streetNumber:this.get(\"street_number\"),streetName:this.get(\"route\"),coordinates:null!==(t=this.geometry)&&void 0!==t&&t.location?Object.values(this.geometry.location):[0,0],city:this.or([\"locality\",\"sublocality\",\"sublocality_level_1\",\"neighborhood\",\"administrative_area_level_3\",\"administrative_area_level_2\"]),county:this.get(\"administrative_area_level_2\"),stateShort:this.get(\"administrative_area_level_1\",!0),stateLong:this.get(\"administrative_area_level_1\"),countryShort:this.get(\"country\",!0),country:this.get(\"country\",!0),countryLong:this.get(\"country\"),postalCode:this.get(\"postal_code\")};return e.address=[e.streetNumber,e.streetName].filter(Boolean).join(\" \"),e}},{key:\"all\",value:function(){return this.attributes}},{key:\"or\",value:function(){var t,e=p(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]);try{for(e.s();!(t=e.n()).done;){var n=t.value;if(V(n)){var r=n[0],i=n[1];if(this.has(r))return this.get(r,i)}else if(this.has(n))return this.get(n)}}catch(t){e.e(t)}finally{e.f()}return null}},{key:\"has\",value:function(t){return t in this.components}},{key:\"get\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t in this.components?e?this.components[t].short_name:this.components[t].long_name:null}},{key:\"setAttributes\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.attributes=A(A({},this.attributes),t),this}},{key:\"setAttribute\",value:function(t,e){return this.attributes[t]=e,this}},{key:\"getAttribute\",value:function(t){return this.attributes[t]||null}}])}(),dt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;h(this,t),this.type=\"Point\",this.coordinates=[n,e]}return v(t,[{key:\"latitude\",get:function(){return this.coordinates[1]}},{key:\"longitude\",get:function(){return this.coordinates[0]}},{key:\"lat\",value:function(){return this.latitude}},{key:\"lng\",value:function(){return this.longitude}},{key:\"serialize\",value:function(){return{type:\"Point\",coorindates:[this.lat(),this.lng()]}}},{key:\"toJson\",value:function(){return this.serialize()}},{key:\"toString\",value:function(){return\"(\".concat(this.latitude,\", \").concat(this.longitude,\")\")}}],[{key:\"fromGeoJson\",value:function(e){var n=R(e.coordinates,2),r=n[0];return new t(n[1],r)}}])}();function vt(t,e){var n=t();return Array.isArray(n)||\"object\"===T(n)?pt(n,e):null}function pt(t,e){var n,r=t,i=T(t),o=\"object\"===i,a=\"function\"===i,s=Array.isArray(t),u=\"string\"===T(e)&&e.includes(\".\")?e.split(\".\"):[e];if(s||o){for(var c=0;c1&&void 0!==arguments[1]?arguments[1]:[];if(t.actions=V(e)?e:[e],!V(e))return e instanceof mt&&e.extend(t),t;var n,r=p(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;t.extendActions(i)}}catch(t){r.e(t)}finally{r.f()}}function bt(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;h(this,t),this.actions=e,this.bind=n}),[{key:\"extend\",value:function(){var t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||this.bind;if(!t)return this;if(null!=this&&this.actions&&\"object\"===T(this.actions))for(var e in this.actions){var n=this.actions[e];\"function\"==typeof n?gt(t,e,n.bind(t)):gt(t,e,n)}return this}}])}();function wt(t){return t instanceof kt}var kt=function(){return v((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};h(this,t),this.attributes=e,this.dirtyAttributes={},this.changes={},this.isLoading=!1,this.isSaving=!1,this.isDestroying=!1,this.isReloading=!1,this.resource=r,this.options=i,this.version=i.version||\"v1\",this.setAdapter(n)}),[{key:\"setAdapter\",value:function(t){var e;return this.adapter=t,this.store=M(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:\"id\",get:function(){return this.getAttribute(\"id\")}},{key:\"create\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.mergeAttributes(e);return this.setFlags([\"isLoading\",\"isSaving\"]),this.store.create(n).then((function(e){return t.setFlags([\"isLoading\",\"isSaving\"],!1),e}))}},{key:\"update\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setFlags([\"isLoading\",\"isSaving\"]),this.store.update(this.attributes.id,e).then((function(e){return t.setFlags([\"isLoading\",\"isSaving\"],!1),e}))}},{key:\"destroy\",value:function(){var t=this;return this.setFlags([\"isLoading\",\"isDestroying\"]),this.store.destroy(this.attributes.id).then((function(e){return t.setFlags([\"isLoading\",\"isDestroying\"],!1),e}))}},{key:\"reload\",value:function(){var t=this;return this.setFlags([\"isLoading\",\"isReloading\"]),this.store.findRecord(this.attributes.id).then((function(e){return t.reset(),e}))}},{key:\"setFlags\",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=[\"isLoading\",\"isSaving\",\"isReloading\",\"isDestroying\"],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=this.getAttributes();return st(this.id)?this.create(e):!0===t.onlyDirty?this.savedirty():this.update(e)}},{key:\"saveDirty\",value:function(){for(var t=Object.keys(this.dirtyAttributes),e={},n=0;n0}},{key:\"mutate\",value:function(t,e){this.attributes[t]=e}},{key:\"setAttribute\",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null===n&&\"object\"===T(t))return this.setAttributes(t);var r=null!==(e=null==this?void 0:this.attributes[t])&&void 0!==e?e:null;return gt(this.attributes,t,n),gt(this.dirtyAttributes,t,r),V(null==this?void 0:this.changes[t])||(this.changes[t]=[]),this.changes[t].push({property:t,previousValue:r,value:n,changedAt:new Date}),this}},{key:\"setAttributes\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var e in t)this.setAttribute(e,t[e]);return this}},{key:\"getAttribute\",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=pt(null!==(e=null==this?void 0:this.attributes)&&void 0!==e?e:{},t);return void 0===r?n:r}},{key:\"hasAttribute\",value:function(t){if(V(t)){var e,n=t,r=Object.keys(null!==(e=this.attributes)&&void 0!==e?e:{});return n.every((function(t){return r.includes(t)}))}return!(null==this||!this.attributes)&&t in this.attributes}},{key:\"hasAttributes\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.hasAttribute(t)}},{key:\"isAttributeFilled\",value:function(t){var e=this;return V(t)?this.hasAttribute(t)&&t.every((function(t){return!st(e.getAttribute(t))})):this.hasAttribute(t)&&!st(this.getAttribute(t))}},{key:\"getAttributes\",value:function(t){var e={};if(null==t)return this.getAttributes(Object.keys(this.attributes));if(\"string\"==typeof t)return this.getAttribute(Array.prototype.slice.call(arguments));if(!V(t))throw new Error(\"No attribute properties provided!\");var n,r=p(t);try{for(r.s();!(n=r.n()).done;){var i,o,a=n.value;if(\"string\"==typeof a){var s=this.getAttribute(a);\"object\"!==T(null===(i=s)||void 0===i?void 0:i.attributes)||V(null===(o=s)||void 0===o?void 0:o.attributes)||(s=s.attributes),e[a]=s}}}catch(t){r.e(t)}finally{r.f()}return e}},{key:\"serialize\",value:function(){return this.getAttributes()}},{key:\"mergeAttributes\",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=null!==(t=null==this?void 0:this.attributes)&&void 0!==t?t:{};return this.attributes=A(A({},n),e),this.attributes}},{key:\"syncAttributes\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attributes=t}}])}();q(\"resource\",\"Resource\",kt);var Et=function(){return v((function t(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};h(this,t),this.resource=e,this.adapter=n||ht(),this.namespace=F(e),this.storage=ot(),this.options=r,this.extendActions(r.actions)}),[{key:\"extendActions\",value:function(){return yt(this,arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])}},{key:\"deposit\",value:function(t){return t}},{key:\"serialize\",value:function(t){return W(\"resource\",z(this.resource),t,this.adapter)}},{key:\"afterFetch\",value:function(t){return function(t,e){if(\"function\"==typeof t.options.onAfterFetch&&t.options.onAfterFetch(e),V(e)){var n,r=[],i=p(e);try{for(i.s();!(n=i.n()).done;){var o=n.value;r.push(t.afterFetch(o))}}catch(t){i.e(t)}finally{i.f()}return ot.apply(void 0,r)}var a=t.serialize(e);return t.deposit(a)}(this,t)}},{key:\"create\",value:(a=u(x().mark((function t(){var e,n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=4,this.adapter.post(\"\".concat(this.namespace),e,n);case 4:return r=t.sent,t.abrupt(\"return\",this.afterFetch(r));case 6:case\"end\":return t.stop()}}),t,this)}))),function(){return a.apply(this,arguments)})},{key:\"update\",value:(o=u(x().mark((function t(e){var n,r,i,o=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=o.length>1&&void 0!==o[1]?o[1]:{},r=o.length>2&&void 0!==o[2]?o[2]:{},t.next=4,this.adapter.put(\"\".concat(this.namespace,\"/\").concat(e),n,r);case 4:return i=t.sent,t.abrupt(\"return\",this.afterFetch(i));case 6:case\"end\":return t.stop()}}),t,this)}))),function(t){return o.apply(this,arguments)})},{key:\"findRecord\",value:(i=u(x().mark((function t(e){var n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=3,this.adapter.get(\"\".concat(this.namespace,\"/\").concat(e),{},n);case 3:return r=t.sent,t.abrupt(\"return\",this.afterFetch(r));case 5:case\"end\":return t.stop()}}),t,this)}))),function(t){return i.apply(this,arguments)})},{key:\"findAll\",value:(r=u(x().mark((function t(){var e,n,r=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=r.length>0&&void 0!==r[0]?r[0]:{},t.next=3,this.adapter.get(\"\".concat(this.namespace),{},e);case 3:return n=t.sent,t.abrupt(\"return\",this.afterFetch(n));case 5:case\"end\":return t.stop()}}),t,this)}))),function(){return r.apply(this,arguments)})},{key:\"query\",value:(n=u(x().mark((function t(){var e,n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=4,this.adapter.get(\"\".concat(this.namespace),e,n);case 4:return r=t.sent,t.abrupt(\"return\",this.afterFetch(r));case 6:case\"end\":return t.stop()}}),t,this)}))),function(){return n.apply(this,arguments)})},{key:\"queryRecord\",value:(e=u(x().mark((function t(){var e,n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},(e=i.length>0&&void 0!==i[0]?i[0]:{}).single=!0,t.next=5,this.adapter.get(\"\".concat(this.namespace),e,n);case 5:return r=t.sent,t.abrupt(\"return\",this.afterFetch(r));case 7:case\"end\":return t.stop()}}),t,this)}))),function(){return e.apply(this,arguments)})},{key:\"destroy\",value:(t=u(x().mark((function t(e){var n,r,i,o=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=o.length>1&&void 0!==o[1]?o[1]:{},r=wt(e)?e.getAttribute(\"id\"):e,t.next=4,this.adapter.delete(\"\".concat(this.namespace,\"/\").concat(r),{},n);case 4:return i=t.sent,t.abrupt(\"return\",this.afterFetch(i));case 6:case\"end\":return t.stop()}}),t,this)}))),function(e){return t.apply(this,arguments)})}]);var t,e,n,r,i,o,a}();q(\"store\",\"Store\",Et);var At=new mt({getDistanceAndTime:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get(\"\".concat(this.namespace,\"/\").concat(t,\"/distance-and-time\"),e,n)},getNextActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get(\"\".concat(this.namespace,\"/\").concat(t,\"/next-activity\"),e,n)},dispatch:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/dispatch\"),e,n).then(this.afterFetch.bind(this))},start:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/start\"),e,n).then(this.afterFetch.bind(this))},updateActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/update-activity\"),e,n).then(this.afterFetch.bind(this))},setDestination:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return wt(e)&&(e=e.id),this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/set-destination/\").concat(e),n,r).then(this.afterFetch.bind(this))},captureQrCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return wt(e)&&(e=e.id),this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/capture-qr\").concat(e?\"/\"+e:\"\"),n,r)},captureSignature:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return wt(e)&&(e=e.id),this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/capture-signature\").concat(e?\"/\"+e:\"\"),n,r)},complete:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/complete\"),e,n).then(this.afterFetch.bind(this))},cancel:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete(\"\".concat(this.namespace,\"/\").concat(t,\"/cancel\"),e,n).then(this.afterFetch.bind(this))}}),xt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"order\",A({actions:At},r)])}return b(t,kt),v(t,[{key:\"getDistanceAndTime\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getDistanceAndTime(this.id,t,e)}},{key:\"dispatch\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.dispatch(this.id,t,e)}},{key:\"start\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.start(this.id,t,e)}},{key:\"setDestination\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.setDestination(this.id,t,e,n)}},{key:\"captureQrCode\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureQrCode(this.id,t,e,n)}},{key:\"captureSignature\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureSignature(this.id,t,e,n)}},{key:\"getNextActivity\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getNextActivity(this.id,t,e)}},{key:\"updateActivity\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.updateActivity(this.id,t,e)}},{key:\"cancel\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.cancel(this.id,t,e)}},{key:\"complete\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.complete(this.id,t,e)}},{key:\"isDispatched\",get:function(){return null!==this.getAttribute(\"dispatched_at\")}},{key:\"isNotDispatched\",get:function(){return null==this.getAttribute(\"dispatched_at\")}},{key:\"isStarted\",get:function(){return null!==this.getAttribute(\"started_at\")}},{key:\"isNotStarted\",get:function(){return null==this.getAttribute(\"started_at\")}},{key:\"isCompleted\",get:function(){return\"completed\"==this.getAttribute(\"status\")}},{key:\"isCanceled\",get:function(){return\"canceled\"==this.getAttribute(\"status\")}},{key:\"isEnroute\",get:function(){return\"driver_enroute\"==this.getAttribute(\"status\")||\"enroute\"===this.getAttribute(\"status\")}},{key:\"isInProgress\",get:function(){return this.isStarted&&!this.isCanceled&&!this.isCompleted}},{key:\"scheduledAt\",get:function(){return this.isAttributeFilled(\"scheduled_at\")?new Date(this.getAttribute(\"scheduled_at\")):null}},{key:\"startedAt\",get:function(){return this.isAttributeFilled(\"started_at\")?new Date(this.getAttribute(\"started_at\")):null}},{key:\"dispatchedAt\",get:function(){return this.isAttributeFilled(\"dispatched_at\")?new Date(this.getAttribute(\"dispatched_at\")):null}},{key:\"status\",get:function(){return this.getAttribute(\"status\")}}])}();q(\"resource\",\"Order\",xt);var Ot=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"payload\",r])}return b(t,kt),v(t,[{key:\"attach\",value:function(t){}},{key:\"entities\",get:function(){var t=this;return ot(this.entities.map((function(e){return G(\"Entity\",e,t.adapter)})))}},{key:\"dropoff\",get:function(){return this.dropoff?G(\"Place\",this.dropoff,this.adapter):null}},{key:\"pickup\",get:function(){return this.pickup?G(\"Place\",this.pickup,this.adapter):null}},{key:\"waypoints\",get:function(){var t=this;return ot(this.waypoints.map((function(e){return G(\"Waypoint\",e,t.adapter)})))}}])}();q(\"resource\",\"Payload\",Ot);var Rt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"entity\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Entity\",Rt);var St=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"place\",r])}return b(t,kt),v(t,[{key:\"latitude\",get:function(){var t;return null===(t=this.getAttribute(\"location\",new dt))||void 0===t?void 0:t.coordinates[1]}},{key:\"longitude\",get:function(){var t;return null===(t=this.getAttribute(\"location\",new dt))||void 0===t?void 0:t.coordinates[0]}},{key:\"coordinates\",get:function(){return[this.latitude,this.longitude]}},{key:\"setOwner\",value:function(t){return wt(t)&&this.setAttribute(\"owner\",t.id),\"string\"==typeof t&&this.setAttribute(\"owner\",t),this}}],[{key:\"fromGoogleAddress\",value:function(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=R(e.getAttribute(\"coordinates\"),2),o=i[0],a=i[1];return new t({name:null,address:e.getAttribute(\"address\"),location:new dt(o,a),street1:e.getAttribute(\"address\"),street2:null,city:e.getAttribute(\"city\"),province:e.getAttribute(\"stateLong\"),postal_code:e.getAttribute(\"postalCode\"),neighborhood:e.get(\"neighborhood\"),district:e.getAttribute(\"county\"),building:e.get(\"building\"),country:e.getAttribute(\"countryShort\"),phone:null,security_access_code:null},n,r)}}])}();q(\"resource\",\"Place\",St);var jt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"waypoint\",r])}return b(t,St),v(t)}();q(\"resource\",\"Waypoint\",jt);var Tt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"tracking-status\",r])}return b(t,kt),v(t)}();q(\"resource\",\"TrackingStatus\",Tt);var _t=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"vehicle\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Vehicle\",_t);var Pt=new mt({current:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.get(\"\".concat(this.namespace,\"/current\"),t,e)}}),Lt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"organization\",A({actions:Pt},r)])}return b(t,kt),v(t)}();q(\"resource\",\"Organization\",Lt);var Ct=function(t,e){return V(t)?t.map((function(t){return new Lt(t,e)})):new Lt(t,e)},Nt=new mt({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(function(){return/^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/g.test(arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\")}(t))return this.adapter.post(\"drivers/login-with-sms\",{phone:t});if(!e)throw new Error(\"Login requires password!\");return this.adapter.post(\"drivers/login\",A({identity:t,password:e},n)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"drivers/verify-code\",A({identity:t,code:e},n)).then(this.afterFetch.bind(this))},track:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"drivers/\".concat(t,\"/track\"),e,n).then(this.afterFetch.bind(this))},listOrganizations:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get(\"drivers/\".concat(t,\"/organizations\"),n,r).then((function(t){return Ct(t,e.adapter)}))},switchOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"drivers/\".concat(t,\"/switch-organization\"),n,r).then((function(t){return Ct(t,e.adapter)}))},currentOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get(\"drivers/\".concat(t,\"/current-organization\"),n,r).then((function(t){return Ct(t,e.adapter)}))},retrieve:function(t){return this.findRecord(t)},syncDevice:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"drivers/\".concat(t,\"/register-device\"),e,n)}}),Ft=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"driver\",A({actions:Nt},r)])}return b(t,kt),v(t,[{key:\"token\",get:function(){return this.getAttribute(\"token\")}},{key:\"isOnline\",get:function(){return!0===this.getAttribute(\"online\")}},{key:\"latitude\",get:function(){var t;return null===(t=this.getAttribute(\"location\",new dt))||void 0===t?void 0:t.coordinates[1]}},{key:\"longitude\",get:function(){var t;return null===(t=this.getAttribute(\"location\",new dt))||void 0===t?void 0:t.coordinates[0]}},{key:\"coordinates\",get:function(){return[this.latitude,this.longitude]}},{key:\"track\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.track(this.id,t,e)}},{key:\"syncDevice\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.syncDevice(this.id,t,e)}},{key:\"listOrganizations\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.listOrganizations(this.id,t,e)}},{key:\"switchOrganization\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.switchOrganization(this.id,{next:t},e)}},{key:\"currentOrganization\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.currentOrganization(this.id,t,e)}}])}();q(\"resource\",\"Driver\",Ft);var Dt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"vendor\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Vendor\",Dt);var $t=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"contact\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Contact\",$t);var Ut=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"zone\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Zone\",Ut);var zt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"service-area\",r])}return b(t,kt),v(t)}();q(\"resource\",\"ServiceArea\",zt);var Bt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"service-rate\",r])}return b(t,kt),v(t)}();q(\"resource\",\"ServiceRate\",Bt);var qt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"service-quote\",r])}return b(t,kt),v(t,[{key:\"fromPreliminary\",value:function(){}},{key:\"fromPayload\",value:function(){}}])}();q(\"resource\",\"ServiceQuote\",qt);var It=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"fleet\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Fleet\",It);var Mt=v((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};h(this,t),this.version=e.version||\"v1\",this.host=e.host||null,this.namespace=e.namespace||null,this.headers=e.headers||{}}));q(\"adapter\",\"Adapter\",Mt);var Ht=function(){function t(e){var n;return h(this,t),(n=l(this,t,[e])).setHeaders({Authorization:\"Bearer \".concat(e.publicKey),\"Content-Type\":\"application/json\",\"User-Agent\":\"@fleetbase/sdk;browser\"}),n}return b(t,Mt),v(t,[{key:\"setHeaders\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.headers=A(A({},this.headers),t),this}},{key:\"parseJSON\",value:function(t){return new Promise((function(e,n){t.json().then((function(n){e({statusText:t.statusText,status:t.status,ok:t.ok,json:n})})).catch((function(){n(new Error(\"Oops! Something went wrong when handling your request.\"))}))}))}},{key:\"request\",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"GET\",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new Promise((function(o,a){fetch(i.url||\"\".concat(e.host,\"/\").concat(e.namespace,\"/\").concat(t),A({method:n,mode:i.mode||\"cors\",headers:new Headers(A(A({},e.headers||{}),i.headers||{}))},r)).then(e.parseJSON).then((function(t){if(t.ok)return o(t.json);a(new Error(t.json.errors?t.json.errors[0]:t.statusText))})).catch((function(t){a(t)}))}))}},{key:\"get\",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=st(e=n)||\"string\"==typeof e&&!1===/\\S/.test(e)?\"\":new URLSearchParams(n).toString();return this.request(\"\".concat(t).concat(i?\"?\".concat(i):\"\"),\"GET\",{},r)}},{key:\"post\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,\"POST\",{body:JSON.stringify(e)},n)}},{key:\"put\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,\"PUT\",{body:JSON.stringify(e)},n)}},{key:\"delete\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(t,\"DELETE\",{},e)}},{key:\"patch\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,\"PATCH\",{body:JSON.stringify(e)},n)}}])}();function Jt(t,e){return function(){return t.apply(e,arguments)}}q(\"adapter\",\"BrowserAdapter\",Ht);var Wt,Kt=Object.prototype.toString,Gt=Object.getPrototypeOf,Vt=(Wt=Object.create(null),function(t){var e=Kt.call(t);return Wt[e]||(Wt[e]=e.slice(8,-1).toLowerCase())}),Xt=function(t){return t=t.toLowerCase(),function(e){return Vt(e)===t}},Qt=function(t){return function(e){return T(e)===t}},Yt=Array.isArray,Zt=Qt(\"undefined\");var te=Xt(\"ArrayBuffer\");var ee=Qt(\"string\"),ne=Qt(\"function\"),re=Qt(\"number\"),ie=function(t){return null!==t&&\"object\"===T(t)},oe=function(t){if(\"object\"!==Vt(t))return!1;var e=Gt(t);return!(null!==e&&e!==Object.prototype&&null!==Object.getPrototypeOf(e)||Symbol.toStringTag in t||Symbol.iterator in t)},ae=Xt(\"Date\"),se=Xt(\"File\"),ue=Xt(\"Blob\"),ce=Xt(\"FileList\"),le=Xt(\"URLSearchParams\"),he=R([\"ReadableStream\",\"Request\",\"Response\",\"Headers\"].map(Xt),4),fe=he[0],de=he[1],ve=he[2],pe=he[3];function ge(t,e){var n,r,i=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).allOwnKeys,o=void 0!==i&&i;if(null!=t)if(\"object\"!==T(t)&&(t=[t]),Yt(t))for(n=0,r=t.length;n0;)if(e===(n=r[i]).toLowerCase())return n;return null}var be=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:global,me=function(t){return!Zt(t)&&t!==be};var we,ke=(we=\"undefined\"!=typeof Uint8Array&&Gt(Uint8Array),function(t){return we&&t instanceof we}),Ee=Xt(\"HTMLFormElement\"),Ae=function(){var t=Object.prototype.hasOwnProperty;return function(e,n){return t.call(e,n)}}(),xe=Xt(\"RegExp\"),Oe=function(t,e){var n=Object.getOwnPropertyDescriptors(t),r={};ge(n,(function(n,i){var o;!1!==(o=e(n,i,t))&&(r[i]=o||n)})),Object.defineProperties(t,r)},Re=\"abcdefghijklmnopqrstuvwxyz\",Se=\"0123456789\",je={DIGIT:Se,ALPHA:Re,ALPHA_DIGIT:Re+Re.toUpperCase()+Se};var Te,_e,Pe,Le,Ce=Xt(\"AsyncFunction\"),Ne=(Te=\"function\"==typeof setImmediate,_e=ne(be.postMessage),Te?setImmediate:_e?(Pe=\"axios@\".concat(Math.random()),Le=[],be.addEventListener(\"message\",(function(t){var e=t.source,n=t.data;e===be&&n===Pe&&Le.length&&Le.shift()()}),!1),function(t){Le.push(t),be.postMessage(Pe,\"*\")}):function(t){return setTimeout(t)}),Fe=\"undefined\"!=typeof queueMicrotask?queueMicrotask.bind(be):\"undefined\"!=typeof process&&process.nextTick||Ne,De={isArray:Yt,isArrayBuffer:te,isBuffer:function(t){return null!==t&&!Zt(t)&&null!==t.constructor&&!Zt(t.constructor)&&ne(t.constructor.isBuffer)&&t.constructor.isBuffer(t)},isFormData:function(t){var e;return t&&(\"function\"==typeof FormData&&t instanceof FormData||ne(t.append)&&(\"formdata\"===(e=Vt(t))||\"object\"===e&&ne(t.toString)&&\"[object FormData]\"===t.toString()))},isArrayBufferView:function(t){return\"undefined\"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&te(t.buffer)},isString:ee,isNumber:re,isBoolean:function(t){return!0===t||!1===t},isObject:ie,isPlainObject:oe,isReadableStream:fe,isRequest:de,isResponse:ve,isHeaders:pe,isUndefined:Zt,isDate:ae,isFile:se,isBlob:ue,isRegExp:xe,isFunction:ne,isStream:function(t){return ie(t)&&ne(t.pipe)},isURLSearchParams:le,isTypedArray:ke,isFileList:ce,forEach:ge,merge:function t(){for(var e=(me(this)&&this||{}).caseless,n={},r=function(r,i){var o=e&&ye(n,i)||i;oe(n[o])&&oe(r)?n[o]=t(n[o],r):oe(r)?n[o]=t({},r):Yt(r)?n[o]=r.slice():n[o]=r},i=0,o=arguments.length;i3&&void 0!==arguments[3]?arguments[3]:{}).allOwnKeys}),t},trim:function(t){return t.trim?t.trim():t.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\"\")},stripBOM:function(t){return 65279===t.charCodeAt(0)&&(t=t.slice(1)),t},inherits:function(t,e,n,r){t.prototype=Object.create(e.prototype,r),t.prototype.constructor=t,Object.defineProperty(t,\"super\",{value:e.prototype}),n&&Object.assign(t.prototype,n)},toFlatObject:function(t,e,n,r){var i,o,a,s={};if(e=e||{},null==t)return e;do{for(o=(i=Object.getOwnPropertyNames(t)).length;o-- >0;)a=i[o],r&&!r(a,t,e)||s[a]||(e[a]=t[a],s[a]=!0);t=!1!==n&&Gt(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},kindOf:Vt,kindOfTest:Xt,endsWith:function(t,e,n){t=String(t),(void 0===n||n>t.length)&&(n=t.length),n-=e.length;var r=t.indexOf(e,n);return-1!==r&&r===n},toArray:function(t){if(!t)return null;if(Yt(t))return t;var e=t.length;if(!re(e))return null;for(var n=new Array(e);e-- >0;)n[e]=t[e];return n},forEachEntry:function(t,e){for(var n,r=(t&&t[Symbol.iterator]).call(t);(n=r.next())&&!n.done;){var i=n.value;e.call(t,i[0],i[1])}},matchAll:function(t,e){for(var n,r=[];null!==(n=t.exec(e));)r.push(n);return r},isHTMLForm:Ee,hasOwnProperty:Ae,hasOwnProp:Ae,reduceDescriptors:Oe,freezeMethods:function(t){Oe(t,(function(e,n){if(ne(t)&&-1!==[\"arguments\",\"caller\",\"callee\"].indexOf(n))return!1;var r=t[n];ne(r)&&(e.enumerable=!1,\"writable\"in e?e.writable=!1:e.set||(e.set=function(){throw Error(\"Can not rewrite read-only method '\"+n+\"'\")}))}))},toObjectSet:function(t,e){var n={},r=function(t){t.forEach((function(t){n[t]=!0}))};return Yt(t)?r(t):r(String(t).split(e)),n},toCamelCase:function(t){return t.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,(function(t,e,n){return e.toUpperCase()+n}))},noop:function(){},toFiniteNumber:function(t,e){return null!=t&&Number.isFinite(t=+t)?t:e},findKey:ye,global:be,isContextDefined:me,ALPHABET:je,generateString:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:je.ALPHA_DIGIT,n=\"\",r=e.length;t--;)n+=e[Math.random()*r|0];return n},isSpecCompliantForm:function(t){return!!(t&&ne(t.append)&&\"FormData\"===t[Symbol.toStringTag]&&t[Symbol.iterator])},toJSONObject:function(t){var e=new Array(10),n=function(t,r){if(ie(t)){if(e.indexOf(t)>=0)return;if(!(\"toJSON\"in t)){e[r]=t;var i=Yt(t)?[]:{};return ge(t,(function(t,e){var o=n(t,r+1);!Zt(o)&&(i[e]=o)})),e[r]=void 0,i}}return t};return n(t,0)},isAsyncFn:Ce,isThenable:function(t){return t&&(ie(t)||ne(t))&&ne(t.then)&&ne(t.catch)},setImmediate:Ne,asap:Fe};function $e(t,e,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=t,this.name=\"AxiosError\",e&&(this.code=e),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status?i.status:null)}De.inherits($e,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:De.toJSONObject(this.config),code:this.code,status:this.status}}});var Ue=$e.prototype,ze={};[\"ERR_BAD_OPTION_VALUE\",\"ERR_BAD_OPTION\",\"ECONNABORTED\",\"ETIMEDOUT\",\"ERR_NETWORK\",\"ERR_FR_TOO_MANY_REDIRECTS\",\"ERR_DEPRECATED\",\"ERR_BAD_RESPONSE\",\"ERR_BAD_REQUEST\",\"ERR_CANCELED\",\"ERR_NOT_SUPPORT\",\"ERR_INVALID_URL\"].forEach((function(t){ze[t]={value:t}})),Object.defineProperties($e,ze),Object.defineProperty(Ue,\"isAxiosError\",{value:!0}),$e.from=function(t,e,n,r,i,o){var a=Object.create(Ue);return De.toFlatObject(t,a,(function(t){return t!==Error.prototype}),(function(t){return\"isAxiosError\"!==t})),$e.call(a,t.message,e,n,r,i),a.cause=t,a.name=t.name,o&&Object.assign(a,o),a};function Be(t){return De.isPlainObject(t)||De.isArray(t)}function qe(t){return De.endsWith(t,\"[]\")?t.slice(0,-2):t}function Ie(t,e,n){return t?t.concat(e).map((function(t,e){return t=qe(t),!n&&e?\"[\"+t+\"]\":t})).join(n?\".\":\"\"):e}var Me=De.toFlatObject(De,{},null,(function(t){return/^is[A-Z]/.test(t)}));function He(t,e,n){if(!De.isObject(t))throw new TypeError(\"target must be an object\");e=e||new FormData;var r=(n=De.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(t,e){return!De.isUndefined(e[t])}))).metaTokens,i=n.visitor||c,o=n.dots,a=n.indexes,s=(n.Blob||\"undefined\"!=typeof Blob&&Blob)&&De.isSpecCompliantForm(e);if(!De.isFunction(i))throw new TypeError(\"visitor must be a function\");function u(t){if(null===t)return\"\";if(De.isDate(t))return t.toISOString();if(!s&&De.isBlob(t))throw new $e(\"Blob is not supported. Use a Buffer instead.\");return De.isArrayBuffer(t)||De.isTypedArray(t)?s&&\"function\"==typeof Blob?new Blob([t]):Buffer.from(t):t}function c(t,n,i){var s=t;if(t&&!i&&\"object\"===T(t))if(De.endsWith(n,\"{}\"))n=r?n:n.slice(0,-2),t=JSON.stringify(t);else if(De.isArray(t)&&function(t){return De.isArray(t)&&!t.some(Be)}(t)||(De.isFileList(t)||De.endsWith(n,\"[]\"))&&(s=De.toArray(t)))return n=qe(n),s.forEach((function(t,r){!De.isUndefined(t)&&null!==t&&e.append(!0===a?Ie([n],r,o):null===a?n:n+\"[]\",u(t))})),!1;return!!Be(t)||(e.append(Ie(i,n,o),u(t)),!1)}var l=[],h=Object.assign(Me,{defaultVisitor:c,convertValue:u,isVisitable:Be});if(!De.isObject(t))throw new TypeError(\"data must be an object\");return function t(n,r){if(!De.isUndefined(n)){if(-1!==l.indexOf(n))throw Error(\"Circular reference detected in \"+r.join(\".\"));l.push(n),De.forEach(n,(function(n,o){!0===(!(De.isUndefined(n)||null===n)&&i.call(e,n,De.isString(o)?o.trim():o,r,h))&&t(n,r?r.concat(o):[o])})),l.pop()}}(t),e}function Je(t){var e={\"!\":\"%21\",\"'\":\"%27\",\"(\":\"%28\",\")\":\"%29\",\"~\":\"%7E\",\"%20\":\"+\",\"%00\":\"\\0\"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,(function(t){return e[t]}))}function We(t,e){this._pairs=[],t&&He(t,this,e)}var Ke=We.prototype;function Ge(t){return encodeURIComponent(t).replace(/%3A/gi,\":\").replace(/%24/g,\"$\").replace(/%2C/gi,\",\").replace(/%20/g,\"+\").replace(/%5B/gi,\"[\").replace(/%5D/gi,\"]\")}function Ve(t,e,n){if(!e)return t;var r=n&&n.encode||Ge;De.isFunction(n)&&(n={serialize:n});var i,o=n&&n.serialize;if(i=o?o(e,n):De.isURLSearchParams(e)?e.toString():new We(e,n).toString(r)){var a=t.indexOf(\"#\");-1!==a&&(t=t.slice(0,a)),t+=(-1===t.indexOf(\"?\")?\"?\":\"&\")+i}return t}Ke.append=function(t,e){this._pairs.push([t,e])},Ke.toString=function(t){var e=t?function(e){return t.call(this,e,Je)}:Je;return this._pairs.map((function(t){return e(t[0])+\"=\"+e(t[1])}),\"\").join(\"&\")};var Xe=function(){return v((function t(){h(this,t),this.handlers=[]}),[{key:\"use\",value:function(t,e,n){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}},{key:\"eject\",value:function(t){this.handlers[t]&&(this.handlers[t]=null)}},{key:\"clear\",value:function(){this.handlers&&(this.handlers=[])}},{key:\"forEach\",value:function(t){De.forEach(this.handlers,(function(e){null!==e&&t(e)}))}}])}(),Qe={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Ye={isBrowser:!0,classes:{URLSearchParams:\"undefined\"!=typeof URLSearchParams?URLSearchParams:We,FormData:\"undefined\"!=typeof FormData?FormData:null,Blob:\"undefined\"!=typeof Blob?Blob:null},protocols:[\"http\",\"https\",\"file\",\"blob\",\"url\",\"data\"]},Ze=\"undefined\"!=typeof window&&\"undefined\"!=typeof document,tn=\"object\"===(\"undefined\"==typeof navigator?\"undefined\":T(navigator))&&navigator||void 0,en=Ze&&(!tn||[\"ReactNative\",\"NativeScript\",\"NS\"].indexOf(tn.product)<0),nn=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&\"function\"==typeof self.importScripts,rn=Ze&&window.location.href||\"http://localhost\",on=A(A({},Object.freeze({__proto__:null,hasBrowserEnv:Ze,hasStandardBrowserEnv:en,hasStandardBrowserWebWorkerEnv:nn,navigator:tn,origin:rn})),Ye);function an(t){function e(t,n,r,i){var o=t[i++];if(\"__proto__\"===o)return!0;var a=Number.isFinite(+o),s=i>=t.length;return o=!o&&De.isArray(r)?r.length:o,s?(De.hasOwnProp(r,o)?r[o]=[r[o],n]:r[o]=n,!a):(r[o]&&De.isObject(r[o])||(r[o]=[]),e(t,n,r[o],i)&&De.isArray(r[o])&&(r[o]=function(t){var e,n,r={},i=Object.keys(t),o=i.length;for(e=0;e-1,o=De.isObject(t);if(o&&De.isHTMLForm(t)&&(t=new FormData(t)),De.isFormData(t))return i?JSON.stringify(an(t)):t;if(De.isArrayBuffer(t)||De.isBuffer(t)||De.isStream(t)||De.isFile(t)||De.isBlob(t)||De.isReadableStream(t))return t;if(De.isArrayBufferView(t))return t.buffer;if(De.isURLSearchParams(t))return e.setContentType(\"application/x-www-form-urlencoded;charset=utf-8\",!1),t.toString();if(o){if(r.indexOf(\"application/x-www-form-urlencoded\")>-1)return function(t,e){return He(t,new on.classes.URLSearchParams,Object.assign({visitor:function(t,e,n,r){return on.isNode&&De.isBuffer(t)?(this.append(e,t.toString(\"base64\")),!1):r.defaultVisitor.apply(this,arguments)}},e))}(t,this.formSerializer).toString();if((n=De.isFileList(t))||r.indexOf(\"multipart/form-data\")>-1){var a=this.env&&this.env.FormData;return He(n?{\"files[]\":t}:t,a&&new a,this.formSerializer)}}return o||i?(e.setContentType(\"application/json\",!1),function(t,e){if(De.isString(t))try{return(e||JSON.parse)(t),De.trim(t)}catch(t){if(\"SyntaxError\"!==t.name)throw t}return(0,JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){var e=this.transitional||sn.transitional,n=e&&e.forcedJSONParsing,r=\"json\"===this.responseType;if(De.isResponse(t)||De.isReadableStream(t))return t;if(t&&De.isString(t)&&(n&&!this.responseType||r)){var i=!(e&&e.silentJSONParsing)&&r;try{return JSON.parse(t)}catch(t){if(i){if(\"SyntaxError\"===t.name)throw $e.from(t,$e.ERR_BAD_RESPONSE,this,null,this.response);throw t}}}return t}],timeout:0,xsrfCookieName:\"XSRF-TOKEN\",xsrfHeaderName:\"X-XSRF-TOKEN\",maxContentLength:-1,maxBodyLength:-1,env:{FormData:on.classes.FormData,Blob:on.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:\"application/json, text/plain, */*\",\"Content-Type\":void 0}}};De.forEach([\"delete\",\"get\",\"head\",\"post\",\"put\",\"patch\"],(function(t){sn.headers[t]={}}));var un=De.toObjectSet([\"age\",\"authorization\",\"content-length\",\"content-type\",\"etag\",\"expires\",\"from\",\"host\",\"if-modified-since\",\"if-unmodified-since\",\"last-modified\",\"location\",\"max-forwards\",\"proxy-authorization\",\"referer\",\"retry-after\",\"user-agent\"]),cn=Symbol(\"internals\");function ln(t){return t&&String(t).trim().toLowerCase()}function hn(t){return!1===t||null==t?t:De.isArray(t)?t.map(hn):String(t)}function fn(t,e,n,r,i){return De.isFunction(r)?r.call(this,e,n):(i&&(e=n),De.isString(e)?De.isString(r)?-1!==e.indexOf(r):De.isRegExp(r)?r.test(e):void 0:void 0)}var dn=function(){return v((function t(e){h(this,t),e&&this.set(e)}),[{key:\"set\",value:function(t,e,n){var r=this;function i(t,e,n){var i=ln(e);if(!i)throw new Error(\"header name must be a non-empty string\");var o=De.findKey(r,i);(!o||void 0===r[o]||!0===n||void 0===n&&!1!==r[o])&&(r[o||e]=hn(t))}var o=function(t,e){return De.forEach(t,(function(t,n){return i(t,n,e)}))};if(De.isPlainObject(t)||t instanceof this.constructor)o(t,e);else if(De.isString(t)&&(t=t.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim()))o(function(t){var e,n,r,i={};return t&&t.split(\"\\n\").forEach((function(t){r=t.indexOf(\":\"),e=t.substring(0,r).trim().toLowerCase(),n=t.substring(r+1).trim(),!e||i[e]&&un[e]||(\"set-cookie\"===e?i[e]?i[e].push(n):i[e]=[n]:i[e]=i[e]?i[e]+\", \"+n:n)})),i}(t),e);else if(De.isHeaders(t)){var a,s=p(t.entries());try{for(s.s();!(a=s.n()).done;){var u=R(a.value,2),c=u[0];i(u[1],c,n)}}catch(t){s.e(t)}finally{s.f()}}else null!=t&&i(e,t,n);return this}},{key:\"get\",value:function(t,e){if(t=ln(t)){var n=De.findKey(this,t);if(n){var r=this[n];if(!e)return r;if(!0===e)return function(t){for(var e,n=Object.create(null),r=/([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;e=r.exec(t);)n[e[1]]=e[2];return n}(r);if(De.isFunction(e))return e.call(this,r,n);if(De.isRegExp(e))return e.exec(r);throw new TypeError(\"parser must be boolean|regexp|function\")}}}},{key:\"has\",value:function(t,e){if(t=ln(t)){var n=De.findKey(this,t);return!(!n||void 0===this[n]||e&&!fn(0,this[n],n,e))}return!1}},{key:\"delete\",value:function(t,e){var n=this,r=!1;function i(t){if(t=ln(t)){var i=De.findKey(n,t);!i||e&&!fn(0,n[i],i,e)||(delete n[i],r=!0)}}return De.isArray(t)?t.forEach(i):i(t),r}},{key:\"clear\",value:function(t){for(var e=Object.keys(this),n=e.length,r=!1;n--;){var i=e[n];t&&!fn(0,this[i],i,t,!0)||(delete this[i],r=!0)}return r}},{key:\"normalize\",value:function(t){var e=this,n={};return De.forEach(this,(function(r,i){var o=De.findKey(n,i);if(o)return e[o]=hn(r),void delete e[i];var a=t?function(t){return t.trim().toLowerCase().replace(/([a-z\\d])(\\w*)/g,(function(t,e,n){return e.toUpperCase()+n}))}(i):String(i).trim();a!==i&&delete e[i],e[a]=hn(r),n[a]=!0})),this}},{key:\"concat\",value:function(){for(var t,e=arguments.length,n=new Array(e),r=0;r1?n-1:0),i=1;i2&&void 0!==arguments[2]?arguments[2]:3,r=0,i=function(t,e){t=t||10;var n,r=new Array(t),i=new Array(t),o=0,a=0;return e=void 0!==e?e:1e3,function(s){var u=Date.now(),c=i[a];n||(n=u),r[o]=s,i[o]=u;for(var l=a,h=0;l!==o;)h+=r[l++],l%=t;if((o=(o+1)%t)===a&&(a=(a+1)%t),!(u-n1&&void 0!==arguments[1]?arguments[1]:Date.now();i=o,n=null,r&&(clearTimeout(r),r=null),t.apply(null,e)};return[function(){for(var t=Date.now(),e=t-i,s=arguments.length,u=new Array(s),c=0;c=o?a(u,t):(n=u,r||(r=setTimeout((function(){r=null,a(n)}),o-e)))},function(){return n&&a(n)}]}((function(n){var o=n.loaded,a=n.lengthComputable?n.total:void 0,s=o-r,u=i(s);r=o;var c=g({loaded:o,total:a,progress:a?o/a:void 0,bytes:s,rate:u||void 0,estimated:u&&a&&o<=a?(a-o)/u:void 0,event:n,lengthComputable:null!=a},e?\"download\":\"upload\",!0);t(c)}),n)},mn=function(t,e){var n=null!=t;return[function(r){return e[0]({lengthComputable:n,total:t,loaded:r})},e[1]]},wn=function(t){return function(){for(var e=arguments.length,n=new Array(e),r=0;r1?e-1:0),r=1;r1?\"since :\\n\"+s.map(Wn).join(\"\\n\"):\" \"+Wn(s[0]):\"as no adapter specified\"),\"ERR_NOT_SUPPORT\")}return n};function Vn(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new gn(null,t)}function Xn(t){return Vn(t),t.headers=dn.from(t.headers),t.data=vn.call(t,t.transformRequest),-1!==[\"post\",\"put\",\"patch\"].indexOf(t.method)&&t.headers.setContentType(\"application/x-www-form-urlencoded\",!1),Gn(t.adapter||sn.adapter)(t).then((function(e){return Vn(t),e.data=vn.call(t,t.transformResponse,e),e.headers=dn.from(e.headers),e}),(function(e){return pn(e)||(Vn(t),e&&e.response&&(e.response.data=vn.call(t,t.transformResponse,e.response),e.response.headers=dn.from(e.response.headers))),Promise.reject(e)}))}var Qn=\"1.7.9\",Yn={};[\"object\",\"boolean\",\"number\",\"function\",\"string\",\"symbol\"].forEach((function(t,e){Yn[t]=function(n){return T(n)===t||\"a\"+(e<1?\"n \":\" \")+t}}));var Zn={};Yn.transitional=function(t,e,n){function r(t,e){return\"[Axios v1.7.9] Transitional option '\"+t+\"'\"+e+(n?\". \"+n:\"\")}return function(n,i,o){if(!1===t)throw new $e(r(i,\" has been removed\"+(e?\" in \"+e:\"\")),$e.ERR_DEPRECATED);return e&&!Zn[i]&&(Zn[i]=!0,console.warn(r(i,\" has been deprecated since v\"+e+\" and will be removed in the near future\"))),!t||t(n,i,o)}},Yn.spelling=function(t){return function(e,n){return console.warn(\"\".concat(n,\" is likely a misspelling of \").concat(t)),!0}};var tr={assertOptions:function(t,e,n){if(\"object\"!==T(t))throw new $e(\"options must be an object\",$e.ERR_BAD_OPTION_VALUE);for(var r=Object.keys(t),i=r.length;i-- >0;){var o=r[i],a=e[o];if(a){var s=t[o],u=void 0===s||a(s,o,t);if(!0!==u)throw new $e(\"option \"+o+\" must be \"+u,$e.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new $e(\"Unknown option \"+o,$e.ERR_BAD_OPTION)}},validators:Yn},er=tr.validators,nr=function(){return v((function t(e){h(this,t),this.defaults=e,this.interceptors={request:new Xe,response:new Xe}}),[{key:\"request\",value:(t=u(x().mark((function t(e,n){var r,i;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,this._request(e,n);case 3:return t.abrupt(\"return\",t.sent);case 6:if(t.prev=6,t.t0=t.catch(0),t.t0 instanceof Error){r={},Error.captureStackTrace?Error.captureStackTrace(r):r=new Error,i=r.stack?r.stack.replace(/^.+\\n/,\"\"):\"\";try{t.t0.stack?i&&!String(t.t0.stack).endsWith(i.replace(/^.+\\n.+\\n/,\"\"))&&(t.t0.stack+=\"\\n\"+i):t.t0.stack=i}catch(t){}}throw t.t0;case 10:case\"end\":return t.stop()}}),t,this,[[0,6]])}))),function(e,n){return t.apply(this,arguments)})},{key:\"_request\",value:function(t,e){\"string\"==typeof t?(e=e||{}).url=t:e=t||{};var n=e=On(this.defaults,e),r=n.transitional,i=n.paramsSerializer,o=n.headers;void 0!==r&&tr.assertOptions(r,{silentJSONParsing:er.transitional(er.boolean),forcedJSONParsing:er.transitional(er.boolean),clarifyTimeoutError:er.transitional(er.boolean)},!1),null!=i&&(De.isFunction(i)?e.paramsSerializer={serialize:i}:tr.assertOptions(i,{encode:er.function,serialize:er.function},!0)),tr.assertOptions(e,{baseUrl:er.spelling(\"baseURL\"),withXsrfToken:er.spelling(\"withXSRFToken\")},!0),e.method=(e.method||this.defaults.method||\"get\").toLowerCase();var a=o&&De.merge(o.common,o[e.method]);o&&De.forEach([\"delete\",\"get\",\"head\",\"post\",\"put\",\"patch\",\"common\"],(function(t){delete o[t]})),e.headers=dn.concat(a,o);var s=[],u=!0;this.interceptors.request.forEach((function(t){\"function\"==typeof t.runWhen&&!1===t.runWhen(e)||(u=u&&t.synchronous,s.unshift(t.fulfilled,t.rejected))}));var c,l=[];this.interceptors.response.forEach((function(t){l.push(t.fulfilled,t.rejected)}));var h,f=0;if(!u){var d=[Xn.bind(this),void 0];for(d.unshift.apply(d,s),d.push.apply(d,l),h=d.length,c=Promise.resolve(e);f0;)r._listeners[e](t);r._listeners=null}})),this.promise.then=function(t){var e,n=new Promise((function(t){r.subscribe(t),e=t})).then(t);return n.cancel=function(){r.unsubscribe(e)},n},e((function(t,e,i){r.reason||(r.reason=new gn(t,e,i),n(r.reason))}))}return v(t,[{key:\"throwIfRequested\",value:function(){if(this.reason)throw this.reason}},{key:\"subscribe\",value:function(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t]}},{key:\"unsubscribe\",value:function(t){if(this._listeners){var e=this._listeners.indexOf(t);-1!==e&&this._listeners.splice(e,1)}}},{key:\"toAbortSignal\",value:function(){var t=this,e=new AbortController,n=function(t){e.abort(t)};return this.subscribe(n),e.signal.unsubscribe=function(){return t.unsubscribe(n)},e.signal}}],[{key:\"source\",value:function(){var e;return{token:new t((function(t){e=t})),cancel:e}}}])}();var ir={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(ir).forEach((function(t){var e=R(t,2),n=e[0],r=e[1];ir[r]=n}));var or=function t(e){var n=new nr(e),r=Jt(nr.prototype.request,n);return De.extend(r,nr.prototype,n,{allOwnKeys:!0}),De.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return t(On(e,n))},r}(sn);or.Axios=nr,or.CanceledError=gn,or.CancelToken=rr,or.isCancel=pn,or.VERSION=Qn,or.toFormData=He,or.AxiosError=$e,or.Cancel=or.CanceledError,or.all=function(t){return Promise.all(t)},or.spread=function(t){return function(e){return t.apply(null,e)}},or.isAxiosError=function(t){return De.isObject(t)&&!0===t.isAxiosError},or.mergeConfig=On,or.AxiosHeaders=dn,or.formToJSON=function(t){return an(De.isHTMLForm(t)?new FormData(t):t)},or.getAdapter=Gn,or.HttpStatusCode=ir,or.default=or,or.Axios,or.AxiosError,or.CanceledError,or.isCancel,or.CancelToken,or.VERSION,or.all,or.Cancel,or.isAxiosError,or.spread,or.toFormData,or.AxiosHeaders,or.HttpStatusCode,or.formToJSON,or.getAdapter,or.mergeConfig;var ar=function(){function t(e){var n;return h(this,t),(n=l(this,t,[e])).axiosInstance=or.create({baseURL:\"\".concat(n.host,\"/\").concat(n.namespace),headers:{Authorization:\"Bearer \".concat(e.publicKey),\"Content-Type\":\"application/json\",\"User-Agent\":\"@fleetbase/sdk;node\"}}),n.axiosInstance.interceptors.response.use((function(t){return t.data}),(function(t){if(t.response){var e=t.response.data;if(V(e.errors)&&e.errors.length)throw new Error(e.errors[0]);if(e.error)throw new Error(e.error)}throw t})),n}return b(t,Mt),v(t,[{key:\"setHeaders\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.axiosInstance.defaults.headers.common=A(A({},this.axiosInstance.defaults.headers.common),t),this}},{key:\"request\",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axiosInstance.request(A({method:t,url:e},n))}},{key:\"get\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(\"GET\",t,A({params:e},n))}},{key:\"post\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(\"POST\",t,A({data:e},n))}},{key:\"put\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(\"PUT\",t,A({data:e},n))}},{key:\"delete\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(\"DELETE\",t,e)}},{key:\"patch\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(\"PATCH\",t,A({data:e},n))}}])}();q(\"adapter\",\"NodeAdapter\",ar);var sr=function(){function t(){return h(this,t),l(this,t,arguments)}return b(t,Mt),v(t)}();q(\"adapter\",\"EmberJsAdapter\",sr);var ur=function(){function t(e){var n,r,i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(h(this,t),this.version=null!==(n=o.version)&&void 0!==n?n:\"v1\",this.options={version:this.version,host:null!==(r=o.host)&&void 0!==r?r:\"https://api.fleetbase.io\",namespace:null!==(i=o.namespace)&&void 0!==i?i:this.version,debug:a,publicKey:e},\"string\"!=typeof e||0===e.length)throw new Error(\"⚠️ Invalid public key given to Fleetbase SDK\");if(!lt()&&e.toLowerCase().startsWith(\"$\"))throw new Error(\"Secret key provided. You must use a public key with Fleetbase Javascript SDK!\");this.adapter=o.adapter||ht(this.options),this.orders=new Et(\"order\",this.adapter).extendActions(At),this.entities=new Et(\"entity\",this.adapter),this.places=new Et(\"place\",this.adapter),this.drivers=new Et(\"driver\",this.adapter).extendActions(Nt),this.vehicles=new Et(\"vehicle\",this.adapter),this.vendors=new Et(\"vendor\",this.adapter),this.contacts=new Et(\"contact\",this.adapter),this.serviceAreas=new Et(\"service-area\",this.adapter),this.zones=new Et(\"zone\",this.adapter),this.fleets=new Et(\"fleet\",this.adapter),this.organizations=new Et(\"organization\",this.adapter).extendActions(Pt)}return v(t,[{key:\"setAdapter\",value:function(t){this.adapter=t}},{key:\"getAdapter\",value:function(){return this.adapter}}],[{key:\"newInstance\",value:function(){return f(t,Array.prototype.slice.call(arguments))}}])}();export{Mt as Adapter,Ht as BrowserAdapter,at as Collection,$t as Contact,Ft as Driver,sr as EmberJsAdapter,Rt as Entity,It as Fleet,ft as GoogleAddress,ar as NodeAdapter,xt as Order,Lt as Organization,Ot as Payload,St as Place,dt as Point,J as Resolver,kt as Resource,zt as ServiceArea,qt as ServiceQuote,Bt as ServiceRate,Et as Store,mt as StoreActions,Tt as TrackingStatus,_t as Vehicle,Dt as Vendor,jt as Waypoint,Ut as Zone,$ as camelize,z as classify,ot as createCollection,H as createResource,M as createStore,bt as createStoreActions,U as dasherize,ur as default,ht as detectAdapter,yt as extendStoreActions,ut as isLatitude,ct as isLongitude,lt as isNodeEnvironment,wt as isResource,W as lookup,F as pluralize,q as register,K as resolve,G as resolveResource,D as singularize};\n//# sourceMappingURL=fleetbase.js.map\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["Store","extendStoreActions","lookup","classify","isArray","Resource","register","StoreActions","isValid","parse","format","Collection","Place","Order","ServiceQuote","Adapter","FleetbaseOrder","isResource","detectAdapter"],"mappings":"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,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC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CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,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C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAA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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/dist/cjs/storefront.js b/dist/cjs/storefront.js deleted file mode 100644 index 3145eb0..0000000 --- a/dist/cjs/storefront.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";function t(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){u=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(u)throw o}}}}function s(t,e,n){return(e=g(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function c(t){return c=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},c(t)}function l(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&p(t,e)}function h(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(h=function(){return!!t})()}function f(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function d(t){for(var e=1;e=0;--o){var a=this.tryEntries[o],u=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),P(n),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;P(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:L(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),g}},e}function p(t,e){return p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},p(t,e)}function y(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,o,a,u=[],s=!0,c=!1;try{if(o=(n=n.call(t)).next,0===e);else for(;!(s=(r=o.call(n)).done)&&(u.push(r.value),u.length!==e);s=!0);}catch(t){c=!0,i=t}finally{try{if(!s&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw i}}return u}}(t,e)||w(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:e+""}function m(t){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},m(t)}function w(e,n){if(e){if("string"==typeof e)return t(e,n);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?t(e,n):void 0}}function b(t,e){this.v=t,this.k=e}function k(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){u=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(u)throw o}}}}function F(t,e,n){return(e=Q(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function M(t){return M=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},M(t)}function q(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&W(t,e)}function H(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(H=function(){return!!t})()}function I(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}function z(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function B(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function $(t){for(var e=1;e=0;--o){var a=this.tryEntries[o],u=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),P(n),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;P(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:L(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),y}},e}function W(t,e){return W=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},W(t,e)}function Y(t,e){return x(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,o,a,u=[],s=!0,c=!1;try{if(o=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=o.call(n)).done)&&(u.push(r.value),u.length!==e);s=!0);}catch(t){c=!0,i=t}finally{try{if(!s&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw i}}return u}}(t,e)||X(t,e)||z()}function G(t){return function(t){if(Array.isArray(t))return k(t)}(t)||I(t)||X(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Q(t){var e=function(t){if("object"!=m(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=m(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==m(e)?e:e+""}function J(t){return J="function"==typeof Symbol&&"symbol"==m(Symbol.iterator)?function(t){return m(t)}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":m(t)},J(t)}function X(t,e){if(t){if("string"==typeof t)return k(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?k(t,e):void 0}}function K(t){return function(){return new V(t.apply(this,arguments))}}function V(t){var e,n;function r(e,n){try{var o=t[e](n),a=o.value,u=a instanceof b;Promise.resolve(u?a.v:a).then((function(n){if(u){var s="return"===e?"return":"next";if(!a.k||n.done)return r(s,n);n=t[s](n).value}i(o.done?"return":"normal",n)}),(function(t){r("throw",t)}))}catch(t){i("throw",t)}}function i(t,i){switch(t){case"return":e.resolve({value:i,done:!0});break;case"throw":e.reject(i);break;default:e.resolve({value:i,done:!1})}(e=e.next)?r(e.key,e.arg):n=null}this._invoke=function(t,i){return new Promise((function(o,a){var u={key:t,arg:i,resolve:o,reject:a,next:null};n?n=n.next=u:(e=n=u,r(t,i))}))},"function"!=typeof t.return&&(this.return=void 0)}function Z(t){var e="function"==typeof Map?new Map:void 0;return Z=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(e){return"function"==typeof t}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return L(t,arguments,M(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),W(n,t)},Z(t)}Object.defineProperty(exports,"__esModule",{value:!0}),V.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},V.prototype.next=function(t){return this._invoke("next",t)},V.prototype.throw=function(t){return this._invoke("throw",t)},V.prototype.return=function(t){return this._invoke("return",t)};var tt=function(){function t(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];D(this,t),F(this,"uncountableWords",["equipment","information","rice","money","species","series","fish","sheep","moose","deer","news"]),F(this,"pluralRules",[[new RegExp("(m)an$","gi"),"$1en"],[new RegExp("(pe)rson$","gi"),"$1ople"],[new RegExp("(child)$","gi"),"$1ren"],[new RegExp("^(ox)$","gi"),"$1en"],[new RegExp("(ax|test)is$","gi"),"$1es"],[new RegExp("(octop|vir)us$","gi"),"$1i"],[new RegExp("(alias|status)$","gi"),"$1es"],[new RegExp("(bu)s$","gi"),"$1ses"],[new RegExp("(buffal|tomat|potat)o$","gi"),"$1oes"],[new RegExp("([ti])um$","gi"),"$1a"],[new RegExp("sis$","gi"),"ses"],[new RegExp("(?:([^f])fe|([lr])f)$","gi"),"$1$2ves"],[new RegExp("(hive)$","gi"),"$1s"],[new RegExp("([^aeiouy]|qu)y$","gi"),"$1ies"],[new RegExp("(x|ch|ss|sh)$","gi"),"$1es"],[new RegExp("(matr|vert|ind)ix|ex$","gi"),"$1ices"],[new RegExp("([m|l])ouse$","gi"),"$1ice"],[new RegExp("(quiz)$","gi"),"$1zes"],[new RegExp("s$","gi"),"s"],[new RegExp("$","gi"),"s"]]),F(this,"singularRules",[[new RegExp("(m)en$","gi"),"$1an"],[new RegExp("(pe)ople$","gi"),"$1rson"],[new RegExp("(child)ren$","gi"),"$1"],[new RegExp("([ti])a$","gi"),"$1um"],[new RegExp("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$","gi"),"$1$2sis"],[new RegExp("(hive)s$","gi"),"$1"],[new RegExp("(tive)s$","gi"),"$1"],[new RegExp("(curve)s$","gi"),"$1"],[new RegExp("([lr])ves$","gi"),"$1f"],[new RegExp("([^fo])ves$","gi"),"$1fe"],[new RegExp("([^aeiouy]|qu)ies$","gi"),"$1y"],[new RegExp("(s)eries$","gi"),"$1eries"],[new RegExp("(m)ovies$","gi"),"$1ovie"],[new RegExp("(x|ch|ss|sh)es$","gi"),"$1"],[new RegExp("([m|l])ice$","gi"),"$1ouse"],[new RegExp("(bus)es$","gi"),"$1"],[new RegExp("(o)es$","gi"),"$1"],[new RegExp("(shoe)s$","gi"),"$1"],[new RegExp("(cris|ax|test)es$","gi"),"$1is"],[new RegExp("(octop|vir)i$","gi"),"$1us"],[new RegExp("(alias|status)es$","gi"),"$1"],[new RegExp("^(ox)en","gi"),"$1"],[new RegExp("(vert|ind)ices$","gi"),"$1ex"],[new RegExp("(matr)ices$","gi"),"$1ix"],[new RegExp("(quiz)zes$","gi"),"$1"],[new RegExp("s$","gi"),""]]),F(this,"nonTitlecasedWords",["and","or","nor","a","an","the","so","but","to","of","at","by","from","into","on","onto","off","out","in","over","with","for"]),F(this,"idSuffix",new RegExp("(_ids|_id)$","g")),F(this,"underbar",new RegExp("_","g")),F(this,"spaceOrUnderbar",new RegExp("[ _]","g")),F(this,"uppercase",new RegExp("([A-Z])","g")),F(this,"underbarPrefix",new RegExp("^_")),this.str=e,this.chain=n}return _(t,[{key:"get",value:function(){return this.str}},{key:"applyRules",value:function(t,e,n,r){if(r)t=r;else if(!(n.indexOf(t.toLowerCase())>-1))for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:null;return t=t||this.str,this.applyRules(t,this.pluralRules,this.uncountableWords,e)}},{key:"singularize",value:function(t,e){return t=t||this.str,this.applyRules(t,this.singularRules,this.uncountableWords,e)}},{key:"camelize",value:function(t,e){for(var n=(t=t||this.str).split("/"),r=0;r1&&void 0!==arguments[1]&&arguments[1];return t=t||this.str,t=this.underscore(this.demodulize(t))+(e?"":"_")+"id",this.str=t,!0===this.chain?this:t}},{key:"ordinalize",value:function(t){for(var e=(t=t||this.str).split(" "),n=0;n2?i-2:0),a=2;a2?n-2:0),i=2;i1?e-1:0),r=1;r2?n-2:0),i=2;i3&&void 0!==arguments[3]?arguments[3]:[];if(ct(t))if(r.length<=lt)t.splice.apply(t,[e,n].concat(G(r)));else{t.splice(e,n);for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:0,r=t.length,i=n;i2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3?arguments[3]:void 0,i=t.length;return n<0&&(n+=i),yt(t,r&&e!=e?function(t){return t!=t}:function(t){return t===e},n)}function mt(t,e,n){return ht(t,e,0,[n]),n}function wt(){return L(bt,Array.prototype.slice.call(arguments))}var bt=function(){function t(){return D(this,t),A(ct(arguments[0])?P(this,t,G(arguments[0])):P(this,t,arguments))}return q(t,Z(Array)),_(t,[{key:"notEmpty",get:function(){return this.length>0}},{key:"empty",get:function(){return 0===this.length}},{key:"first",get:function(){return vt(this,0)}},{key:"last",get:function(){return vt(this,this.length-1)}},{key:"replace",value:function(t,e){return ht(this,t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:[]),this}},{key:"objectsAt",value:function(t){var e=this;return t.map((function(t){return vt(e,t)}))}},{key:"objectAt",value:function(t){return vt(this,t)}},{key:"indexOf",value:function(t,e){return gt(this,t,e,!1)}},{key:"lastIndexOf",value:function(t,e){var n=this.length;(void 0===e||e>=n)&&(e=n-1),e<0&&(e+=n);for(var r=e;r>=0;r--)if(vt(this,r)===t)return r;return-1}},{key:"includes",value:function(t,e){return-1!==gt(this,t,e,!0)}},{key:"findBy",value:function(){return-1===(t=yt(this,pt.apply(void 0,arguments).bind(undefined),0))?void 0:vt(this,t);var t}},{key:"findIndexBy",value:function(){return yt(this,pt.apply(void 0,arguments))}},{key:"isEvery",value:function(){return t=pt.apply(void 0,arguments),e=t.bind(undefined),-1===yt(this,(function(t,n,r){return!e(t,n,r)}),0);var t,e}},{key:"isAny",value:function(){return-1!==yt(this,pt.apply(void 0,arguments).bind(undefined),0)}},{key:"invoke",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:ft,n=[],r=new Set,i="function"==typeof e?e:function(t){return get(t,e)};return t.forEach((function(t){var e=i(t);r.has(e)||(r.add(e),n.push(t))})),n}(this,t)}},{key:"without",value:function(t){if(!this.includes(t))return this;var e=t==t?function(e){return e!==t}:function(t){return t==t};return this.filter(e)}},{key:"clear",value:function(){var t=this.length;return 0===t||this.replace(0,t,[]),this}},{key:"insertAt",value:function(t,e){return mt(this,t,e),this}},{key:"replaceAt",value:function(t,e){return this.replace(t,1,[e])}},{key:"removeAt",value:function(t,e){return function(t,e){return ht(t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,[]),t}(this,t,e)}},{key:"pushObject",value:function(t){return this.insertAt(this.length,t)}},{key:"pushObjects",value:function(t){return this.replace(this.length,0,t),this}},{key:"popObject",value:function(){var t=this.length;if(0===t)return null;var e=vt(this,t-1);return this.removeAt(t-1,1),e}},{key:"shiftObject",value:function(){if(0===this.length)return null;var t=vt(this,0);return this.removeAt(0),t}},{key:"unshiftObject",value:function(t){return mt(this,0,t)}},{key:"unshiftObjects",value:function(t){return this.replace(0,0,t),this}},{key:"reverseObjects",value:function(){var t=this.length;if(0===t)return this;var e=this.toArray().reverse();return this.replace(0,t,e),this}},{key:"setObjects",value:function(t){if(0===t.length)return this.clear();var e=this.length;return this.replace(0,e,t),this}},{key:"removeObject",value:function(t){for(var e=this.length||0;--e>=0;)vt(this,e)===t&&this.removeAt(e);return this}},{key:"removeObjects",value:function(t){for(var e=t.length-1;e>=0;e--)this.removeObject(t[e]);return this}},{key:"addObject",value:function(t){return this.includes(t)||this.pushObject(t),this}},{key:"addObjects",value:function(t){var e=this;return t.forEach((function(t){return e.addObject(t)})),this}}])}();function kt(t){var e=null==t;if(e)return e;if("number"==typeof t.size)return!t.size;var n=J(t);if("object"===n){var r=t.size;if("number"==typeof r)return!r}if("number"==typeof t.length&&"function"!==n)return!t.length;if("object"===n){var i=t.length;if("number"==typeof i)return!i}return!1}function xt(){var t,e,n;return!("undefined"==typeof process||"object"!==J(null===(t=process)||void 0===t?void 0:t.env)&&-1===(null===(e=process.release)||void 0===e||null===(e=e.name)||void 0===e?void 0:e.search(/node|io.js/))||"undefined"!=typeof window&&"ReactNative"!==(null===(n=window)||void 0===n||null===(n=n.navigator)||void 0===n?void 0:n.product))}function At(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return xt()?ut("adapter","NodeAdapter",t):ut("adapter","BrowserAdapter",t)}_((function t(e){D(this,t),this.place=e,this.geometry=null==e?void 0:e.geometry,this.components=this.parseComponents(),this.attributes=this.parseProperties()}),[{key:"parse",value:function(){this.parseComponents(),this.parseProperties()}},{key:"parseComponents",value:function(){var t;return((null===(t=this.place)||void 0===t?void 0:t.address_components)||[]).reduce((function(t,e){return e.types.forEach((function(n){t[n]=e})),t}),{})}},{key:"parseProperties",value:function(){var t,e={streetNumber:this.get("street_number"),streetName:this.get("route"),coordinates:null!==(t=this.geometry)&&void 0!==t&&t.location?Object.values(this.geometry.location):[0,0],city:this.or(["locality","sublocality","sublocality_level_1","neighborhood","administrative_area_level_3","administrative_area_level_2"]),county:this.get("administrative_area_level_2"),stateShort:this.get("administrative_area_level_1",!0),stateLong:this.get("administrative_area_level_1"),countryShort:this.get("country",!0),country:this.get("country",!0),countryLong:this.get("country"),postalCode:this.get("postal_code")};return e.address=[e.streetNumber,e.streetName].filter(Boolean).join(" "),e}},{key:"all",value:function(){return this.attributes}},{key:"or",value:function(){var t,e=N(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]);try{for(e.s();!(t=e.n()).done;){var n=t.value;if(ct(n)){var r=n[0],i=n[1];if(this.has(r))return this.get(r,i)}else if(this.has(n))return this.get(n)}}catch(t){e.e(t)}finally{e.f()}return null}},{key:"has",value:function(t){return t in this.components}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t in this.components?e?this.components[t].short_name:this.components[t].long_name:null}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.attributes=$($({},this.attributes),t),this}},{key:"setAttribute",value:function(t,e){return this.attributes[t]=e,this}},{key:"getAttribute",value:function(t){return this.attributes[t]||null}}]);var Et=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;D(this,t),this.type="Point",this.coordinates=[n,e]}return _(t,[{key:"latitude",get:function(){return this.coordinates[1]}},{key:"longitude",get:function(){return this.coordinates[0]}},{key:"lat",value:function(){return this.latitude}},{key:"lng",value:function(){return this.longitude}},{key:"serialize",value:function(){return{type:"Point",coorindates:[this.lat(),this.lng()]}}},{key:"toJson",value:function(){return this.serialize()}},{key:"toString",value:function(){return"(".concat(this.latitude,", ").concat(this.longitude,")")}}],[{key:"fromGeoJson",value:function(e){var n=Y(e.coordinates,2),r=n[0];return new t(n[1],r)}}])}();function Ot(t,e){var n=t();return Array.isArray(n)||"object"===J(n)?St(n,e):null}function St(t,e){var n,r=t,i=J(t),o="object"===i,a="function"===i,u=Array.isArray(t),s="string"===J(e)&&e.includes(".")?e.split("."):[e];if(u||o){for(var c=0;c1&&void 0!==arguments[1]?arguments[1]:[];if(t.actions=ct(e)?e:[e],!ct(e))return e instanceof jt&&e.extend(t),t;var n,r=N(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;t.extendActions(i)}}catch(t){r.e(t)}finally{r.f()}}var jt=_((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;D(this,t),this.actions=e,this.bind=n}),[{key:"extend",value:function(){var t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||this.bind;if(!t)return this;if(null!=this&&this.actions&&"object"===J(this.actions))for(var e in this.actions){var n=this.actions[e];Tt(t,e,"function"==typeof n?n.bind(t):n)}return this}}]);function Pt(t){return t instanceof Dt}var Dt=_((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};D(this,t),this.attributes=e,this.dirtyAttributes={},this.changes={},this.isLoading=!1,this.isSaving=!1,this.isDestroying=!1,this.isReloading=!1,this.resource=r,this.options=i,this.version=i.version||"v1",this.setAdapter(n)}),[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=function(){return at.apply(void 0,["store","Store"].concat(Array.prototype.slice.call(arguments)))}(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"id",get:function(){return this.getAttribute("id")}},{key:"create",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.mergeAttributes(e);return this.setFlags(["isLoading","isSaving"]),this.store.create(n).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"update",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setFlags(["isLoading","isSaving"]),this.store.update(this.attributes.id,e).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"destroy",value:function(){var t=this;return this.setFlags(["isLoading","isDestroying"]),this.store.destroy(this.attributes.id).then((function(e){return t.setFlags(["isLoading","isDestroying"],!1),e}))}},{key:"reload",value:function(){var t=this;return this.setFlags(["isLoading","isReloading"]),this.store.findRecord(this.attributes.id).then((function(e){return t.reset(),e}))}},{key:"setFlags",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=["isLoading","isSaving","isReloading","isDestroying"],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=this.getAttributes();return kt(this.id)?this.create(e):!0===t.onlyDirty?this.savedirty():this.update(e)}},{key:"saveDirty",value:function(){for(var t=Object.keys(this.dirtyAttributes),e={},n=0;n0}},{key:"mutate",value:function(t,e){this.attributes[t]=e}},{key:"setAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null===n&&"object"===J(t))return this.setAttributes(t);var r=null!==(e=null==this?void 0:this.attributes[t])&&void 0!==e?e:null;return Tt(this.attributes,t,n),Tt(this.dirtyAttributes,t,r),ct(null==this?void 0:this.changes[t])||(this.changes[t]=[]),this.changes[t].push({property:t,previousValue:r,value:n,changedAt:new Date}),this}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var e in t)this.setAttribute(e,t[e]);return this}},{key:"getAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=St(null!==(e=null==this?void 0:this.attributes)&&void 0!==e?e:{},t);return void 0===r?n:r}},{key:"hasAttribute",value:function(t){if(ct(t)){var e,n=t,r=Object.keys(null!==(e=this.attributes)&&void 0!==e?e:{});return n.every((function(t){return r.includes(t)}))}return!(null==this||!this.attributes)&&t in this.attributes}},{key:"hasAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.hasAttribute(t)}},{key:"isAttributeFilled",value:function(t){var e=this;return ct(t)?this.hasAttribute(t)&&t.every((function(t){return!kt(e.getAttribute(t))})):this.hasAttribute(t)&&!kt(this.getAttribute(t))}},{key:"getAttributes",value:function(t){var e={};if(null==t)return this.getAttributes(Object.keys(this.attributes));if("string"==typeof t)return this.getAttribute(Array.prototype.slice.call(arguments));if(!ct(t))throw new Error("No attribute properties provided!");var n,r=N(t);try{for(r.s();!(n=r.n()).done;){var i,o,a=n.value;if("string"==typeof a){var u=this.getAttribute(a);"object"!==J(null===(i=u)||void 0===i?void 0:i.attributes)||ct(null===(o=u)||void 0===o?void 0:o.attributes)||(u=u.attributes),e[a]=u}}}catch(t){r.e(t)}finally{r.f()}return e}},{key:"serialize",value:function(){return this.getAttributes()}},{key:"mergeAttributes",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=null!==(t=null==this?void 0:this.attributes)&&void 0!==t?t:{};return this.attributes=$($({},n),e),this.attributes}},{key:"syncAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attributes=t}}]);ot("resource","Resource",Dt);var Lt=function(){return _((function t(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};D(this,t),this.resource=e,this.adapter=n||At(),this.namespace=et(e),this.storage=wt(),this.options=r,this.extendActions(r.actions)}),[{key:"extendActions",value:function(){return Rt(this,arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])}},{key:"deposit",value:function(t){return t}},{key:"serialize",value:function(t){return ut("resource",rt(this.resource),t,this.adapter)}},{key:"afterFetch",value:function(t){return function(t,e){if("function"==typeof t.options.onAfterFetch&&t.options.onAfterFetch(e),ct(e)){var n,r=[],i=N(e);try{for(i.s();!(n=i.n()).done;){var o=n.value;r.push(t.afterFetch(o))}}catch(t){i.e(t)}finally{i.f()}return wt.apply(void 0,r)}var a=t.serialize(e);return t.deposit(a)}(this,t)}},{key:"create",value:(a=R(U().mark((function t(){var e,n,r,i=arguments;return U().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=4,this.adapter.post("".concat(this.namespace),e,n);case 4:return r=t.sent,t.abrupt("return",this.afterFetch(r));case 6:case"end":return t.stop()}}),t,this)}))),function(){return a.apply(this,arguments)})},{key:"update",value:(o=R(U().mark((function t(e){var n,r,i,o=arguments;return U().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=o.length>1&&void 0!==o[1]?o[1]:{},r=o.length>2&&void 0!==o[2]?o[2]:{},t.next=4,this.adapter.put("".concat(this.namespace,"/").concat(e),n,r);case 4:return i=t.sent,t.abrupt("return",this.afterFetch(i));case 6:case"end":return t.stop()}}),t,this)}))),function(t){return o.apply(this,arguments)})},{key:"findRecord",value:(i=R(U().mark((function t(e){var n,r,i=arguments;return U().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=3,this.adapter.get("".concat(this.namespace,"/").concat(e),{},n);case 3:return r=t.sent,t.abrupt("return",this.afterFetch(r));case 5:case"end":return t.stop()}}),t,this)}))),function(t){return i.apply(this,arguments)})},{key:"findAll",value:(r=R(U().mark((function t(){var e,n,r=arguments;return U().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=r.length>0&&void 0!==r[0]?r[0]:{},t.next=3,this.adapter.get("".concat(this.namespace),{},e);case 3:return n=t.sent,t.abrupt("return",this.afterFetch(n));case 5:case"end":return t.stop()}}),t,this)}))),function(){return r.apply(this,arguments)})},{key:"query",value:(n=R(U().mark((function t(){var e,n,r,i=arguments;return U().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=4,this.adapter.get("".concat(this.namespace),e,n);case 4:return r=t.sent,t.abrupt("return",this.afterFetch(r));case 6:case"end":return t.stop()}}),t,this)}))),function(){return n.apply(this,arguments)})},{key:"queryRecord",value:(e=R(U().mark((function t(){var e,n,r,i=arguments;return U().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},(e=i.length>0&&void 0!==i[0]?i[0]:{}).single=!0,t.next=5,this.adapter.get("".concat(this.namespace),e,n);case 5:return r=t.sent,t.abrupt("return",this.afterFetch(r));case 7:case"end":return t.stop()}}),t,this)}))),function(){return e.apply(this,arguments)})},{key:"destroy",value:(t=R(U().mark((function t(e){var n,r,i,o=arguments;return U().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=o.length>1&&void 0!==o[1]?o[1]:{},r=Pt(e)?e.getAttribute("id"):e,t.next=4,this.adapter.delete("".concat(this.namespace,"/").concat(r),{},n);case 4:return i=t.sent,t.abrupt("return",this.afterFetch(i));case 6:case"end":return t.stop()}}),t,this)}))),function(e){return t.apply(this,arguments)})}]);var t,e,n,r,i,o,a}();ot("store","Store",Lt);var Ct=new jt({getDistanceAndTime:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/distance-and-time"),e,n)},getNextActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/next-activity"),e,n)},dispatch:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/dispatch"),e,n).then(this.afterFetch.bind(this))},start:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/start"),e,n).then(this.afterFetch.bind(this))},updateActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/update-activity"),e,n).then(this.afterFetch.bind(this))},setDestination:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return Pt(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/set-destination/").concat(e),n,r).then(this.afterFetch.bind(this))},captureQrCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return Pt(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-qr").concat(e?"/"+e:""),n,r)},captureSignature:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return Pt(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-signature").concat(e?"/"+e:""),n,r)},complete:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/complete"),e,n).then(this.afterFetch.bind(this))},cancel:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete("".concat(this.namespace,"/").concat(t,"/cancel"),e,n).then(this.afterFetch.bind(this))}}),_t=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"order",$({actions:Ct},r)])}return q(t,Dt),_(t,[{key:"getDistanceAndTime",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getDistanceAndTime(this.id,t,e)}},{key:"dispatch",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.dispatch(this.id,t,e)}},{key:"start",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.start(this.id,t,e)}},{key:"setDestination",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.setDestination(this.id,t,e,n)}},{key:"captureQrCode",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureQrCode(this.id,t,e,n)}},{key:"captureSignature",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureSignature(this.id,t,e,n)}},{key:"getNextActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getNextActivity(this.id,t,e)}},{key:"updateActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.updateActivity(this.id,t,e)}},{key:"cancel",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.cancel(this.id,t,e)}},{key:"complete",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.complete(this.id,t,e)}},{key:"isDispatched",get:function(){return null!==this.getAttribute("dispatched_at")}},{key:"isNotDispatched",get:function(){return null==this.getAttribute("dispatched_at")}},{key:"isStarted",get:function(){return null!==this.getAttribute("started_at")}},{key:"isNotStarted",get:function(){return null==this.getAttribute("started_at")}},{key:"isCompleted",get:function(){return"completed"==this.getAttribute("status")}},{key:"isCanceled",get:function(){return"canceled"==this.getAttribute("status")}},{key:"isEnroute",get:function(){return"driver_enroute"==this.getAttribute("status")||"enroute"===this.getAttribute("status")}},{key:"isInProgress",get:function(){return this.isStarted&&!this.isCanceled&&!this.isCompleted}},{key:"scheduledAt",get:function(){return this.isAttributeFilled("scheduled_at")?new Date(this.getAttribute("scheduled_at")):null}},{key:"startedAt",get:function(){return this.isAttributeFilled("started_at")?new Date(this.getAttribute("started_at")):null}},{key:"dispatchedAt",get:function(){return this.isAttributeFilled("dispatched_at")?new Date(this.getAttribute("dispatched_at")):null}},{key:"status",get:function(){return this.getAttribute("status")}}])}();ot("resource","Order",_t);var Nt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"payload",r])}return q(t,Dt),_(t,[{key:"attach",value:function(t){}},{key:"entities",get:function(){var t=this;return wt(this.entities.map((function(e){return st("Entity",e,t.adapter)})))}},{key:"dropoff",get:function(){return this.dropoff?st("Place",this.dropoff,this.adapter):null}},{key:"pickup",get:function(){return this.pickup?st("Place",this.pickup,this.adapter):null}},{key:"waypoints",get:function(){var t=this;return wt(this.waypoints.map((function(e){return st("Waypoint",e,t.adapter)})))}}])}();ot("resource","Payload",Nt);var Ft=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"entity",r])}return q(t,Dt),_(t)}();ot("resource","Entity",Ft);var Mt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"place",r])}return q(t,Dt),_(t,[{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new Et))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new Et))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"setOwner",value:function(t){return Pt(t)&&this.setAttribute("owner",t.id),"string"==typeof t&&this.setAttribute("owner",t),this}}],[{key:"fromGoogleAddress",value:function(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=Y(e.getAttribute("coordinates"),2),o=i[0],a=i[1];return new t({name:null,address:e.getAttribute("address"),location:new Et(o,a),street1:e.getAttribute("address"),street2:null,city:e.getAttribute("city"),province:e.getAttribute("stateLong"),postal_code:e.getAttribute("postalCode"),neighborhood:e.get("neighborhood"),district:e.getAttribute("county"),building:e.get("building"),country:e.getAttribute("countryShort"),phone:null,security_access_code:null},n,r)}}])}();ot("resource","Place",Mt);var qt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"waypoint",r])}return q(t,Mt),_(t)}();ot("resource","Waypoint",qt);var Ht=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"tracking-status",r])}return q(t,Dt),_(t)}();ot("resource","TrackingStatus",Ht);var It=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"vehicle",r])}return q(t,Dt),_(t)}();ot("resource","Vehicle",It);var zt=new jt({current:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.get("".concat(this.namespace,"/current"),t,e)}}),Bt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"organization",$({actions:zt},r)])}return q(t,Dt),_(t)}();ot("resource","Organization",Bt);var $t=function(t,e){return ct(t)?t.map((function(t){return new Bt(t,e)})):new Bt(t,e)},Ut=new jt({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(function(){return/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"")}(t))return this.adapter.post("drivers/login-with-sms",{phone:t});if(!e)throw new Error("Login requires password!");return this.adapter.post("drivers/login",$({identity:t,password:e},n)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/verify-code",$({identity:t,code:e},n)).then(this.afterFetch.bind(this))},track:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/track"),e,n).then(this.afterFetch.bind(this))},listOrganizations:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("drivers/".concat(t,"/organizations"),n,r).then((function(t){return $t(t,e.adapter)}))},switchOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/switch-organization"),n,r).then((function(t){return $t(t,e.adapter)}))},currentOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("drivers/".concat(t,"/current-organization"),n,r).then((function(t){return $t(t,e.adapter)}))},retrieve:function(t){return this.findRecord(t)},syncDevice:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/register-device"),e,n)}}),Wt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"driver",$({actions:Ut},r)])}return q(t,Dt),_(t,[{key:"token",get:function(){return this.getAttribute("token")}},{key:"isOnline",get:function(){return!0===this.getAttribute("online")}},{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new Et))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new Et))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"track",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.track(this.id,t,e)}},{key:"syncDevice",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.syncDevice(this.id,t,e)}},{key:"listOrganizations",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.listOrganizations(this.id,t,e)}},{key:"switchOrganization",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.switchOrganization(this.id,{next:t},e)}},{key:"currentOrganization",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.currentOrganization(this.id,t,e)}}])}();ot("resource","Driver",Wt);var Yt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"vendor",r])}return q(t,Dt),_(t)}();ot("resource","Vendor",Yt);var Gt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"contact",r])}return q(t,Dt),_(t)}();ot("resource","Contact",Gt);var Qt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"zone",r])}return q(t,Dt),_(t)}();ot("resource","Zone",Qt);var Jt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"service-area",r])}return q(t,Dt),_(t)}();ot("resource","ServiceArea",Jt);var Xt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"service-rate",r])}return q(t,Dt),_(t)}();ot("resource","ServiceRate",Xt);var Kt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"service-quote",r])}return q(t,Dt),_(t,[{key:"fromPreliminary",value:function(){}},{key:"fromPayload",value:function(){}}])}();ot("resource","ServiceQuote",Kt);var Vt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"fleet",r])}return q(t,Dt),_(t)}();ot("resource","Fleet",Vt);var Zt=_((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};D(this,t),this.version=e.version||"v1",this.host=e.host||null,this.namespace=e.namespace||null,this.headers=e.headers||{}}));ot("adapter","Adapter",Zt);var te=function(){function t(e){var n;return D(this,t),(n=P(this,t,[e])).setHeaders({Authorization:"Bearer ".concat(e.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;browser"}),n}return q(t,Zt),_(t,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.headers=$($({},this.headers),t),this}},{key:"parseJSON",value:function(t){return new Promise((function(e,n){t.json().then((function(n){e({statusText:t.statusText,status:t.status,ok:t.ok,json:n})})).catch((function(){n(new Error("Oops! Something went wrong when handling your request."))}))}))}},{key:"request",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new Promise((function(o,a){fetch(i.url||"".concat(e.host,"/").concat(e.namespace,"/").concat(t),$({method:n,mode:i.mode||"cors",headers:new Headers($($({},e.headers||{}),i.headers||{}))},r)).then(e.parseJSON).then((function(t){if(t.ok)return o(t.json);a(new Error(t.json.errors?t.json.errors[0]:t.statusText))})).catch((function(t){a(t)}))}))}},{key:"get",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=kt(e=n)||"string"==typeof e&&!1===/\S/.test(e)?"":new URLSearchParams(n).toString();return this.request("".concat(t).concat(i?"?".concat(i):""),"GET",{},r)}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"POST",{body:JSON.stringify(e)},n)}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PUT",{body:JSON.stringify(e)},n)}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(t,"DELETE",{},e)}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PATCH",{body:JSON.stringify(e)},n)}}])}();function ee(t,e){return function(){return t.apply(e,arguments)}}ot("adapter","BrowserAdapter",te);var ne,re=Object.prototype.toString,ie=Object.getPrototypeOf,oe=(ne=Object.create(null),function(t){var e=re.call(t);return ne[e]||(ne[e]=e.slice(8,-1).toLowerCase())}),ae=function(t){return t=t.toLowerCase(),function(e){return oe(e)===t}},ue=function(t){return function(e){return J(e)===t}},se=Array.isArray,ce=ue("undefined"),le=ae("ArrayBuffer"),he=ue("string"),fe=ue("function"),de=ue("number"),ve=function(t){return null!==t&&"object"===J(t)},pe=function(t){if("object"!==oe(t))return!1;var e=ie(t);return!(null!==e&&e!==Object.prototype&&null!==Object.getPrototypeOf(e)||Symbol.toStringTag in t||Symbol.iterator in t)},ye=ae("Date"),ge=ae("File"),me=ae("Blob"),we=ae("FileList"),be=ae("URLSearchParams"),ke=Y(["ReadableStream","Request","Response","Headers"].map(ae),4),xe=ke[0],Ae=ke[1],Ee=ke[2],Oe=ke[3];function Se(t,e){var n,r,i=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).allOwnKeys,o=void 0!==i&&i;if(null!=t)if("object"!==J(t)&&(t=[t]),se(t))for(n=0,r=t.length;n0;)if(e===(n=r[i]).toLowerCase())return n;return null}var Re,je,Pe,De,Le,Ce="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,_e=function(t){return!ce(t)&&t!==Ce},Ne=(Re="undefined"!=typeof Uint8Array&&ie(Uint8Array),function(t){return Re&&t instanceof Re}),Fe=ae("HTMLFormElement"),Me=function(){var t=Object.prototype.hasOwnProperty;return function(e,n){return t.call(e,n)}}(),qe=ae("RegExp"),He=function(t,e){var n=Object.getOwnPropertyDescriptors(t),r={};Se(n,(function(n,i){var o;!1!==(o=e(n,i,t))&&(r[i]=o||n)})),Object.defineProperties(t,r)},Ie="abcdefghijklmnopqrstuvwxyz",ze="0123456789",Be={DIGIT:ze,ALPHA:Ie,ALPHA_DIGIT:Ie+Ie.toUpperCase()+ze},$e=ae("AsyncFunction"),Ue=(je="function"==typeof setImmediate,Pe=fe(Ce.postMessage),je?setImmediate:Pe?(De="axios@".concat(Math.random()),Le=[],Ce.addEventListener("message",(function(t){var e=t.source,n=t.data;e===Ce&&n===De&&Le.length&&Le.shift()()}),!1),function(t){Le.push(t),Ce.postMessage(De,"*")}):function(t){return setTimeout(t)}),We="undefined"!=typeof queueMicrotask?queueMicrotask.bind(Ce):"undefined"!=typeof process&&process.nextTick||Ue,Ye={isArray:se,isArrayBuffer:le,isBuffer:function(t){return null!==t&&!ce(t)&&null!==t.constructor&&!ce(t.constructor)&&fe(t.constructor.isBuffer)&&t.constructor.isBuffer(t)},isFormData:function(t){var e;return t&&("function"==typeof FormData&&t instanceof FormData||fe(t.append)&&("formdata"===(e=oe(t))||"object"===e&&fe(t.toString)&&"[object FormData]"===t.toString()))},isArrayBufferView:function(t){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&le(t.buffer)},isString:he,isNumber:de,isBoolean:function(t){return!0===t||!1===t},isObject:ve,isPlainObject:pe,isReadableStream:xe,isRequest:Ae,isResponse:Ee,isHeaders:Oe,isUndefined:ce,isDate:ye,isFile:ge,isBlob:me,isRegExp:qe,isFunction:fe,isStream:function(t){return ve(t)&&fe(t.pipe)},isURLSearchParams:be,isTypedArray:Ne,isFileList:we,forEach:Se,merge:function t(){for(var e=(_e(this)&&this||{}).caseless,n={},r=function(r,i){var o=e&&Te(n,i)||i;pe(n[o])&&pe(r)?n[o]=t(n[o],r):pe(r)?n[o]=t({},r):se(r)?n[o]=r.slice():n[o]=r},i=0,o=arguments.length;i3&&void 0!==arguments[3]?arguments[3]:{}).allOwnKeys}),t},trim:function(t){return t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")},stripBOM:function(t){return 65279===t.charCodeAt(0)&&(t=t.slice(1)),t},inherits:function(t,e,n,r){t.prototype=Object.create(e.prototype,r),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),n&&Object.assign(t.prototype,n)},toFlatObject:function(t,e,n,r){var i,o,a,u={};if(e=e||{},null==t)return e;do{for(o=(i=Object.getOwnPropertyNames(t)).length;o-- >0;)a=i[o],r&&!r(a,t,e)||u[a]||(e[a]=t[a],u[a]=!0);t=!1!==n&&ie(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},kindOf:oe,kindOfTest:ae,endsWith:function(t,e,n){t=String(t),(void 0===n||n>t.length)&&(n=t.length),n-=e.length;var r=t.indexOf(e,n);return-1!==r&&r===n},toArray:function(t){if(!t)return null;if(se(t))return t;var e=t.length;if(!de(e))return null;for(var n=new Array(e);e-- >0;)n[e]=t[e];return n},forEachEntry:function(t,e){for(var n,r=(t&&t[Symbol.iterator]).call(t);(n=r.next())&&!n.done;){var i=n.value;e.call(t,i[0],i[1])}},matchAll:function(t,e){for(var n,r=[];null!==(n=t.exec(e));)r.push(n);return r},isHTMLForm:Fe,hasOwnProperty:Me,hasOwnProp:Me,reduceDescriptors:He,freezeMethods:function(t){He(t,(function(e,n){if(fe(t)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;var r=t[n];fe(r)&&(e.enumerable=!1,"writable"in e?e.writable=!1:e.set||(e.set=function(){throw Error("Can not rewrite read-only method '"+n+"'")}))}))},toObjectSet:function(t,e){var n={},r=function(t){t.forEach((function(t){n[t]=!0}))};return se(t)?r(t):r(String(t).split(e)),n},toCamelCase:function(t){return t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(t,e,n){return e.toUpperCase()+n}))},noop:function(){},toFiniteNumber:function(t,e){return null!=t&&Number.isFinite(t=+t)?t:e},findKey:Te,global:Ce,isContextDefined:_e,ALPHABET:Be,generateString:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Be.ALPHA_DIGIT,n="",r=e.length;t--;)n+=e[Math.random()*r|0];return n},isSpecCompliantForm:function(t){return!!(t&&fe(t.append)&&"FormData"===t[Symbol.toStringTag]&&t[Symbol.iterator])},toJSONObject:function(t){var e=new Array(10),n=function(t,r){if(ve(t)){if(e.indexOf(t)>=0)return;if(!("toJSON"in t)){e[r]=t;var i=se(t)?[]:{};return Se(t,(function(t,e){var o=n(t,r+1);!ce(o)&&(i[e]=o)})),e[r]=void 0,i}}return t};return n(t,0)},isAsyncFn:$e,isThenable:function(t){return t&&(ve(t)||fe(t))&&fe(t.then)&&fe(t.catch)},setImmediate:Ue,asap:We};function Ge(t,e,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=t,this.name="AxiosError",e&&(this.code=e),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status?i.status:null)}Ye.inherits(Ge,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Ye.toJSONObject(this.config),code:this.code,status:this.status}}});var Qe=Ge.prototype,Je={};function Xe(t){return Ye.isPlainObject(t)||Ye.isArray(t)}function Ke(t){return Ye.endsWith(t,"[]")?t.slice(0,-2):t}function Ve(t,e,n){return t?t.concat(e).map((function(t,e){return t=Ke(t),!n&&e?"["+t+"]":t})).join(n?".":""):e}["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((function(t){Je[t]={value:t}})),Object.defineProperties(Ge,Je),Object.defineProperty(Qe,"isAxiosError",{value:!0}),Ge.from=function(t,e,n,r,i,o){var a=Object.create(Qe);return Ye.toFlatObject(t,a,(function(t){return t!==Error.prototype}),(function(t){return"isAxiosError"!==t})),Ge.call(a,t.message,e,n,r,i),a.cause=t,a.name=t.name,o&&Object.assign(a,o),a};var Ze=Ye.toFlatObject(Ye,{},null,(function(t){return/^is[A-Z]/.test(t)}));function tn(t,e,n){if(!Ye.isObject(t))throw new TypeError("target must be an object");e=e||new FormData;var r=(n=Ye.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(t,e){return!Ye.isUndefined(e[t])}))).metaTokens,i=n.visitor||c,o=n.dots,a=n.indexes,u=(n.Blob||"undefined"!=typeof Blob&&Blob)&&Ye.isSpecCompliantForm(e);if(!Ye.isFunction(i))throw new TypeError("visitor must be a function");function s(t){if(null===t)return"";if(Ye.isDate(t))return t.toISOString();if(!u&&Ye.isBlob(t))throw new Ge("Blob is not supported. Use a Buffer instead.");return Ye.isArrayBuffer(t)||Ye.isTypedArray(t)?u&&"function"==typeof Blob?new Blob([t]):Buffer.from(t):t}function c(t,n,i){var u=t;if(t&&!i&&"object"===J(t))if(Ye.endsWith(n,"{}"))n=r?n:n.slice(0,-2),t=JSON.stringify(t);else if(Ye.isArray(t)&&function(t){return Ye.isArray(t)&&!t.some(Xe)}(t)||(Ye.isFileList(t)||Ye.endsWith(n,"[]"))&&(u=Ye.toArray(t)))return n=Ke(n),u.forEach((function(t,r){!Ye.isUndefined(t)&&null!==t&&e.append(!0===a?Ve([n],r,o):null===a?n:n+"[]",s(t))})),!1;return!!Xe(t)||(e.append(Ve(i,n,o),s(t)),!1)}var l=[],h=Object.assign(Ze,{defaultVisitor:c,convertValue:s,isVisitable:Xe});if(!Ye.isObject(t))throw new TypeError("data must be an object");return function t(n,r){if(!Ye.isUndefined(n)){if(-1!==l.indexOf(n))throw Error("Circular reference detected in "+r.join("."));l.push(n),Ye.forEach(n,(function(n,o){!0===(!(Ye.isUndefined(n)||null===n)&&i.call(e,n,Ye.isString(o)?o.trim():o,r,h))&&t(n,r?r.concat(o):[o])})),l.pop()}}(t),e}function en(t){var e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,(function(t){return e[t]}))}function nn(t,e){this._pairs=[],t&&tn(t,this,e)}var rn=nn.prototype;function on(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function an(t,e,n){if(!e)return t;var r=n&&n.encode||on;Ye.isFunction(n)&&(n={serialize:n});var i,o=n&&n.serialize;if(i=o?o(e,n):Ye.isURLSearchParams(e)?e.toString():new nn(e,n).toString(r)){var a=t.indexOf("#");-1!==a&&(t=t.slice(0,a)),t+=(-1===t.indexOf("?")?"?":"&")+i}return t}rn.append=function(t,e){this._pairs.push([t,e])},rn.toString=function(t){var e=t?function(e){return t.call(this,e,en)}:en;return this._pairs.map((function(t){return e(t[0])+"="+e(t[1])}),"").join("&")};var un=_((function t(){D(this,t),this.handlers=[]}),[{key:"use",value:function(t,e,n){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}},{key:"eject",value:function(t){this.handlers[t]&&(this.handlers[t]=null)}},{key:"clear",value:function(){this.handlers&&(this.handlers=[])}},{key:"forEach",value:function(t){Ye.forEach(this.handlers,(function(e){null!==e&&t(e)}))}}]),sn={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},cn={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:nn,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},ln="undefined"!=typeof window&&"undefined"!=typeof document,hn="object"===("undefined"==typeof navigator?"undefined":J(navigator))&&navigator||void 0,fn=ln&&(!hn||["ReactNative","NativeScript","NS"].indexOf(hn.product)<0),dn="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,vn=ln&&window.location.href||"http://localhost",pn=$($({},Object.freeze({__proto__:null,hasBrowserEnv:ln,hasStandardBrowserEnv:fn,hasStandardBrowserWebWorkerEnv:dn,navigator:hn,origin:vn})),cn);function yn(t){function e(t,n,r,i){var o=t[i++];if("__proto__"===o)return!0;var a=Number.isFinite(+o),u=i>=t.length;return o=!o&&Ye.isArray(r)?r.length:o,u?(Ye.hasOwnProp(r,o)?r[o]=[r[o],n]:r[o]=n,!a):(r[o]&&Ye.isObject(r[o])||(r[o]=[]),e(t,n,r[o],i)&&Ye.isArray(r[o])&&(r[o]=function(t){var e,n,r={},i=Object.keys(t),o=i.length;for(e=0;e-1,o=Ye.isObject(t);if(o&&Ye.isHTMLForm(t)&&(t=new FormData(t)),Ye.isFormData(t))return i?JSON.stringify(yn(t)):t;if(Ye.isArrayBuffer(t)||Ye.isBuffer(t)||Ye.isStream(t)||Ye.isFile(t)||Ye.isBlob(t)||Ye.isReadableStream(t))return t;if(Ye.isArrayBufferView(t))return t.buffer;if(Ye.isURLSearchParams(t))return e.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return function(t,e){return tn(t,new pn.classes.URLSearchParams,Object.assign({visitor:function(t,e,n,r){return pn.isNode&&Ye.isBuffer(t)?(this.append(e,t.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},e))}(t,this.formSerializer).toString();if((n=Ye.isFileList(t))||r.indexOf("multipart/form-data")>-1){var a=this.env&&this.env.FormData;return tn(n?{"files[]":t}:t,a&&new a,this.formSerializer)}}return o||i?(e.setContentType("application/json",!1),function(t){if(Ye.isString(t))try{return(0,JSON.parse)(t),Ye.trim(t)}catch(t){if("SyntaxError"!==t.name)throw t}return(0,JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){var e=this.transitional||gn.transitional,n=e&&e.forcedJSONParsing,r="json"===this.responseType;if(Ye.isResponse(t)||Ye.isReadableStream(t))return t;if(t&&Ye.isString(t)&&(n&&!this.responseType||r)){var i=!(e&&e.silentJSONParsing)&&r;try{return JSON.parse(t)}catch(t){if(i){if("SyntaxError"===t.name)throw Ge.from(t,Ge.ERR_BAD_RESPONSE,this,null,this.response);throw t}}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:pn.classes.FormData,Blob:pn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};Ye.forEach(["delete","get","head","post","put","patch"],(function(t){gn.headers[t]={}}));var mn=Ye.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),wn=Symbol("internals");function bn(t){return t&&String(t).trim().toLowerCase()}function kn(t){return!1===t||null==t?t:Ye.isArray(t)?t.map(kn):String(t)}function xn(t,e,n,r,i){return Ye.isFunction(r)?r.call(this,e,n):(i&&(e=n),Ye.isString(e)?Ye.isString(r)?-1!==e.indexOf(r):Ye.isRegExp(r)?r.test(e):void 0:void 0)}var An=_((function t(e){D(this,t),e&&this.set(e)}),[{key:"set",value:function(t,e,n){var r=this;function i(t,e,n){var i=bn(e);if(!i)throw new Error("header name must be a non-empty string");var o=Ye.findKey(r,i);(!o||void 0===r[o]||!0===n||void 0===n&&!1!==r[o])&&(r[o||e]=kn(t))}var o=function(t,e){return Ye.forEach(t,(function(t,n){return i(t,n,e)}))};if(Ye.isPlainObject(t)||t instanceof this.constructor)o(t,e);else if(Ye.isString(t)&&(t=t.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim()))o(function(t){var e,n,r,i={};return t&&t.split("\n").forEach((function(t){r=t.indexOf(":"),e=t.substring(0,r).trim().toLowerCase(),n=t.substring(r+1).trim(),!e||i[e]&&mn[e]||("set-cookie"===e?i[e]?i[e].push(n):i[e]=[n]:i[e]=i[e]?i[e]+", "+n:n)})),i}(t),e);else if(Ye.isHeaders(t)){var a,u=N(t.entries());try{for(u.s();!(a=u.n()).done;){var s=Y(a.value,2),c=s[0];i(s[1],c,n)}}catch(t){u.e(t)}finally{u.f()}}else null!=t&&i(e,t,n);return this}},{key:"get",value:function(t,e){if(t=bn(t)){var n=Ye.findKey(this,t);if(n){var r=this[n];if(!e)return r;if(!0===e)return function(t){for(var e,n=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;e=r.exec(t);)n[e[1]]=e[2];return n}(r);if(Ye.isFunction(e))return e.call(this,r,n);if(Ye.isRegExp(e))return e.exec(r);throw new TypeError("parser must be boolean|regexp|function")}}}},{key:"has",value:function(t,e){if(t=bn(t)){var n=Ye.findKey(this,t);return!(!n||void 0===this[n]||e&&!xn(0,this[n],n,e))}return!1}},{key:"delete",value:function(t,e){var n=this,r=!1;function i(t){if(t=bn(t)){var i=Ye.findKey(n,t);!i||e&&!xn(0,n[i],i,e)||(delete n[i],r=!0)}}return Ye.isArray(t)?t.forEach(i):i(t),r}},{key:"clear",value:function(t){for(var e=Object.keys(this),n=e.length,r=!1;n--;){var i=e[n];t&&!xn(0,this[i],i,t,!0)||(delete this[i],r=!0)}return r}},{key:"normalize",value:function(t){var e=this,n={};return Ye.forEach(this,(function(r,i){var o=Ye.findKey(n,i);if(o)return e[o]=kn(r),void delete e[i];var a=t?function(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(function(t,e,n){return e.toUpperCase()+n}))}(i):String(i).trim();a!==i&&delete e[i],e[a]=kn(r),n[a]=!0})),this}},{key:"concat",value:function(){for(var t,e=arguments.length,n=new Array(e),r=0;r1?n-1:0),i=1;i2&&void 0!==arguments[2]?arguments[2]:3,r=0,i=function(t,e){t=t||10;var n,r=new Array(t),i=new Array(t),o=0,a=0;return e=void 0!==e?e:1e3,function(u){var s=Date.now(),c=i[a];n||(n=s),r[o]=u,i[o]=s;for(var l=a,h=0;l!==o;)h+=r[l++],l%=t;if((o=(o+1)%t)===a&&(a=(a+1)%t),!(s-n1&&void 0!==arguments[1]?arguments[1]:Date.now();i=o,n=null,r&&(clearTimeout(r),r=null),t.apply(null,e)};return[function(){for(var t=Date.now(),e=t-i,u=arguments.length,s=new Array(u),c=0;c=o?a(s,t):(n=s,r||(r=setTimeout((function(){r=null,a(n)}),o-e)))},function(){return n&&a(n)}]}((function(n){var o=n.loaded,a=n.lengthComputable?n.total:void 0,u=o-r,s=i(u);r=o;var c=F({loaded:o,total:a,progress:a?o/a:void 0,bytes:u,rate:s||void 0,estimated:s&&a&&o<=a?(a-o)/s:void 0,event:n,lengthComputable:null!=a},e?"download":"upload",!0);t(c)}),n)},jn=function(t,e){var n=null!=t;return[function(r){return e[0]({lengthComputable:n,total:t,loaded:r})},e[1]]},Pn=function(t){return function(){for(var e=arguments.length,n=new Array(e),r=0;r1?e-1:0),r=1;r1?"since :\n"+u.map(nr).join("\n"):" "+nr(u[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return n};function or(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new Sn(null,t)}function ar(t){return or(t),t.headers=An.from(t.headers),t.data=En.call(t,t.transformRequest),-1!==["post","put","patch"].indexOf(t.method)&&t.headers.setContentType("application/x-www-form-urlencoded",!1),ir(t.adapter||gn.adapter)(t).then((function(e){return or(t),e.data=En.call(t,t.transformResponse,e),e.headers=An.from(e.headers),e}),(function(e){return On(e)||(or(t),e&&e.response&&(e.response.data=En.call(t,t.transformResponse,e.response),e.response.headers=An.from(e.response.headers))),Promise.reject(e)}))}var ur={};["object","boolean","number","function","string","symbol"].forEach((function(t,e){ur[t]=function(n){return J(n)===t||"a"+(e<1?"n ":" ")+t}}));var sr={};ur.transitional=function(t,e,n){function r(t,e){return"[Axios v1.7.9] Transitional option '"+t+"'"+e+(n?". "+n:"")}return function(n,i,o){if(!1===t)throw new Ge(r(i," has been removed"+(e?" in "+e:"")),Ge.ERR_DEPRECATED);return e&&!sr[i]&&(sr[i]=!0,console.warn(r(i," has been deprecated since v"+e+" and will be removed in the near future"))),!t||t(n,i,o)}},ur.spelling=function(t){return function(e,n){return console.warn("".concat(n," is likely a misspelling of ").concat(t)),!0}};var cr={assertOptions:function(t,e,n){if("object"!==J(t))throw new Ge("options must be an object",Ge.ERR_BAD_OPTION_VALUE);for(var r=Object.keys(t),i=r.length;i-- >0;){var o=r[i],a=e[o];if(a){var u=t[o],s=void 0===u||a(u,o,t);if(!0!==s)throw new Ge("option "+o+" must be "+s,Ge.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new Ge("Unknown option "+o,Ge.ERR_BAD_OPTION)}},validators:ur},lr=cr.validators,hr=function(){return _((function t(e){D(this,t),this.defaults=e,this.interceptors={request:new un,response:new un}}),[{key:"request",value:(t=R(U().mark((function t(e,n){var r,i;return U().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,this._request(e,n);case 3:return t.abrupt("return",t.sent);case 6:if(t.prev=6,t.t0=t.catch(0),t.t0 instanceof Error){r={},Error.captureStackTrace?Error.captureStackTrace(r):r=new Error,i=r.stack?r.stack.replace(/^.+\n/,""):"";try{t.t0.stack?i&&!String(t.t0.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(t.t0.stack+="\n"+i):t.t0.stack=i}catch(t){}}throw t.t0;case 10:case"end":return t.stop()}}),t,this,[[0,6]])}))),function(e,n){return t.apply(this,arguments)})},{key:"_request",value:function(t,e){"string"==typeof t?(e=e||{}).url=t:e=t||{};var n=e=Nn(this.defaults,e),r=n.transitional,i=n.paramsSerializer,o=n.headers;void 0!==r&&cr.assertOptions(r,{silentJSONParsing:lr.transitional(lr.boolean),forcedJSONParsing:lr.transitional(lr.boolean),clarifyTimeoutError:lr.transitional(lr.boolean)},!1),null!=i&&(Ye.isFunction(i)?e.paramsSerializer={serialize:i}:cr.assertOptions(i,{encode:lr.function,serialize:lr.function},!0)),cr.assertOptions(e,{baseUrl:lr.spelling("baseURL"),withXsrfToken:lr.spelling("withXSRFToken")},!0),e.method=(e.method||this.defaults.method||"get").toLowerCase();var a=o&&Ye.merge(o.common,o[e.method]);o&&Ye.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete o[t]})),e.headers=An.concat(a,o);var u=[],s=!0;this.interceptors.request.forEach((function(t){"function"==typeof t.runWhen&&!1===t.runWhen(e)||(s=s&&t.synchronous,u.unshift(t.fulfilled,t.rejected))}));var c,l=[];this.interceptors.response.forEach((function(t){l.push(t.fulfilled,t.rejected)}));var h,f=0;if(!s){var d=[ar.bind(this),void 0];for(d.unshift.apply(d,u),d.push.apply(d,l),h=d.length,c=Promise.resolve(e);f0;)r._listeners[e](t);r._listeners=null}})),this.promise.then=function(t){var e,n=new Promise((function(t){r.subscribe(t),e=t})).then(t);return n.cancel=function(){r.unsubscribe(e)},n},e((function(t,e,i){r.reason||(r.reason=new Sn(t,e,i),n(r.reason))}))}return _(t,[{key:"throwIfRequested",value:function(){if(this.reason)throw this.reason}},{key:"subscribe",value:function(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t]}},{key:"unsubscribe",value:function(t){if(this._listeners){var e=this._listeners.indexOf(t);-1!==e&&this._listeners.splice(e,1)}}},{key:"toAbortSignal",value:function(){var t=this,e=new AbortController,n=function(t){e.abort(t)};return this.subscribe(n),e.signal.unsubscribe=function(){return t.unsubscribe(n)},e.signal}}],[{key:"source",value:function(){var e;return{token:new t((function(t){e=t})),cancel:e}}}])}(),dr={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(dr).forEach((function(t){var e=Y(t,2),n=e[0],r=e[1];dr[r]=n}));var vr=function t(e){var n=new hr(e),r=ee(hr.prototype.request,n);return Ye.extend(r,hr.prototype,n,{allOwnKeys:!0}),Ye.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return t(Nn(e,n))},r}(gn);vr.Axios=hr,vr.CanceledError=Sn,vr.CancelToken=fr,vr.isCancel=On,vr.VERSION="1.7.9",vr.toFormData=tn,vr.AxiosError=Ge,vr.Cancel=vr.CanceledError,vr.all=function(t){return Promise.all(t)},vr.spread=function(t){return function(e){return t.apply(null,e)}},vr.isAxiosError=function(t){return Ye.isObject(t)&&!0===t.isAxiosError},vr.mergeConfig=Nn,vr.AxiosHeaders=An,vr.formToJSON=function(t){return yn(Ye.isHTMLForm(t)?new FormData(t):t)},vr.getAdapter=ir,vr.HttpStatusCode=dr,vr.default=vr,vr.Axios,vr.AxiosError,vr.CanceledError,vr.isCancel,vr.CancelToken,vr.VERSION,vr.all,vr.Cancel,vr.isAxiosError,vr.spread,vr.toFormData,vr.AxiosHeaders,vr.HttpStatusCode,vr.formToJSON,vr.getAdapter,vr.mergeConfig;var pr=function(){function t(e){var n;return D(this,t),(n=P(this,t,[e])).axiosInstance=vr.create({baseURL:"".concat(n.host,"/").concat(n.namespace),headers:{Authorization:"Bearer ".concat(e.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;node"}}),n.axiosInstance.interceptors.response.use((function(t){return t.data}),(function(t){if(t.response){var e=t.response.data;if(ct(e.errors)&&e.errors.length)throw new Error(e.errors[0]);if(e.error)throw new Error(e.error)}throw t})),n}return q(t,Zt),_(t,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.axiosInstance.defaults.headers.common=$($({},this.axiosInstance.defaults.headers.common),t),this}},{key:"request",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axiosInstance.request($({method:t,url:e},n))}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request("GET",t,$({params:e},n))}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request("POST",t,$({data:e},n))}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request("PUT",t,$({data:e},n))}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request("DELETE",t,e)}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request("PATCH",t,$({data:e},n))}}])}();ot("adapter","NodeAdapter",pr);var yr=function(){function t(){return D(this,t),P(this,t,arguments)}return q(t,Zt),_(t)}();ot("adapter","EmberJsAdapter",yr),function(){function t(e){var n,r,i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(D(this,t),this.version=null!==(n=o.version)&&void 0!==n?n:"v1",this.options={version:this.version,host:null!==(r=o.host)&&void 0!==r?r:"https://api.fleetbase.io",namespace:null!==(i=o.namespace)&&void 0!==i?i:this.version,debug:a,publicKey:e},"string"!=typeof e||0===e.length)throw new Error("⚠️ Invalid public key given to Fleetbase SDK");if(!xt()&&e.toLowerCase().startsWith("$"))throw new Error("Secret key provided. You must use a public key with Fleetbase Javascript SDK!");this.adapter=o.adapter||At(this.options),this.orders=new Lt("order",this.adapter).extendActions(Ct),this.entities=new Lt("entity",this.adapter),this.places=new Lt("place",this.adapter),this.drivers=new Lt("driver",this.adapter).extendActions(Ut),this.vehicles=new Lt("vehicle",this.adapter),this.vendors=new Lt("vendor",this.adapter),this.contacts=new Lt("contact",this.adapter),this.serviceAreas=new Lt("service-area",this.adapter),this.zones=new Lt("zone",this.adapter),this.fleets=new Lt("fleet",this.adapter),this.organizations=new Lt("organization",this.adapter).extendActions(zt)}_(t,[{key:"setAdapter",value:function(t){this.adapter=t}},{key:"getAdapter",value:function(){return this.adapter}}],[{key:"newInstance",value:function(){return L(t,Array.prototype.slice.call(arguments))}}])}();var gr=function(){function t(){return i(this,t),r(this,t,arguments)}return l(t,Lt),a(t,[{key:"extendActions",value:function(){return Rt(this,arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])}},{key:"serialize",value:function(t){return ut("resource",rt(this.resource),t,this.adapter)}}])}();function mr(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"USD",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"symbol";return new Intl.NumberFormat("en-US",{style:"currency",currency:e,currencyDisplay:n}).format(t)}function wr(t){var e=null==t;if(e)return e;if("number"==typeof t.size)return!t.size;var n=m(t);if("object"===n){var r=t.size;if("number"==typeof r)return!r}if("number"==typeof t.length&&"function"!==n)return!t.length;if("object"===n){var i=t.length;if("number"==typeof i)return!i}return!1}var br=Array.isArray,kr=function(){function t(){return i(this,t),r(this,t,arguments)}return l(t,Dt),a(t,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new gr(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}}])}();ot("resource","StorefrontResource",kr);var xr=new jt({count:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={};return t&&(n.store=t),this.adapter.get("".concat(this.namespace,"/count"),n,e)}}),Ar=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,t),r(this,t,[e,n,"review",o])}return l(t,kr),a(t,[{key:"getMedia",value:function(){}},{key:"getPhotos",value:function(){}},{key:"getVideos",value:function(){}}])}();ot("resource","Review",Ar);var Er=6048e5,Or=Symbol.for("constructDateFrom");function Sr(t,e){return"function"==typeof t?t(e):t&&"object"===m(t)&&Or in t?t[Or](e):t instanceof Date?new t.constructor(e):new Date(e)}function Tr(t,e){return Sr(e||t,t)}function Rr(t,e,n){var r=Tr(t,null==n?void 0:n.in);return isNaN(e)?Sr((null==n?void 0:n.in)||t,NaN):e?(r.setDate(r.getDate()+e),r):r}var jr={};function Pr(){return jr}function Dr(t,e){var n,r,i,o,a,u,s=Pr(),c=null!==(n=null!==(r=null!==(i=null!==(o=null==e?void 0:e.weekStartsOn)&&void 0!==o?o:null==e||null===(a=e.locale)||void 0===a||null===(a=a.options)||void 0===a?void 0:a.weekStartsOn)&&void 0!==i?i:s.weekStartsOn)&&void 0!==r?r:null===(u=s.locale)||void 0===u||null===(u=u.options)||void 0===u?void 0:u.weekStartsOn)&&void 0!==n?n:0,l=Tr(t,null==e?void 0:e.in),h=l.getDay(),f=(h=o.getTime()?r+1:n.getTime()>=u.getTime()?r:r-1}function _r(t){var e=Tr(t),n=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return n.setUTCFullYear(e.getFullYear()),+t-+n}function Nr(t,e){var n=Tr(t,void 0);return n.setHours(0,0,0,0),n}function Fr(t,e,n){var r=function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r0&&void 0!==arguments[0]?arguments[0]:{},n=e.width?String(e.width):t.defaultWidth;return t.formats[n]||t.formats[t.defaultWidth]}}var Ir={date:Hr({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:Hr({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:Hr({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},zr={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function Br(t){return function(e,n){var r;if("formatting"===(null!=n&&n.context?String(n.context):"standalone")&&t.formattingValues){var i=t.defaultFormattingWidth||t.defaultWidth,o=null!=n&&n.width?String(n.width):i;r=t.formattingValues[o]||t.formattingValues[i]}else{var a=t.defaultWidth,u=null!=n&&n.width?String(n.width):t.defaultWidth;r=t.values[u]||t.values[a]}return r[t.argumentCallback?t.argumentCallback(e):e]}}function $r(t){return function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.width,i=r&&t.matchPatterns[r]||t.matchPatterns[t.defaultMatchWidth],o=e.match(i);if(!o)return null;var a,u=o[0],s=r&&t.parsePatterns[r]||t.parsePatterns[t.defaultParseWidth],c=Array.isArray(s)?function(t,e){for(var n=0;n0?"in "+r:r+" ago":r},formatLong:Ir,formatRelative:function(t,e,n,r){return zr[t]},localize:{ordinalNumber:function(t,e){var n=Number(t),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:Br({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:Br({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(t){return t-1}}),month:Br({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:Br({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:Br({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(Ur={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(t){return parseInt(t,10)}},function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.match(Ur.matchPattern);if(!n)return null;var r=n[0],i=t.match(Ur.parsePattern);if(!i)return null;var o=Ur.valueCallback?Ur.valueCallback(i[0]):i[0];return{value:o=e.valueCallback?e.valueCallback(o):o,rest:t.slice(r.length)}}),era:$r({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:$r({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:$r({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:$r({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:$r({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function Yr(t,e){var n=Tr(t,void 0),r=Fr(n,function(t){var e=Tr(t,void 0);return e.setFullYear(e.getFullYear(),0,1),e.setHours(0,0,0,0),e}(n));return r+1}function Gr(t,e){var n=Tr(t,void 0),r=+Lr(n)-+function(t){var e=Cr(t),n=Sr(t,0);return n.setFullYear(e,0,4),n.setHours(0,0,0,0),Lr(n)}(n);return Math.round(r/Er)+1}function Qr(t,e){var n,r,i,o,a,u,s=Tr(t,null==e?void 0:e.in),c=s.getFullYear(),l=Pr(),h=null!==(n=null!==(r=null!==(i=null!==(o=null==e?void 0:e.firstWeekContainsDate)&&void 0!==o?o:null==e||null===(a=e.locale)||void 0===a||null===(a=a.options)||void 0===a?void 0:a.firstWeekContainsDate)&&void 0!==i?i:l.firstWeekContainsDate)&&void 0!==r?r:null===(u=l.locale)||void 0===u||null===(u=u.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==n?n:1,f=Sr((null==e?void 0:e.in)||t,0);f.setFullYear(c+1,0,h),f.setHours(0,0,0,0);var d=Dr(f,e),v=Sr((null==e?void 0:e.in)||t,0);v.setFullYear(c,0,h),v.setHours(0,0,0,0);var p=Dr(v,e);return+s>=+d?c+1:+s>=+p?c:c-1}function Jr(t,e){var n=Tr(t,null==e?void 0:e.in),r=+Dr(n,e)-+function(t,e){var n,r,i,o,a,u,s=Pr(),c=null!==(n=null!==(r=null!==(i=null!==(o=null==e?void 0:e.firstWeekContainsDate)&&void 0!==o?o:null==e||null===(a=e.locale)||void 0===a||null===(a=a.options)||void 0===a?void 0:a.firstWeekContainsDate)&&void 0!==i?i:s.firstWeekContainsDate)&&void 0!==r?r:null===(u=s.locale)||void 0===u||null===(u=u.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==n?n:1,l=Qr(t,e),h=Sr((null==e?void 0:e.in)||t,0);return h.setFullYear(l,0,c),h.setHours(0,0,0,0),Dr(h,e)}(n,e);return Math.round(r/Er)+1}function Xr(t,e){return(t<0?"-":"")+Math.abs(t).toString().padStart(e,"0")}var Kr=function(t,e){var n=t.getFullYear(),r=n>0?n:1-n;return Xr("yy"===e?r%100:r,e.length)},Vr=function(t,e){var n=t.getMonth();return"M"===e?String(n+1):Xr(n+1,2)},Zr=function(t,e){return Xr(t.getDate(),e.length)},ti=function(t,e){return Xr(t.getHours()%12||12,e.length)},ei=function(t,e){return Xr(t.getHours(),e.length)},ni=function(t,e){return Xr(t.getMinutes(),e.length)},ri=function(t,e){return Xr(t.getSeconds(),e.length)},ii=function(t,e){var n=e.length,r=t.getMilliseconds();return Xr(Math.trunc(r*Math.pow(10,n-3)),e.length)},oi="midnight",ai="noon",ui="morning",si="afternoon",ci="evening",li="night",hi={G:function(t,e,n){var r=t.getFullYear()>0?1:0;switch(e){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});default:return n.era(r,{width:"wide"})}},y:function(t,e,n){if("yo"===e){var r=t.getFullYear(),i=r>0?r:1-r;return n.ordinalNumber(i,{unit:"year"})}return Kr(t,e)},Y:function(t,e,n,r){var i=Qr(t,r),o=i>0?i:1-i;return"YY"===e?Xr(o%100,2):"Yo"===e?n.ordinalNumber(o,{unit:"year"}):Xr(o,e.length)},R:function(t,e){return Xr(Cr(t),e.length)},u:function(t,e){return Xr(t.getFullYear(),e.length)},Q:function(t,e,n){var r=Math.ceil((t.getMonth()+1)/3);switch(e){case"Q":return String(r);case"QQ":return Xr(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(t,e,n){var r=Math.ceil((t.getMonth()+1)/3);switch(e){case"q":return String(r);case"qq":return Xr(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(t,e,n){var r=t.getMonth();switch(e){case"M":case"MM":return Vr(t,e);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(t,e,n){var r=t.getMonth();switch(e){case"L":return String(r+1);case"LL":return Xr(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(t,e,n,r){var i=Jr(t,r);return"wo"===e?n.ordinalNumber(i,{unit:"week"}):Xr(i,e.length)},I:function(t,e,n){var r=Gr(t);return"Io"===e?n.ordinalNumber(r,{unit:"week"}):Xr(r,e.length)},d:function(t,e,n){return"do"===e?n.ordinalNumber(t.getDate(),{unit:"date"}):Zr(t,e)},D:function(t,e,n){var r=Yr(t);return"Do"===e?n.ordinalNumber(r,{unit:"dayOfYear"}):Xr(r,e.length)},E:function(t,e,n){var r=t.getDay();switch(e){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(t,e,n,r){var i=t.getDay(),o=(i-r.weekStartsOn+8)%7||7;switch(e){case"e":return String(o);case"ee":return Xr(o,2);case"eo":return n.ordinalNumber(o,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(t,e,n,r){var i=t.getDay(),o=(i-r.weekStartsOn+8)%7||7;switch(e){case"c":return String(o);case"cc":return Xr(o,e.length);case"co":return n.ordinalNumber(o,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(t,e,n){var r=t.getDay(),i=0===r?7:r;switch(e){case"i":return String(i);case"ii":return Xr(i,e.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(t,e,n){var r=t.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},b:function(t,e,n){var r,i=t.getHours();switch(r=12===i?ai:0===i?oi:i/12>=1?"pm":"am",e){case"b":case"bb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},B:function(t,e,n){var r,i=t.getHours();switch(r=i>=17?ci:i>=12?si:i>=4?ui:li,e){case"B":case"BB":case"BBB":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},h:function(t,e,n){if("ho"===e){var r=t.getHours()%12;return 0===r&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return ti(t,e)},H:function(t,e,n){return"Ho"===e?n.ordinalNumber(t.getHours(),{unit:"hour"}):ei(t,e)},K:function(t,e,n){var r=t.getHours()%12;return"Ko"===e?n.ordinalNumber(r,{unit:"hour"}):Xr(r,e.length)},k:function(t,e,n){var r=t.getHours();return 0===r&&(r=24),"ko"===e?n.ordinalNumber(r,{unit:"hour"}):Xr(r,e.length)},m:function(t,e,n){return"mo"===e?n.ordinalNumber(t.getMinutes(),{unit:"minute"}):ni(t,e)},s:function(t,e,n){return"so"===e?n.ordinalNumber(t.getSeconds(),{unit:"second"}):ri(t,e)},S:function(t,e){return ii(t,e)},X:function(t,e,n){var r=t.getTimezoneOffset();if(0===r)return"Z";switch(e){case"X":return di(r);case"XXXX":case"XX":return vi(r);default:return vi(r,":")}},x:function(t,e,n){var r=t.getTimezoneOffset();switch(e){case"x":return di(r);case"xxxx":case"xx":return vi(r);default:return vi(r,":")}},O:function(t,e,n){var r=t.getTimezoneOffset();switch(e){case"O":case"OO":case"OOO":return"GMT"+fi(r,":");default:return"GMT"+vi(r,":")}},z:function(t,e,n){var r=t.getTimezoneOffset();switch(e){case"z":case"zz":case"zzz":return"GMT"+fi(r,":");default:return"GMT"+vi(r,":")}},t:function(t,e,n){return Xr(Math.trunc(+t/1e3),e.length)},T:function(t,e,n){return Xr(+t,e.length)}};function fi(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=t>0?"-":"+",r=Math.abs(t),i=Math.trunc(r/60),o=r%60;return 0===o?n+String(i):n+String(i)+e+Xr(o,2)}function di(t,e){return t%60==0?(t>0?"-":"+")+Xr(Math.abs(t)/60,2):vi(t,e)}function vi(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=t>0?"-":"+",r=Math.abs(t);return n+Xr(Math.trunc(r/60),2)+e+Xr(r%60,2)}var pi=function(t,e){switch(t){case"P":return e.date({width:"short"});case"PP":return e.date({width:"medium"});case"PPP":return e.date({width:"long"});default:return e.date({width:"full"})}},yi=function(t,e){switch(t){case"p":return e.time({width:"short"});case"pp":return e.time({width:"medium"});case"ppp":return e.time({width:"long"});default:return e.time({width:"full"})}},gi={p:yi,P:function(t,e){var n,r=t.match(/(P+)(p+)?/)||[],i=r[1],o=r[2];if(!o)return pi(t,e);switch(i){case"P":n=e.dateTime({width:"short"});break;case"PP":n=e.dateTime({width:"medium"});break;case"PPP":n=e.dateTime({width:"long"});break;default:n=e.dateTime({width:"full"})}return n.replace("{{date}}",pi(i,e)).replace("{{time}}",yi(o,e))}},mi=/^D+$/,wi=/^Y+$/,bi=["D","DD","YY","YYYY"];function ki(t){return mi.test(t)}function xi(t){return wi.test(t)}function Ai(t,e,n){var r=function(t,e,n){var r="Y"===t[0]?"years":"days of the month";return"Use `".concat(t.toLowerCase(),"` instead of `").concat(t,"` (in `").concat(e,"`) for formatting ").concat(r," to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md")}(t,e,n);if(console.warn(r),bi.includes(t))throw new RangeError(r)}var Ei=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Oi=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Si=/^'([^]*?)'?$/,Ti=/''/g,Ri=/[a-zA-Z]/;function ji(t,e,n){var r,i,o,a,u,s,c,l,h,f=Pr(),d=null!==(r=f.locale)&&void 0!==r?r:Wr,v=null!==(i=null!==(o=null!==(a=void 0)&&void 0!==a?a:f.firstWeekContainsDate)&&void 0!==o?o:null===(u=f.locale)||void 0===u||null===(u=u.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==i?i:1,p=null!==(s=null!==(c=null!==(l=void 0)&&void 0!==l?l:f.weekStartsOn)&&void 0!==c?c:null===(h=f.locale)||void 0===h||null===(h=h.options)||void 0===h?void 0:h.weekStartsOn)&&void 0!==s?s:0,y=Tr(t,void 0);if(!Mr(y))throw new RangeError("Invalid time value");var g=e.match(Oi).map((function(t){var e=t[0];return"p"===e||"P"===e?(0,gi[e])(t,d.formatLong):t})).join("").match(Ei).map((function(t){if("''"===t)return{isToken:!1,value:"'"};var e=t[0];if("'"===e)return{isToken:!1,value:Pi(t)};if(hi[e])return{isToken:!0,value:t};if(e.match(Ri))throw new RangeError("Format string contains an unescaped latin alphabet character `"+e+"`");return{isToken:!1,value:t}}));d.localize.preprocessor&&(g=d.localize.preprocessor(y,g));var m={firstWeekContainsDate:v,weekStartsOn:p,locale:d};return g.map((function(n){if(!n.isToken)return n.value;var r=n.value;return(xi(r)||ki(r))&&Ai(r,e,String(t)),(0,hi[r[0]])(y,r,d.localize,m)})).join("")}function Pi(t){var e=t.match(Si);return e?e[1].replace(Ti,"'"):t}var Di=function(){return a((function t(){i(this,t),s(this,"subPriority",0)}),[{key:"validate",value:function(t,e){return!0}}])}(),Li=function(){function t(e,n,o,a,u){var s;return i(this,t),(s=r(this,t)).value=e,s.validateValue=n,s.setValue=o,s.priority=a,u&&(s.subPriority=u),s}return l(t,Di),a(t,[{key:"validate",value:function(t,e){return this.validateValue(t,this.value,e)}},{key:"set",value:function(t,e,n){return this.setValue(t,e,this.value,n)}}])}(),Ci=function(){function t(e,n){var o;return i(this,t),s(o=r(this,t),"priority",10),s(o,"subPriority",-1),o.context=e||function(t){return Sr(n,t)},o}return l(t,Di),a(t,[{key:"set",value:function(t,e){return e.timestampIsSet?t:Sr(t,function(t,e){var n=function(t){var e;return"function"==typeof t&&(null===(e=t.prototype)||void 0===e?void 0:e.constructor)===t}(e)?new e(0):Sr(e,0);return n.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),n.setHours(t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()),n}(t,this.context))}}])}(),_i=function(){return a((function t(){i(this,t)}),[{key:"run",value:function(t,e,n,r){var i=this.parse(t,e,n,r);return i?{setter:new Li(i.value,this.validate,this.set,this.priority,this.subPriority),rest:i.rest}:null}},{key:"validate",value:function(t,e,n){return!0}}])}(),Ni=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a0,i=r?e:1-e;if(i<=50)n=t||100;else{var o=i+50;n=t+100*Math.trunc(o/100)-(t>=o%100?100:0)}return r?n:1-n}function po(t){return t%400==0||t%4==0&&t%100!=0}var yo=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a0}},{key:"set",value:function(t,e,n){var r=t.getFullYear();if(n.isTwoDigitYear){var i=vo(n.year,r);return t.setFullYear(i,0,1),t.setHours(0,0,0,0),t}var o="era"in e&&1!==e.era?1-n.year:n.year;return t.setFullYear(o,0,1),t.setHours(0,0,0,0),t}}])}(),go=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a0}},{key:"set",value:function(t,e,n,r){var i=Qr(t,r);if(n.isTwoDigitYear){var o=vo(n.year,i);return t.setFullYear(o,0,r.firstWeekContainsDate),t.setHours(0,0,0,0),Dr(t,r)}var a="era"in e&&1!==e.era?1-n.year:n.year;return t.setFullYear(a,0,r.firstWeekContainsDate),t.setHours(0,0,0,0),Dr(t,r)}}])}(),mo=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=1&&e<=4}},{key:"set",value:function(t,e,n){return t.setMonth(3*(n-1),1),t.setHours(0,0,0,0),t}}])}(),ko=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=1&&e<=4}},{key:"set",value:function(t,e,n){return t.setMonth(3*(n-1),1),t.setHours(0,0,0,0),t}}])}(),xo=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=0&&e<=11}},{key:"set",value:function(t,e,n){return t.setMonth(n,1),t.setHours(0,0,0,0),t}}])}(),Ao=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=0&&e<=11}},{key:"set",value:function(t,e,n){return t.setMonth(n,1),t.setHours(0,0,0,0),t}}])}();var Eo=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=1&&e<=53}},{key:"set",value:function(t,e,n,r){return Dr(function(t,e,n){var r=Tr(t,null==n?void 0:n.in),i=Jr(r,n)-e;return r.setDate(r.getDate()-7*i),Tr(r,null==n?void 0:n.in)}(t,n,r),r)}}])}();var Oo=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=1&&e<=53}},{key:"set",value:function(t,e,n){return Lr(function(t,e){var n=Tr(t,void 0),r=Gr(n)-e;return n.setDate(n.getDate()-7*r),n}(t,n))}}])}(),So=[31,28,31,30,31,30,31,31,30,31,30,31],To=[31,29,31,30,31,30,31,31,30,31,30,31],Ro=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=1&&e<=To[r]:e>=1&&e<=So[r]}},{key:"set",value:function(t,e,n){return t.setDate(n),t.setHours(0,0,0,0),t}}])}(),jo=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=1&&e<=366:e>=1&&e<=365}},{key:"set",value:function(t,e,n){return t.setMonth(0,n),t.setHours(0,0,0,0),t}}])}();function Po(t,e,n){var r,i,o,a,u,s,c=Pr(),l=null!==(r=null!==(i=null!==(o=null!==(a=null==n?void 0:n.weekStartsOn)&&void 0!==a?a:null==n||null===(u=n.locale)||void 0===u||null===(u=u.options)||void 0===u?void 0:u.weekStartsOn)&&void 0!==o?o:c.weekStartsOn)&&void 0!==i?i:null===(s=c.locale)||void 0===s||null===(s=s.options)||void 0===s?void 0:s.weekStartsOn)&&void 0!==r?r:0,h=Tr(t,null==n?void 0:n.in),f=h.getDay(),d=7-l;return Rr(h,e<0||e>6?e-(f+d)%7:((e%7+7)%7+d)%7-(f+d)%7,n)}var Do=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=0&&e<=6}},{key:"set",value:function(t,e,n,r){return(t=Po(t,n,r)).setHours(0,0,0,0),t}}])}(),Lo=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=0&&e<=6}},{key:"set",value:function(t,e,n,r){return(t=Po(t,n,r)).setHours(0,0,0,0),t}}])}(),Co=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=0&&e<=6}},{key:"set",value:function(t,e,n,r){return(t=Po(t,n,r)).setHours(0,0,0,0),t}}])}();function _o(t,e,n){var r=Tr(t,void 0),i=function(t){var e=Tr(t,void 0).getDay();return 0===e?7:e}(r);return Rr(r,e-i,n)}var No=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=1&&e<=7}},{key:"set",value:function(t,e,n){return(t=_o(t,n)).setHours(0,0,0,0),t}}])}(),Fo=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=1&&e<=12}},{key:"set",value:function(t,e,n){var r=t.getHours()>=12;return r&&n<12?t.setHours(n+12,0,0,0):r||12!==n?t.setHours(n,0,0,0):t.setHours(0,0,0,0),t}}])}(),Io=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=0&&e<=23}},{key:"set",value:function(t,e,n){return t.setHours(n,0,0,0),t}}])}(),zo=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=0&&e<=11}},{key:"set",value:function(t,e,n){return t.getHours()>=12&&n<12?t.setHours(n+12,0,0,0):t.setHours(n,0,0,0),t}}])}(),Bo=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=1&&e<=24}},{key:"set",value:function(t,e,n){var r=n<=24?n%24:n;return t.setHours(r,0,0,0),t}}])}(),$o=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=0&&e<=59}},{key:"set",value:function(t,e,n){return t.setMinutes(n,0,0),t}}])}(),Uo=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=0&&e<=59}},{key:"set",value:function(t,e,n){return t.setSeconds(n,0),t}}])}(),Wo=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a0)throw new RangeError("The format string mustn't contain `".concat(n,"` and any other token at the same time"));A.push({token:i,fullToken:n});var s=o.run(t,n,y.match,b);if(!s)return{v:v()};k.push(s.setter),t=s.rest}else{if(i.match(na))throw new RangeError("Format string contains an unescaped latin alphabet character `"+i+"`");if("''"===n?n="'":"'"===i&&(n=n.match(Zo)[1].replace(ta,"'")),0!==t.indexOf(n))return{v:v()};t=t.slice(n.length)}};for(E.s();!(w=E.n()).done;)if(O=S())return O.v}catch(t){E.e(t)}finally{E.f()}if(t.length>0&&ea.test(t))return v();var T=k.map((function(t){return t.priority})).sort((function(t,e){return e-t})).filter((function(t,e,n){return n.indexOf(t)===e})).map((function(t){return k.filter((function(e){return e.priority===t})).sort((function(t,e){return e.subPriority-t.subPriority}))})).map((function(t){return t[0]})),R=Tr(n,void 0);if(isNaN(+R))return v();var j,P={},D=u(T);try{for(D.s();!(j=D.n()).done;){var L=j.value;if(!L.validate(R,b))return v();var C=L.set(R,P,b);Array.isArray(C)?(R=C[0],Object.assign(P,C[1])):R=C}}catch(t){D.e(t)}finally{D.f()}return R}var ia=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,t),r(this,t,[e,n,"store-hour",o])}return l(t,kr),a(t,[{key:"day",get:function(){return this.getAttribute("day")}},{key:"isClosed",get:function(){return null===this.getAttribute("start")&&null===this.getAttribute("end")}},{key:"is24Hours",get:function(){var t=this.startDateInstance,e=this.endDateInstance,n=Math.abs(t-e);return Math.floor(n/1e3/60)/60>23}},{key:"startDateInstance",get:function(){if(!this.hasAttribute("start"))return null;var t=this.getAttribute("start"),e=3===t.split(":").length;return ra(t,e?"HH:mm:ss":"HH:mm",new Date)}},{key:"endDateInstance",get:function(){if(!this.hasAttribute("end"))return null;var t=this.getAttribute("end"),e=3===t.split(":").length;return ra(t,e?"HH:mm:ss":"HH:mm",new Date)}},{key:"humanReadableHoursRange",get:function(){return Mr(this.startDateInstance)&&Mr(this.endDateInstance)?"".concat(ji(this.startDateInstance,"p")," - ").concat(ji(this.endDateInstance,"p")):"".concat(this.start," - ").concat(this.end)}},{key:"humanReadableHours",get:function(){return this.isClosed?"Closed":this.is24Hours?"24 Hours":this.humanReadableHoursRange}},{key:"create",value:function(){throw new Error("There is no create() method store location!")}},{key:"update",value:function(){throw new Error("There is no update() method store location!")}},{key:"destroy",value:function(){throw new Error("There is no destroy() method store location!")}},{key:"reload",value:function(){throw new Error("There is no reload() method store location!")}}])}();ot("resource","StoreHour",ia);var oa=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,t),r(this,t,[e,n,"store-location",o])}return l(t,kr),a(t,[{key:"latitude",get:function(){return this.getAttribute("place.location.coordinates.1")}},{key:"longitude",get:function(){return this.getAttribute("place.location.coordinates.0")}},{key:"hours",get:function(){var t=this;return new bt((this.getAttribute("hours")||[]).map((function(e){return new ia(e,t.adapter)})))}},{key:"storeData",get:function(){var t=this.getAttribute("store_data"),e=this.getAttribute("store");return t||(e&&"object"===m(e)?e:null)}},{key:"storeId",get:function(){var t,e,n=this.getAttribute("store");return"string"==typeof n?n:(null===(t=this.storeData)||void 0===t?void 0:t.id)||(null===(e=this.storeData)||void 0===e?void 0:e.public_id)}},{key:"merchant",get:function(){return this.storeData?ut("resource","Store",this.storeData,this.adapter):null}},{key:"isAlwaysOpen",get:function(){return this.hours.every((function(t){return null==t?void 0:t.is24Hours}))}},{key:"today",get:function(){var t=ji(new Date,"EEEE");return this.schedule[t]}},{key:"schedule",get:function(){for(var t={},e=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],n=0;n0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,t),r(this,t,[e,n,"payment-gateway",o])}return l(t,kr),a(t,[{key:"type",get:function(){return this.getAttribute("type")}},{key:"code",get:function(){return this.getAttribute("code")}},{key:"isCashGateway",get:function(){return"cash"===this.type}},{key:"isStripeGateway",get:function(){return"stripe"===this.type}},{key:"setCheckoutToken",value:function(t){this.token=t}},{key:"getCheckoutToken",value:function(){return this.token}},{key:"findRecord",value:function(){throw new Error("There is no findRecord() method for payment gateways!")}},{key:"create",value:function(){throw new Error("There is no create() method for payment gateways!")}},{key:"update",value:function(){throw new Error("There is no update() method for payment gateways!")}},{key:"destroy",value:function(){throw new Error("There is no destroy() method for payment gateways!")}},{key:"reload",value:function(){throw new Error("There is no reload() method for payment gateways!")}}])}();ot("resource","PaymentGateway",aa);var ua=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,t),r(this,t,[e,n,"store",o])}return l(t,kr),a(t,[{key:"getReviews",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("reviews",d({store:this.id},e)).then((function(e){return new bt(e.map((function(e){return new Ar(e,t.adapter)})))}))}},{key:"getLocations",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("locations",d({store:this.id},e)).then((function(e){return new bt(e.map((function(e){return e.place&&(e.place=new Mt(e.place)),new oa(e,t.adapter)})))}))}},{key:"getLocation",value:function(t){var e=this;return this.adapter.get("locations/".concat(t),{store:this.id}).then((function(t){return new oa(t,e.adapter)}))}},{key:"getPaymentGateways",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("gateways",e).then((function(e){return new bt(e.map((function(e){return new aa(e,t.adapter)})))}))}},{key:"getPaymentGateway",value:function(t){var e=this;return this.adapter.get("gateways/".concat(t)).then((function(t){return new aa(t,e.adapter)}))}}])}();ot("resource","Store",ua);var sa=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,t),r(this,t,[e,n,"product",o])}return l(t,kr),a(t,[{key:"variants",value:function(){return this.getAttribute("variants")}},{key:"addons",value:function(){return this.getAttribute("addon_categories")}},{key:"isOnSale",get:function(){return this.getAttribute("is_on_sale")}},{key:"isNotOnSale",get:function(){return!this.getAttribute("is_on_sale")}},{key:"formattedAmount",get:function(){var t=this.getAttributes(["price","sale_price","currency"]),e=t.price,n=t.sale_price,r=t.currency;return this.isOnSale?wr(n)||wr(r)?null:mr(n/100,r):wr(e)||wr(r)?null:mr(e/100,r)}},{key:"merchant",get:function(){var t=this.getAttribute("store");return t&&"object"===m(t)?new ua(t,this.adapter):null}},{key:"getReviews",value:function(){var t=this;return this.adapter.get("reviews",{store:this.id}).then((function(e){return new bt(e.map((function(e){return new Ar(e,t.adapter)})))}))}}])}();ot("resource","Product",sa);var ca=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,t),r(this,t,[e,n,"category",o])}return l(t,kr),a(t,[{key:"getProducts",value:function(){var t=this;return this.adapter.get("products",{category:this.id}).then((function(e){return new bt(e.map((function(e){return new sa(e,t.adapter)})))}))}}])}();ot("resource","Category",ca);var la=new jt({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(function(){return/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"")}(t))return this.adapter.post("customers/login-with-sms",{phone:t});if(!e)throw new Error("Login requires password!");return this.adapter.post("customers/login",d({identity:t,password:e},n)).then(this.afterFetch.bind(this))},loginWithApple:function(t,e,n,r,i){var o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return this.adapter.post("customers/login-with-apple",d({appleUserId:t,identityToken:e,authorizationCode:n,email:r,name:i},o)).then(this.afterFetch.bind(this))},loginWithFacebook:function(t,e,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return this.adapter.post("customers/login-with-facebook",d({facebookUserId:t,email:e,name:n,avatarUrl:r},i)).then(this.afterFetch.bind(this))},loginWithGoogle:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("customers/login-with-google",d({idToken:t,clientId:e},n)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("customers/verify-code",d({identity:t,code:e},n)).then(this.afterFetch.bind(this))},requestCreationCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"email";return this.adapter.post("customers/request-creation-code",{identity:t,mode:e})},create:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("customers",d({identity:t,code:e},n)).then(this.afterFetch.bind(this))},retrieve:function(t){return this.findRecord(t)}}),ha=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,t),r(this,t,[e,n,"customer",d({actions:la},o)])}return l(t,kr),a(t,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new gr(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"token",get:function(){return this.getAttribute("token")}},{key:"syncDevice",value:(s=n(v().mark((function t(e,n){var r,i;return v().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,r={"Customer-Token":this.token},t.next=4,this.adapter.setHeaders(r).post("customers/register-device",{token:e,platform:n});case 4:return i=t.sent,t.abrupt("return",i);case 8:throw t.prev=8,t.t0=t.catch(0),console.error("Error making request to register customer device token:",t.t0),t.t0;case 12:case"end":return t.stop()}}),t,this,[[0,8]])}))),function(t,e){return s.apply(this,arguments)})},{key:"performAuthorizedRequest",value:(u=n(v().mark((function t(e){var n,r,i,o,a=arguments;return v().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=a.length>1&&void 0!==a[1]?a[1]:{},r=a.length>2&&void 0!==a[2]?a[2]:"GET",t.prev=2,i={"Customer-Token":this.token},t.next=6,this.adapter.setHeaders(i)[r.toLowerCase()](e,n);case 6:return o=t.sent,t.abrupt("return",o);case 10:throw t.prev=10,t.t0=t.catch(2),console.error("Error in ".concat(r," request to ").concat(e,":"),t.t0),t.t0;case 14:case"end":return t.stop()}}),t,this,[[2,10]])}))),function(t){return u.apply(this,arguments)})},{key:"getSavedPlaces",value:(o=n(v().mark((function t(){var e,n=this;return v().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,this.performAuthorizedRequest("customers/places");case 3:return e=t.sent,t.abrupt("return",new bt(e.map((function(t){return new Mt(t,n.adapter)}))));case 7:throw t.prev=7,t.t0=t.catch(0),console.error("Failed to retrieve saved places"),t.t0;case 11:case"end":return t.stop()}}),t,this,[[0,7]])}))),function(){return o.apply(this,arguments)})},{key:"getOrderHistory",value:(e=n(v().mark((function t(){var e,n,r=this,i=arguments;return v().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},t.prev=1,t.next=4,this.performAuthorizedRequest("customers/orders",e);case 4:return n=t.sent,t.abrupt("return",new bt(n.map((function(t){return new _t(t,r.adapter)}))));case 8:throw t.prev=8,t.t0=t.catch(1),console.error("Failed to retrieve order history"),t.t0;case 12:case"end":return t.stop()}}),t,this,[[1,8]])}))),function(){return e.apply(this,arguments)})},{key:"getStripeEphemeralKey",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.setHeaders({"Customer-Token":this.token}).post("customers/stripe-ephemeral-key",t)}},{key:"getStripeSetupIntent",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.setHeaders({"Customer-Token":this.token}).post("customers/stripe-setup-intent",t)}}]);var e,o,u,s}();ot("resource","Customer",ha);var fa=Array.isArray,da=new jt({create:void 0,findAll:void 0,query:void 0,queryRecord:void 0,add:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/").concat(e),d(d({},r),{},{quantity:n}),i).then(this.afterFetch.bind(this))},update:function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return this.adapter.put("".concat(this.namespace,"/").concat(t,"/").concat(e),d(d({},r),{},{quantity:n}),i).then(this.afterFetch.bind(this))},remove:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete("".concat(this.namespace,"/").concat(t,"/").concat(e),{},n).then(this.afterFetch.bind(this))},empty:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.put("".concat(this.namespace,"/").concat(t,"/empty"),{},e).then(this.afterFetch.bind(this))},retrieve:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return this.findRecord(t)}}),va=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,t),r(this,t,[e,n,"cart",d({actions:da},o)])}return l(t,kr),a(t,[{key:"add",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return t instanceof sa&&(t=t.id),this.store.add(this.id,t,e,n,r)}},{key:"update",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.store.update(this.id,t,e,n,r)}},{key:"remove",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.remove(this.id,t,e)}},{key:"empty",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.store.empty(this.id,t)}},{key:"delete",value:function(){return this.destroy()}},{key:"refresh",value:function(){return this.store.retrieve(this.id)}},{key:"subtotal",value:function(){var t=0;return this.contents().forEach((function(e){t+=e.subtotal})),t}},{key:"contents",value:function(){return this.getAttribute("items",[])}},{key:"hasProduct",value:function(t){return-1!==this.contents().findIndex((function(e){return e.product_id===t}))}},{key:"isEmpty",get:function(){var t=this.contents();return!fa(t)||0===t.length}},{key:"isNotEmpty",get:function(){return!this.isEmpty}}])}();ot("resource","Cart",va);var pa=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,t),r(this,t,[e,n,"network",o])}return l(t,kr),a(t,[{key:"getTags",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("tags",t)}},{key:"getResourceCollection",value:(p=n(v().mark((function t(e,n){var r,i,o=this,a=arguments;return v().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=a.length>2&&void 0!==a[2]?a[2]:{},t.next=3,this.adapter.get(e,r);case 3:return i=t.sent,t.abrupt("return",new bt(i.map((function(t){return new n(t,o.adapter)}))));case 5:case"end":return t.stop()}}),t,this)}))),function(t,e){return p.apply(this,arguments)})},{key:"getStores",value:(f=n(v().mark((function t(){var e,n=arguments;return v().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=n.length>0&&void 0!==n[0]?n[0]:{},t.abrupt("return",this.getResourceCollection("stores",ua,e));case 2:case"end":return t.stop()}}),t,this)}))),function(){return f.apply(this,arguments)})},{key:"getStoreLocations",value:(h=n(v().mark((function t(){var e,n=arguments;return v().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=n.length>0&&void 0!==n[0]?n[0]:{},t.abrupt("return",this.getResourceCollection("store-locations",oa,e));case 2:case"end":return t.stop()}}),t,this)}))),function(){return h.apply(this,arguments)})},{key:"getCategories",value:(c=n(v().mark((function t(){var e,n=arguments;return v().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=n.length>0&&void 0!==n[0]?n[0]:{},t.abrupt("return",this.getResourceCollection("categories",ca,e));case 2:case"end":return t.stop()}}),t,this)}))),function(){return c.apply(this,arguments)})},{key:"search",value:(s=n(v().mark((function t(e){var n,r=arguments;return v().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=r.length>1&&void 0!==r[1]?r[1]:{},t.abrupt("return",this.getResourceCollection("search",sa,d({query:e,with_store:!0},n)));case 2:case"end":return t.stop()}}),t,this)}))),function(t){return s.apply(this,arguments)})},{key:"lookupStore",value:(u=n(v().mark((function t(e){var n;return v().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.adapter.get("lookup/".concat(e));case 2:return n=t.sent,t.abrupt("return",new ua(n,this.adapter));case 4:case"end":return t.stop()}}),t,this)}))),function(t){return u.apply(this,arguments)})},{key:"getReviews",value:(o=n(v().mark((function t(e){var n,r=arguments;return v().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=r.length>1&&void 0!==r[1]?r[1]:{},t.abrupt("return",this.getResourceCollection("reviews",Ar,d({store:e},n)));case 2:case"end":return t.stop()}}),t,this)}))),function(t){return o.apply(this,arguments)})},{key:"getPaymentGateways",value:(e=n(v().mark((function t(){var e,n=arguments;return v().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=n.length>0&&void 0!==n[0]?n[0]:{},t.abrupt("return",this.getResourceCollection("gateways",aa,e));case 2:case"end":return t.stop()}}),t,this)}))),function(){return e.apply(this,arguments)})}]);var e,o,u,s,c,h,f,p}();ot("resource","Network",pa);var ya=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};i(this,t);var a=e,u=n;return e instanceof Zt&&(a={},u=e),r(this,t,[a,u,"service-quote",o])}return l(t,Kt),a(t,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new gr(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"formattedAmount",get:function(){var t=this.getAttributes(["amount","currency"]),e=t.amount,n=t.currency;return wr(e)||wr(n)?null:mr(e/100,n)}},{key:"fromCart",value:(u=n(v().mark((function t(){var e=arguments;return v().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this.fetchServiceQuotesFromCart.apply(this,e));case 1:case"end":return t.stop()}}),t,this)}))),function(){return u.apply(this,arguments)})},{key:"fetchServiceQuotesFromCart",value:(o=n(v().mark((function e(n,r,i){var o,a,u,s,c,l,h=this,f=arguments;return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=f.length>3&&void 0!==f[3]?f[3]:"storefront",c=f.length>4&&void 0!==f[4]&&f[4],null!==(o=n)&&void 0!==o&&o.id&&(n=n.id),null!==(a=r)&&void 0!==a&&a.id&&(r=r.id),null!==(u=i)&&void 0!==u&&u.id&&(i=i.id),e.prev=5,e.next=8,this.adapter.get("service-quotes/from-cart",{origin:n,destination:r,cart:i,config:s,all:c});case 8:if(l=e.sent,!br(l)){e.next=11;break}return e.abrupt("return",new bt(l.map((function(e){return new t(e,h.adapter)}))));case 11:return e.abrupt("return",new t(l,this.adapter));case 14:throw e.prev=14,e.t0=e.catch(5),console.error("Error fetching service quotes:",e.t0),e.t0;case 18:case"end":return e.stop()}}),e,this,[[5,14]])}))),function(t,e,n){return o.apply(this,arguments)})}],[{key:"getFromCart",value:(e=n(v().mark((function e(n,r,i,o){var a,u,s,c=arguments;return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=c.length>4&&void 0!==c[4]?c[4]:"storefront",u=c.length>5&&void 0!==c[5]&&c[5],s=new t(n),e.abrupt("return",s.fetchServiceQuotesFromCart(r,i,o,a,u));case 4:case"end":return e.stop()}}),e)}))),function(t,n,r,i){return e.apply(this,arguments)})}]);var e,o,u}();ot("resource","DeliveryServiceQuote",ya);var ga=new jt({create:void 0,findAll:void 0,query:void 0,queryRecord:void 0,initialize:function(t,e,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return Pt(t)&&(t=t.id),Pt(e)&&(e=e.id),Pt(n)&&(n=n.id),Pt(r)&&(r=r.getAttribute("code")),this.adapter.get("".concat(this.namespace,"/before"),d(d({},i),{},{customer:t,cart:e,serviceQuote:n,gateway:r}),o)},captureOrder:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/capture"),d({token:t},e),n).then((function(t){return new _t(t)}))},createStripeSetupIntent:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return Pt(t)&&(t=t.id),this.adapter.post("".concat(this.namespace,"/stripe-setup-intent"),d({customer:t},e),n)},updateStripePaymentIntent:function(t,e,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return Pt(e)&&(e=e.id),Pt(n)&&(n=n.id),Pt(r)&&(r=r.id),this.adapter.put("".concat(this.namespace,"/stripe-update-payment-intent"),d({paymentIntent:t,customer:e,cart:n,serviceQuote:r},i),o)}}),ma=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,t),r(this,t,[e,n,"checkout",d({actions:ga},o)])}return l(t,kr),a(t,[{key:"initialize",value:function(){var t;return(t=this.store).initialize.apply(t,arguments)}},{key:"captureOrder",value:function(){var t;return(t=this.store).captureOrder.apply(t,arguments)}}])}();ot("resource","Checkout",ma);var wa=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,t),r(this,t,[e,n,"food-truck",o])}return l(t,kr),a(t)}();ot("resource","FoodTruck",wa);var ba=function(){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(i(this,t),this.version=r.version||"v1",this.options={version:this.version,host:r.host||"https://api.fleetbase.io",namespace:r.namespace||"storefront/".concat(this.version),publicKey:e,debug:o},!("string"==typeof(n=e)&&n.length>30&&(n.startsWith("store_")||n.startsWith("network_"))))throw new Error("⚠️ Invalid Storefront key given to Storefront SDK");this.adapter=r.adapter||At(this.options),this.initializeStores()}return a(t,[{key:"initializeStores",value:function(){return this.products=new gr("product",this.adapter),this.categories=new gr("category",this.adapter),this.foodTrucks=new gr("food-truck",this.adapter),this.reviews=new gr("review",this.adapter).extendActions(xr),this.customers=new gr("customer",this.adapter).extendActions(la),this.cart=new gr("cart",this.adapter).extendActions(da),this.checkout=new gr("checkout",this.adapter).extendActions(ga),this}},{key:"about",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("about").then((function(n){return e.resource?t.hydrateOwner(n):n}))}},{key:"getOwner",value:function(){return this.about({resource:!0})}},{key:"lookup",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.get("lookup/".concat(t)).then((function(t){return n.resource?e.hydrateOwner(t):t}))}},{key:"lookupResource",value:function(t){return this.lookup(t,{resource:!0})}},{key:"search",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.get("search",d({query:t},n)).then((function(t){return new bt(t.map((function(t){return new sa(t,e.adapter)})))}))}},{key:"hydrateOwner",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return!0===(null==t?void 0:t.is_network)?new pa(t,this.adapter):new ua(t,this.adapter)}},{key:"setAdapter",value:function(t){return this.adapter=t,this.initializeStores()}},{key:"getAdapter",value:function(){return this.adapter}}],[{key:"newInstance",value:function(){return function(t,e,n){if(h())return Reflect.construct.apply(null,arguments);var r=[null];return r.push.apply(r,e),new(t.bind.apply(t,r))}(t,Array.prototype.slice.call(arguments))}}])}();exports.Cart=va,exports.Category=ca,exports.Checkout=ma,exports.Customer=ha,exports.DeliveryServiceQuote=ya,exports.FoodTruck=wa,exports.Network=pa,exports.PaymentGateway=aa,exports.Product=sa,exports.Review=Ar,exports.Store=ua,exports.StoreHour=ia,exports.StoreLocation=oa,exports.default=ba,exports.lookup=ut; -//# sourceMappingURL=storefront.js.map diff --git a/dist/cjs/storefront.js.map b/dist/cjs/storefront.js.map deleted file mode 100644 index 33f95d3..0000000 --- a/dist/cjs/storefront.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"storefront.js","sources":["../../node_modules/.pnpm/@fleetbase+sdk@1.2.13/node_modules/@fleetbase/sdk/dist/esm/fleetbase.js","../../src/store.js","../../src/utils/format-currency.js","../../src/utils/is-empty.js","../../src/utils/array.js","../../src/resource.js","../../src/resources/review.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constants.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constructFrom.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/toDate.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addDays.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/defaultOptions.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfWeek.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfISOWeek.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISOWeekYear.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfDay.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInCalendarDays.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/normalizeDates.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isValid.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isDate.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatDistance.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildFormatLongFn.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatLong.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatRelative.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildLocalizeFn.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchFn.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/match.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/localize.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDayOfYear.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfYear.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISOWeek.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfISOWeekYear.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getWeekYear.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getWeek.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfWeekYear.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/addLeadingZeros.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/lightFormatters.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/formatters.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/longFormatters.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/protectedTokens.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/format.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/Setter.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/transpose.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/Parser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/EraParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/constants.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/utils.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/YearParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/QuarterParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/MonthParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setWeek.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setISOWeek.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DateParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setDay.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DayParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setISODay.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISODay.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISODayParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/AMPMParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/MinuteParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/SecondParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDefaultOptions.js","../../src/resources/store-hour.js","../../src/resources/store-location.js","../../src/resources/payment-gateway.js","../../src/resources/store.js","../../src/resources/product.js","../../src/resources/category.js","../../src/resources/customer.js","../../src/utils/is-phone.js","../../src/resources/cart.js","../../src/resources/network.js","../../src/resources/delivery-service-quote.js","../../src/resources/checkout.js","../../src/resources/food-truck.js","../../src/storefront.js","../../src/utils/is-key-valid.js"],"sourcesContent":["function t(t,e){this.v=t,this.k=e}function e(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,a=!0,s=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function g(t,e,n){return(e=j(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function y(t){return y=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},y(t)}function b(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,\"prototype\",{writable:!1}),e&&O(t,e)}function m(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(m=function(){return!!t})()}function w(t){if(\"undefined\"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t[\"@@iterator\"])return Array.from(t)}function k(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}function E(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function A(t){for(var e=1;e=0;--o){var a=this.tryEntries[o],s=a.completion;if(\"root\"===a.tryLoc)return i(\"end\");if(a.tryLoc<=this.prev){var u=r.call(a,\"catchLoc\"),c=r.call(a,\"finallyLoc\");if(u&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,\"finallyLoc\")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),_(n),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var i=r.arg;_(n)}return i}}throw Error(\"illegal catch attempt\")},delegateYield:function(e,n,r){return this.delegate={iterator:L(e),resultName:n,nextLoc:r},\"next\"===this.method&&(this.arg=t),g}},e}function O(t,e){return O=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},O(t,e)}function R(t,e){return n(t)||function(t,e){var n=null==t?null:\"undefined\"!=typeof Symbol&&t[Symbol.iterator]||t[\"@@iterator\"];if(null!=n){var r,i,o,a,s=[],u=!0,c=!1;try{if(o=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=o.call(n)).done)&&(s.push(r.value),s.length!==e);u=!0);}catch(t){c=!0,i=t}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw i}}return s}}(t,e)||_(t,e)||k()}function S(t){return function(t){if(Array.isArray(t))return e(t)}(t)||w(t)||_(t)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function j(t){var e=function(t,e){if(\"object\"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||\"default\");if(\"object\"!=typeof r)return r;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===e?String:Number)(t)}(t,\"string\");return\"symbol\"==typeof e?e:e+\"\"}function T(t){return T=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},T(t)}function _(t,n){if(t){if(\"string\"==typeof t)return e(t,n);var r={}.toString.call(t).slice(8,-1);return\"Object\"===r&&t.constructor&&(r=t.constructor.name),\"Map\"===r||\"Set\"===r?Array.from(t):\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?e(t,n):void 0}}function P(t){return function(){return new L(t.apply(this,arguments))}}function L(e){var n,r;function i(n,r){try{var a=e[n](r),s=a.value,u=s instanceof t;Promise.resolve(u?s.v:s).then((function(t){if(u){var r=\"return\"===n?\"return\":\"next\";if(!s.k||t.done)return i(r,t);t=e[r](t).value}o(a.done?\"return\":\"normal\",t)}),(function(t){i(\"throw\",t)}))}catch(t){o(\"throw\",t)}}function o(t,e){switch(t){case\"return\":n.resolve({value:e,done:!0});break;case\"throw\":n.reject(e);break;default:n.resolve({value:e,done:!1})}(n=n.next)?i(n.key,n.arg):r=null}this._invoke=function(t,e){return new Promise((function(o,a){var s={key:t,arg:e,resolve:o,reject:a,next:null};r?r=r.next=s:(n=r=s,i(t,e))}))},\"function\"!=typeof e.return&&(this.return=void 0)}function C(t){var e=\"function\"==typeof Map?new Map:void 0;return C=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf(\"[native code]\")}catch(e){return\"function\"==typeof t}}(t))return t;if(\"function\"!=typeof t)throw new TypeError(\"Super expression must either be null or a function\");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return f(t,arguments,y(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),O(n,t)},C(t)}L.prototype[\"function\"==typeof Symbol&&Symbol.asyncIterator||\"@@asyncIterator\"]=function(){return this},L.prototype.next=function(t){return this._invoke(\"next\",t)},L.prototype.throw=function(t){return this._invoke(\"throw\",t)},L.prototype.return=function(t){return this._invoke(\"return\",t)};var N=function(){function t(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];h(this,t),g(this,\"uncountableWords\",[\"equipment\",\"information\",\"rice\",\"money\",\"species\",\"series\",\"fish\",\"sheep\",\"moose\",\"deer\",\"news\"]),g(this,\"pluralRules\",[[new RegExp(\"(m)an$\",\"gi\"),\"$1en\"],[new RegExp(\"(pe)rson$\",\"gi\"),\"$1ople\"],[new RegExp(\"(child)$\",\"gi\"),\"$1ren\"],[new RegExp(\"^(ox)$\",\"gi\"),\"$1en\"],[new RegExp(\"(ax|test)is$\",\"gi\"),\"$1es\"],[new RegExp(\"(octop|vir)us$\",\"gi\"),\"$1i\"],[new RegExp(\"(alias|status)$\",\"gi\"),\"$1es\"],[new RegExp(\"(bu)s$\",\"gi\"),\"$1ses\"],[new RegExp(\"(buffal|tomat|potat)o$\",\"gi\"),\"$1oes\"],[new RegExp(\"([ti])um$\",\"gi\"),\"$1a\"],[new RegExp(\"sis$\",\"gi\"),\"ses\"],[new RegExp(\"(?:([^f])fe|([lr])f)$\",\"gi\"),\"$1$2ves\"],[new RegExp(\"(hive)$\",\"gi\"),\"$1s\"],[new RegExp(\"([^aeiouy]|qu)y$\",\"gi\"),\"$1ies\"],[new RegExp(\"(x|ch|ss|sh)$\",\"gi\"),\"$1es\"],[new RegExp(\"(matr|vert|ind)ix|ex$\",\"gi\"),\"$1ices\"],[new RegExp(\"([m|l])ouse$\",\"gi\"),\"$1ice\"],[new RegExp(\"(quiz)$\",\"gi\"),\"$1zes\"],[new RegExp(\"s$\",\"gi\"),\"s\"],[new RegExp(\"$\",\"gi\"),\"s\"]]),g(this,\"singularRules\",[[new RegExp(\"(m)en$\",\"gi\"),\"$1an\"],[new RegExp(\"(pe)ople$\",\"gi\"),\"$1rson\"],[new RegExp(\"(child)ren$\",\"gi\"),\"$1\"],[new RegExp(\"([ti])a$\",\"gi\"),\"$1um\"],[new RegExp(\"((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$\",\"gi\"),\"$1$2sis\"],[new RegExp(\"(hive)s$\",\"gi\"),\"$1\"],[new RegExp(\"(tive)s$\",\"gi\"),\"$1\"],[new RegExp(\"(curve)s$\",\"gi\"),\"$1\"],[new RegExp(\"([lr])ves$\",\"gi\"),\"$1f\"],[new RegExp(\"([^fo])ves$\",\"gi\"),\"$1fe\"],[new RegExp(\"([^aeiouy]|qu)ies$\",\"gi\"),\"$1y\"],[new RegExp(\"(s)eries$\",\"gi\"),\"$1eries\"],[new RegExp(\"(m)ovies$\",\"gi\"),\"$1ovie\"],[new RegExp(\"(x|ch|ss|sh)es$\",\"gi\"),\"$1\"],[new RegExp(\"([m|l])ice$\",\"gi\"),\"$1ouse\"],[new RegExp(\"(bus)es$\",\"gi\"),\"$1\"],[new RegExp(\"(o)es$\",\"gi\"),\"$1\"],[new RegExp(\"(shoe)s$\",\"gi\"),\"$1\"],[new RegExp(\"(cris|ax|test)es$\",\"gi\"),\"$1is\"],[new RegExp(\"(octop|vir)i$\",\"gi\"),\"$1us\"],[new RegExp(\"(alias|status)es$\",\"gi\"),\"$1\"],[new RegExp(\"^(ox)en\",\"gi\"),\"$1\"],[new RegExp(\"(vert|ind)ices$\",\"gi\"),\"$1ex\"],[new RegExp(\"(matr)ices$\",\"gi\"),\"$1ix\"],[new RegExp(\"(quiz)zes$\",\"gi\"),\"$1\"],[new RegExp(\"s$\",\"gi\"),\"\"]]),g(this,\"nonTitlecasedWords\",[\"and\",\"or\",\"nor\",\"a\",\"an\",\"the\",\"so\",\"but\",\"to\",\"of\",\"at\",\"by\",\"from\",\"into\",\"on\",\"onto\",\"off\",\"out\",\"in\",\"over\",\"with\",\"for\"]),g(this,\"idSuffix\",new RegExp(\"(_ids|_id)$\",\"g\")),g(this,\"underbar\",new RegExp(\"_\",\"g\")),g(this,\"spaceOrUnderbar\",new RegExp(\"[ _]\",\"g\")),g(this,\"uppercase\",new RegExp(\"([A-Z])\",\"g\")),g(this,\"underbarPrefix\",new RegExp(\"^_\")),this.str=e,this.chain=n}return v(t,[{key:\"get\",value:function(){return this.str}},{key:\"applyRules\",value:function(t,e,n,r){if(r)t=r;else if(!(n.indexOf(t.toLowerCase())>-1))for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:null;return t=t||this.str,this.applyRules(t,this.pluralRules,this.uncountableWords,e)}},{key:\"singularize\",value:function(t,e){return t=t||this.str,this.applyRules(t,this.singularRules,this.uncountableWords,e)}},{key:\"camelize\",value:function(t,e){for(var n=(t=t||this.str).split(\"/\"),r=0;r1&&void 0!==arguments[1]&&arguments[1];return t=t||this.str,t=this.underscore(this.demodulize(t))+(e?\"\":\"_\")+\"id\",this.str=t,!0===this.chain?this:t}},{key:\"ordinalize\",value:function(t){for(var e=(t=t||this.str).split(\" \"),n=0;n2?i-2:0),a=2;a2?n-2:0),i=2;i2?n-2:0),i=2;i2?n-2:0),i=2;i1?e-1:0),r=1;r3&&void 0!==arguments[3]?arguments[3]:[];if(V(t))if(r.length<=X)t.splice.apply(t,[e,n].concat(S(r)));else{t.splice(e,n);for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:0,r=t.length,i=n;i2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3?arguments[3]:void 0,i=t.length;return n<0&&(n+=i),nt(t,r&&e!=e?function(t){return t!=t}:function(t){return t===e},n)}function it(t,e,n){return Q(t,e,0,[n]),n}function ot(){return f(at,Array.prototype.slice.call(arguments))}var at=function(){function t(){return h(this,t),r(V(arguments[0])?l(this,t,S(arguments[0])):l(this,t,arguments))}return b(t,C(Array)),v(t,[{key:\"notEmpty\",get:function(){return this.length>0}},{key:\"empty\",get:function(){return 0===this.length}},{key:\"first\",get:function(){return tt(this,0)}},{key:\"last\",get:function(){return tt(this,this.length-1)}},{key:\"replace\",value:function(t,e){return Q(this,t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:[]),this}},{key:\"objectsAt\",value:function(t){var e=this;return t.map((function(t){return tt(e,t)}))}},{key:\"objectAt\",value:function(t){return tt(this,t)}},{key:\"indexOf\",value:function(t,e){return rt(this,t,e,!1)}},{key:\"lastIndexOf\",value:function(t,e){var n=this.length;(void 0===e||e>=n)&&(e=n-1),e<0&&(e+=n);for(var r=e;r>=0;r--)if(tt(this,r)===t)return r;return-1}},{key:\"includes\",value:function(t,e){return-1!==rt(this,t,e,!0)}},{key:\"findBy\",value:function(){return t=this,e=et.apply(void 0,arguments),-1===(r=nt(t,e.bind(n),0))?void 0:tt(t,r);var t,e,n,r}},{key:\"findIndexBy\",value:function(){return nt(this,et.apply(void 0,arguments))}},{key:\"isEvery\",value:function(){return t=this,e=et.apply(void 0,arguments),r=e.bind(n),-1===nt(t,(function(t,e,n){return!r(t,e,n)}),0);var t,e,n,r}},{key:\"isAny\",value:function(){return t=this,e=et.apply(void 0,arguments),-1!==nt(t,e.bind(n),0);var t,e,n}},{key:\"invoke\",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:Y,n=[],r=new Set,i=\"function\"==typeof e?e:function(t){return get(t,e)};return t.forEach((function(t){var e=i(t);r.has(e)||(r.add(e),n.push(t))})),n}(this,t)}},{key:\"without\",value:function(t){if(!this.includes(t))return this;var e=t==t?function(e){return e!==t}:function(t){return t==t};return this.filter(e)}},{key:\"clear\",value:function(){var t=this.length;return 0===t||this.replace(0,t,[]),this}},{key:\"insertAt\",value:function(t,e){return it(this,t,e),this}},{key:\"replaceAt\",value:function(t,e){return this.replace(t,1,[e])}},{key:\"removeAt\",value:function(t,e){return function(t,e){return Q(t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,[]),t}(this,t,e)}},{key:\"pushObject\",value:function(t){return this.insertAt(this.length,t)}},{key:\"pushObjects\",value:function(t){return this.replace(this.length,0,t),this}},{key:\"popObject\",value:function(){var t=this.length;if(0===t)return null;var e=tt(this,t-1);return this.removeAt(t-1,1),e}},{key:\"shiftObject\",value:function(){if(0===this.length)return null;var t=tt(this,0);return this.removeAt(0),t}},{key:\"unshiftObject\",value:function(t){return it(this,0,t)}},{key:\"unshiftObjects\",value:function(t){return this.replace(0,0,t),this}},{key:\"reverseObjects\",value:function(){var t=this.length;if(0===t)return this;var e=this.toArray().reverse();return this.replace(0,t,e),this}},{key:\"setObjects\",value:function(t){if(0===t.length)return this.clear();var e=this.length;return this.replace(0,e,t),this}},{key:\"removeObject\",value:function(t){for(var e=this.length||0;--e>=0;){tt(this,e)===t&&this.removeAt(e)}return this}},{key:\"removeObjects\",value:function(t){for(var e=t.length-1;e>=0;e--)this.removeObject(t[e]);return this}},{key:\"addObject\",value:function(t){return this.includes(t)||this.pushObject(t),this}},{key:\"addObjects\",value:function(t){var e=this;return t.forEach((function(t){return e.addObject(t)})),this}}])}();function st(t){var e=null==t;if(e)return e;if(\"number\"==typeof t.size)return!t.size;var n=T(t);if(\"object\"===n){var r=t.size;if(\"number\"==typeof r)return!r}if(\"number\"==typeof t.length&&\"function\"!==n)return!t.length;if(\"object\"===n){var i=t.length;if(\"number\"==typeof i)return!i}return!1}function ut(t){return isFinite(t)&&Math.abs(t)<=90}function ct(t){return isFinite(t)&&Math.abs(t)<=180&&Math.abs(t)>=90}function lt(){var t,e,n;return!(\"undefined\"==typeof process||\"object\"!==T(null===(t=process)||void 0===t?void 0:t.env)&&-1===(null===(e=process.release)||void 0===e||null===(e=e.name)||void 0===e?void 0:e.search(/node|io.js/))||\"undefined\"!=typeof window&&\"ReactNative\"!==(null===(n=window)||void 0===n||null===(n=n.navigator)||void 0===n?void 0:n.product))}function ht(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return lt()?W(\"adapter\",\"NodeAdapter\",t):W(\"adapter\",\"BrowserAdapter\",t)}var ft=function(){return v((function t(e){h(this,t),this.place=e,this.geometry=null==e?void 0:e.geometry,this.components=this.parseComponents(),this.attributes=this.parseProperties()}),[{key:\"parse\",value:function(){this.parseComponents(),this.parseProperties()}},{key:\"parseComponents\",value:function(){var t;return((null===(t=this.place)||void 0===t?void 0:t.address_components)||[]).reduce((function(t,e){return e.types.forEach((function(n){t[n]=e})),t}),{})}},{key:\"parseProperties\",value:function(){var t,e={streetNumber:this.get(\"street_number\"),streetName:this.get(\"route\"),coordinates:null!==(t=this.geometry)&&void 0!==t&&t.location?Object.values(this.geometry.location):[0,0],city:this.or([\"locality\",\"sublocality\",\"sublocality_level_1\",\"neighborhood\",\"administrative_area_level_3\",\"administrative_area_level_2\"]),county:this.get(\"administrative_area_level_2\"),stateShort:this.get(\"administrative_area_level_1\",!0),stateLong:this.get(\"administrative_area_level_1\"),countryShort:this.get(\"country\",!0),country:this.get(\"country\",!0),countryLong:this.get(\"country\"),postalCode:this.get(\"postal_code\")};return e.address=[e.streetNumber,e.streetName].filter(Boolean).join(\" \"),e}},{key:\"all\",value:function(){return this.attributes}},{key:\"or\",value:function(){var t,e=p(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]);try{for(e.s();!(t=e.n()).done;){var n=t.value;if(V(n)){var r=n[0],i=n[1];if(this.has(r))return this.get(r,i)}else if(this.has(n))return this.get(n)}}catch(t){e.e(t)}finally{e.f()}return null}},{key:\"has\",value:function(t){return t in this.components}},{key:\"get\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t in this.components?e?this.components[t].short_name:this.components[t].long_name:null}},{key:\"setAttributes\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.attributes=A(A({},this.attributes),t),this}},{key:\"setAttribute\",value:function(t,e){return this.attributes[t]=e,this}},{key:\"getAttribute\",value:function(t){return this.attributes[t]||null}}])}(),dt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;h(this,t),this.type=\"Point\",this.coordinates=[n,e]}return v(t,[{key:\"latitude\",get:function(){return this.coordinates[1]}},{key:\"longitude\",get:function(){return this.coordinates[0]}},{key:\"lat\",value:function(){return this.latitude}},{key:\"lng\",value:function(){return this.longitude}},{key:\"serialize\",value:function(){return{type:\"Point\",coorindates:[this.lat(),this.lng()]}}},{key:\"toJson\",value:function(){return this.serialize()}},{key:\"toString\",value:function(){return\"(\".concat(this.latitude,\", \").concat(this.longitude,\")\")}}],[{key:\"fromGeoJson\",value:function(e){var n=R(e.coordinates,2),r=n[0];return new t(n[1],r)}}])}();function vt(t,e){var n=t();return Array.isArray(n)||\"object\"===T(n)?pt(n,e):null}function pt(t,e){var n,r=t,i=T(t),o=\"object\"===i,a=\"function\"===i,s=Array.isArray(t),u=\"string\"===T(e)&&e.includes(\".\")?e.split(\".\"):[e];if(s||o){for(var c=0;c1&&void 0!==arguments[1]?arguments[1]:[];if(t.actions=V(e)?e:[e],!V(e))return e instanceof mt&&e.extend(t),t;var n,r=p(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;t.extendActions(i)}}catch(t){r.e(t)}finally{r.f()}}function bt(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;h(this,t),this.actions=e,this.bind=n}),[{key:\"extend\",value:function(){var t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||this.bind;if(!t)return this;if(null!=this&&this.actions&&\"object\"===T(this.actions))for(var e in this.actions){var n=this.actions[e];\"function\"==typeof n?gt(t,e,n.bind(t)):gt(t,e,n)}return this}}])}();function wt(t){return t instanceof kt}var kt=function(){return v((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};h(this,t),this.attributes=e,this.dirtyAttributes={},this.changes={},this.isLoading=!1,this.isSaving=!1,this.isDestroying=!1,this.isReloading=!1,this.resource=r,this.options=i,this.version=i.version||\"v1\",this.setAdapter(n)}),[{key:\"setAdapter\",value:function(t){var e;return this.adapter=t,this.store=M(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:\"id\",get:function(){return this.getAttribute(\"id\")}},{key:\"create\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.mergeAttributes(e);return this.setFlags([\"isLoading\",\"isSaving\"]),this.store.create(n).then((function(e){return t.setFlags([\"isLoading\",\"isSaving\"],!1),e}))}},{key:\"update\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setFlags([\"isLoading\",\"isSaving\"]),this.store.update(this.attributes.id,e).then((function(e){return t.setFlags([\"isLoading\",\"isSaving\"],!1),e}))}},{key:\"destroy\",value:function(){var t=this;return this.setFlags([\"isLoading\",\"isDestroying\"]),this.store.destroy(this.attributes.id).then((function(e){return t.setFlags([\"isLoading\",\"isDestroying\"],!1),e}))}},{key:\"reload\",value:function(){var t=this;return this.setFlags([\"isLoading\",\"isReloading\"]),this.store.findRecord(this.attributes.id).then((function(e){return t.reset(),e}))}},{key:\"setFlags\",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=[\"isLoading\",\"isSaving\",\"isReloading\",\"isDestroying\"],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=this.getAttributes();return st(this.id)?this.create(e):!0===t.onlyDirty?this.savedirty():this.update(e)}},{key:\"saveDirty\",value:function(){for(var t=Object.keys(this.dirtyAttributes),e={},n=0;n0}},{key:\"mutate\",value:function(t,e){this.attributes[t]=e}},{key:\"setAttribute\",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null===n&&\"object\"===T(t))return this.setAttributes(t);var r=null!==(e=null==this?void 0:this.attributes[t])&&void 0!==e?e:null;return gt(this.attributes,t,n),gt(this.dirtyAttributes,t,r),V(null==this?void 0:this.changes[t])||(this.changes[t]=[]),this.changes[t].push({property:t,previousValue:r,value:n,changedAt:new Date}),this}},{key:\"setAttributes\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var e in t)this.setAttribute(e,t[e]);return this}},{key:\"getAttribute\",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=pt(null!==(e=null==this?void 0:this.attributes)&&void 0!==e?e:{},t);return void 0===r?n:r}},{key:\"hasAttribute\",value:function(t){if(V(t)){var e,n=t,r=Object.keys(null!==(e=this.attributes)&&void 0!==e?e:{});return n.every((function(t){return r.includes(t)}))}return!(null==this||!this.attributes)&&t in this.attributes}},{key:\"hasAttributes\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.hasAttribute(t)}},{key:\"isAttributeFilled\",value:function(t){var e=this;return V(t)?this.hasAttribute(t)&&t.every((function(t){return!st(e.getAttribute(t))})):this.hasAttribute(t)&&!st(this.getAttribute(t))}},{key:\"getAttributes\",value:function(t){var e={};if(null==t)return this.getAttributes(Object.keys(this.attributes));if(\"string\"==typeof t)return this.getAttribute(Array.prototype.slice.call(arguments));if(!V(t))throw new Error(\"No attribute properties provided!\");var n,r=p(t);try{for(r.s();!(n=r.n()).done;){var i,o,a=n.value;if(\"string\"==typeof a){var s=this.getAttribute(a);\"object\"!==T(null===(i=s)||void 0===i?void 0:i.attributes)||V(null===(o=s)||void 0===o?void 0:o.attributes)||(s=s.attributes),e[a]=s}}}catch(t){r.e(t)}finally{r.f()}return e}},{key:\"serialize\",value:function(){return this.getAttributes()}},{key:\"mergeAttributes\",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=null!==(t=null==this?void 0:this.attributes)&&void 0!==t?t:{};return this.attributes=A(A({},n),e),this.attributes}},{key:\"syncAttributes\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attributes=t}}])}();q(\"resource\",\"Resource\",kt);var Et=function(){return v((function t(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};h(this,t),this.resource=e,this.adapter=n||ht(),this.namespace=F(e),this.storage=ot(),this.options=r,this.extendActions(r.actions)}),[{key:\"extendActions\",value:function(){return yt(this,arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])}},{key:\"deposit\",value:function(t){return t}},{key:\"serialize\",value:function(t){return W(\"resource\",z(this.resource),t,this.adapter)}},{key:\"afterFetch\",value:function(t){return function(t,e){if(\"function\"==typeof t.options.onAfterFetch&&t.options.onAfterFetch(e),V(e)){var n,r=[],i=p(e);try{for(i.s();!(n=i.n()).done;){var o=n.value;r.push(t.afterFetch(o))}}catch(t){i.e(t)}finally{i.f()}return ot.apply(void 0,r)}var a=t.serialize(e);return t.deposit(a)}(this,t)}},{key:\"create\",value:(a=u(x().mark((function t(){var e,n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=4,this.adapter.post(\"\".concat(this.namespace),e,n);case 4:return r=t.sent,t.abrupt(\"return\",this.afterFetch(r));case 6:case\"end\":return t.stop()}}),t,this)}))),function(){return a.apply(this,arguments)})},{key:\"update\",value:(o=u(x().mark((function t(e){var n,r,i,o=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=o.length>1&&void 0!==o[1]?o[1]:{},r=o.length>2&&void 0!==o[2]?o[2]:{},t.next=4,this.adapter.put(\"\".concat(this.namespace,\"/\").concat(e),n,r);case 4:return i=t.sent,t.abrupt(\"return\",this.afterFetch(i));case 6:case\"end\":return t.stop()}}),t,this)}))),function(t){return o.apply(this,arguments)})},{key:\"findRecord\",value:(i=u(x().mark((function t(e){var n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=3,this.adapter.get(\"\".concat(this.namespace,\"/\").concat(e),{},n);case 3:return r=t.sent,t.abrupt(\"return\",this.afterFetch(r));case 5:case\"end\":return t.stop()}}),t,this)}))),function(t){return i.apply(this,arguments)})},{key:\"findAll\",value:(r=u(x().mark((function t(){var e,n,r=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=r.length>0&&void 0!==r[0]?r[0]:{},t.next=3,this.adapter.get(\"\".concat(this.namespace),{},e);case 3:return n=t.sent,t.abrupt(\"return\",this.afterFetch(n));case 5:case\"end\":return t.stop()}}),t,this)}))),function(){return r.apply(this,arguments)})},{key:\"query\",value:(n=u(x().mark((function t(){var e,n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=4,this.adapter.get(\"\".concat(this.namespace),e,n);case 4:return r=t.sent,t.abrupt(\"return\",this.afterFetch(r));case 6:case\"end\":return t.stop()}}),t,this)}))),function(){return n.apply(this,arguments)})},{key:\"queryRecord\",value:(e=u(x().mark((function t(){var e,n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},(e=i.length>0&&void 0!==i[0]?i[0]:{}).single=!0,t.next=5,this.adapter.get(\"\".concat(this.namespace),e,n);case 5:return r=t.sent,t.abrupt(\"return\",this.afterFetch(r));case 7:case\"end\":return t.stop()}}),t,this)}))),function(){return e.apply(this,arguments)})},{key:\"destroy\",value:(t=u(x().mark((function t(e){var n,r,i,o=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=o.length>1&&void 0!==o[1]?o[1]:{},r=wt(e)?e.getAttribute(\"id\"):e,t.next=4,this.adapter.delete(\"\".concat(this.namespace,\"/\").concat(r),{},n);case 4:return i=t.sent,t.abrupt(\"return\",this.afterFetch(i));case 6:case\"end\":return t.stop()}}),t,this)}))),function(e){return t.apply(this,arguments)})}]);var t,e,n,r,i,o,a}();q(\"store\",\"Store\",Et);var At=new mt({getDistanceAndTime:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get(\"\".concat(this.namespace,\"/\").concat(t,\"/distance-and-time\"),e,n)},getNextActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get(\"\".concat(this.namespace,\"/\").concat(t,\"/next-activity\"),e,n)},dispatch:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/dispatch\"),e,n).then(this.afterFetch.bind(this))},start:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/start\"),e,n).then(this.afterFetch.bind(this))},updateActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/update-activity\"),e,n).then(this.afterFetch.bind(this))},setDestination:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return wt(e)&&(e=e.id),this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/set-destination/\").concat(e),n,r).then(this.afterFetch.bind(this))},captureQrCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return wt(e)&&(e=e.id),this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/capture-qr\").concat(e?\"/\"+e:\"\"),n,r)},captureSignature:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return wt(e)&&(e=e.id),this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/capture-signature\").concat(e?\"/\"+e:\"\"),n,r)},complete:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/complete\"),e,n).then(this.afterFetch.bind(this))},cancel:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete(\"\".concat(this.namespace,\"/\").concat(t,\"/cancel\"),e,n).then(this.afterFetch.bind(this))}}),xt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"order\",A({actions:At},r)])}return b(t,kt),v(t,[{key:\"getDistanceAndTime\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getDistanceAndTime(this.id,t,e)}},{key:\"dispatch\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.dispatch(this.id,t,e)}},{key:\"start\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.start(this.id,t,e)}},{key:\"setDestination\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.setDestination(this.id,t,e,n)}},{key:\"captureQrCode\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureQrCode(this.id,t,e,n)}},{key:\"captureSignature\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureSignature(this.id,t,e,n)}},{key:\"getNextActivity\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getNextActivity(this.id,t,e)}},{key:\"updateActivity\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.updateActivity(this.id,t,e)}},{key:\"cancel\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.cancel(this.id,t,e)}},{key:\"complete\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.complete(this.id,t,e)}},{key:\"isDispatched\",get:function(){return null!==this.getAttribute(\"dispatched_at\")}},{key:\"isNotDispatched\",get:function(){return null==this.getAttribute(\"dispatched_at\")}},{key:\"isStarted\",get:function(){return null!==this.getAttribute(\"started_at\")}},{key:\"isNotStarted\",get:function(){return null==this.getAttribute(\"started_at\")}},{key:\"isCompleted\",get:function(){return\"completed\"==this.getAttribute(\"status\")}},{key:\"isCanceled\",get:function(){return\"canceled\"==this.getAttribute(\"status\")}},{key:\"isEnroute\",get:function(){return\"driver_enroute\"==this.getAttribute(\"status\")||\"enroute\"===this.getAttribute(\"status\")}},{key:\"isInProgress\",get:function(){return this.isStarted&&!this.isCanceled&&!this.isCompleted}},{key:\"scheduledAt\",get:function(){return this.isAttributeFilled(\"scheduled_at\")?new Date(this.getAttribute(\"scheduled_at\")):null}},{key:\"startedAt\",get:function(){return this.isAttributeFilled(\"started_at\")?new Date(this.getAttribute(\"started_at\")):null}},{key:\"dispatchedAt\",get:function(){return this.isAttributeFilled(\"dispatched_at\")?new Date(this.getAttribute(\"dispatched_at\")):null}},{key:\"status\",get:function(){return this.getAttribute(\"status\")}}])}();q(\"resource\",\"Order\",xt);var Ot=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"payload\",r])}return b(t,kt),v(t,[{key:\"attach\",value:function(t){}},{key:\"entities\",get:function(){var t=this;return ot(this.entities.map((function(e){return G(\"Entity\",e,t.adapter)})))}},{key:\"dropoff\",get:function(){return this.dropoff?G(\"Place\",this.dropoff,this.adapter):null}},{key:\"pickup\",get:function(){return this.pickup?G(\"Place\",this.pickup,this.adapter):null}},{key:\"waypoints\",get:function(){var t=this;return ot(this.waypoints.map((function(e){return G(\"Waypoint\",e,t.adapter)})))}}])}();q(\"resource\",\"Payload\",Ot);var Rt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"entity\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Entity\",Rt);var St=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"place\",r])}return b(t,kt),v(t,[{key:\"latitude\",get:function(){var t;return null===(t=this.getAttribute(\"location\",new dt))||void 0===t?void 0:t.coordinates[1]}},{key:\"longitude\",get:function(){var t;return null===(t=this.getAttribute(\"location\",new dt))||void 0===t?void 0:t.coordinates[0]}},{key:\"coordinates\",get:function(){return[this.latitude,this.longitude]}},{key:\"setOwner\",value:function(t){return wt(t)&&this.setAttribute(\"owner\",t.id),\"string\"==typeof t&&this.setAttribute(\"owner\",t),this}}],[{key:\"fromGoogleAddress\",value:function(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=R(e.getAttribute(\"coordinates\"),2),o=i[0],a=i[1];return new t({name:null,address:e.getAttribute(\"address\"),location:new dt(o,a),street1:e.getAttribute(\"address\"),street2:null,city:e.getAttribute(\"city\"),province:e.getAttribute(\"stateLong\"),postal_code:e.getAttribute(\"postalCode\"),neighborhood:e.get(\"neighborhood\"),district:e.getAttribute(\"county\"),building:e.get(\"building\"),country:e.getAttribute(\"countryShort\"),phone:null,security_access_code:null},n,r)}}])}();q(\"resource\",\"Place\",St);var jt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"waypoint\",r])}return b(t,St),v(t)}();q(\"resource\",\"Waypoint\",jt);var Tt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"tracking-status\",r])}return b(t,kt),v(t)}();q(\"resource\",\"TrackingStatus\",Tt);var _t=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"vehicle\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Vehicle\",_t);var Pt=new mt({current:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.get(\"\".concat(this.namespace,\"/current\"),t,e)}}),Lt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"organization\",A({actions:Pt},r)])}return b(t,kt),v(t)}();q(\"resource\",\"Organization\",Lt);var Ct=function(t,e){return V(t)?t.map((function(t){return new Lt(t,e)})):new Lt(t,e)},Nt=new mt({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(function(){return/^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/g.test(arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\")}(t))return this.adapter.post(\"drivers/login-with-sms\",{phone:t});if(!e)throw new Error(\"Login requires password!\");return this.adapter.post(\"drivers/login\",A({identity:t,password:e},n)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"drivers/verify-code\",A({identity:t,code:e},n)).then(this.afterFetch.bind(this))},track:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"drivers/\".concat(t,\"/track\"),e,n).then(this.afterFetch.bind(this))},listOrganizations:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get(\"drivers/\".concat(t,\"/organizations\"),n,r).then((function(t){return Ct(t,e.adapter)}))},switchOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"drivers/\".concat(t,\"/switch-organization\"),n,r).then((function(t){return Ct(t,e.adapter)}))},currentOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get(\"drivers/\".concat(t,\"/current-organization\"),n,r).then((function(t){return Ct(t,e.adapter)}))},retrieve:function(t){return this.findRecord(t)},syncDevice:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"drivers/\".concat(t,\"/register-device\"),e,n)}}),Ft=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"driver\",A({actions:Nt},r)])}return b(t,kt),v(t,[{key:\"token\",get:function(){return this.getAttribute(\"token\")}},{key:\"isOnline\",get:function(){return!0===this.getAttribute(\"online\")}},{key:\"latitude\",get:function(){var t;return null===(t=this.getAttribute(\"location\",new dt))||void 0===t?void 0:t.coordinates[1]}},{key:\"longitude\",get:function(){var t;return null===(t=this.getAttribute(\"location\",new dt))||void 0===t?void 0:t.coordinates[0]}},{key:\"coordinates\",get:function(){return[this.latitude,this.longitude]}},{key:\"track\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.track(this.id,t,e)}},{key:\"syncDevice\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.syncDevice(this.id,t,e)}},{key:\"listOrganizations\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.listOrganizations(this.id,t,e)}},{key:\"switchOrganization\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.switchOrganization(this.id,{next:t},e)}},{key:\"currentOrganization\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.currentOrganization(this.id,t,e)}}])}();q(\"resource\",\"Driver\",Ft);var Dt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"vendor\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Vendor\",Dt);var $t=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"contact\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Contact\",$t);var Ut=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"zone\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Zone\",Ut);var zt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"service-area\",r])}return b(t,kt),v(t)}();q(\"resource\",\"ServiceArea\",zt);var Bt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"service-rate\",r])}return b(t,kt),v(t)}();q(\"resource\",\"ServiceRate\",Bt);var qt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"service-quote\",r])}return b(t,kt),v(t,[{key:\"fromPreliminary\",value:function(){}},{key:\"fromPayload\",value:function(){}}])}();q(\"resource\",\"ServiceQuote\",qt);var It=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"fleet\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Fleet\",It);var Mt=v((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};h(this,t),this.version=e.version||\"v1\",this.host=e.host||null,this.namespace=e.namespace||null,this.headers=e.headers||{}}));q(\"adapter\",\"Adapter\",Mt);var Ht=function(){function t(e){var n;return h(this,t),(n=l(this,t,[e])).setHeaders({Authorization:\"Bearer \".concat(e.publicKey),\"Content-Type\":\"application/json\",\"User-Agent\":\"@fleetbase/sdk;browser\"}),n}return b(t,Mt),v(t,[{key:\"setHeaders\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.headers=A(A({},this.headers),t),this}},{key:\"parseJSON\",value:function(t){return new Promise((function(e,n){t.json().then((function(n){e({statusText:t.statusText,status:t.status,ok:t.ok,json:n})})).catch((function(){n(new Error(\"Oops! Something went wrong when handling your request.\"))}))}))}},{key:\"request\",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"GET\",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new Promise((function(o,a){fetch(i.url||\"\".concat(e.host,\"/\").concat(e.namespace,\"/\").concat(t),A({method:n,mode:i.mode||\"cors\",headers:new Headers(A(A({},e.headers||{}),i.headers||{}))},r)).then(e.parseJSON).then((function(t){if(t.ok)return o(t.json);a(new Error(t.json.errors?t.json.errors[0]:t.statusText))})).catch((function(t){a(t)}))}))}},{key:\"get\",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=st(e=n)||\"string\"==typeof e&&!1===/\\S/.test(e)?\"\":new URLSearchParams(n).toString();return this.request(\"\".concat(t).concat(i?\"?\".concat(i):\"\"),\"GET\",{},r)}},{key:\"post\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,\"POST\",{body:JSON.stringify(e)},n)}},{key:\"put\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,\"PUT\",{body:JSON.stringify(e)},n)}},{key:\"delete\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(t,\"DELETE\",{},e)}},{key:\"patch\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,\"PATCH\",{body:JSON.stringify(e)},n)}}])}();function Jt(t,e){return function(){return t.apply(e,arguments)}}q(\"adapter\",\"BrowserAdapter\",Ht);var Wt,Kt=Object.prototype.toString,Gt=Object.getPrototypeOf,Vt=(Wt=Object.create(null),function(t){var e=Kt.call(t);return Wt[e]||(Wt[e]=e.slice(8,-1).toLowerCase())}),Xt=function(t){return t=t.toLowerCase(),function(e){return Vt(e)===t}},Qt=function(t){return function(e){return T(e)===t}},Yt=Array.isArray,Zt=Qt(\"undefined\");var te=Xt(\"ArrayBuffer\");var ee=Qt(\"string\"),ne=Qt(\"function\"),re=Qt(\"number\"),ie=function(t){return null!==t&&\"object\"===T(t)},oe=function(t){if(\"object\"!==Vt(t))return!1;var e=Gt(t);return!(null!==e&&e!==Object.prototype&&null!==Object.getPrototypeOf(e)||Symbol.toStringTag in t||Symbol.iterator in t)},ae=Xt(\"Date\"),se=Xt(\"File\"),ue=Xt(\"Blob\"),ce=Xt(\"FileList\"),le=Xt(\"URLSearchParams\"),he=R([\"ReadableStream\",\"Request\",\"Response\",\"Headers\"].map(Xt),4),fe=he[0],de=he[1],ve=he[2],pe=he[3];function ge(t,e){var n,r,i=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).allOwnKeys,o=void 0!==i&&i;if(null!=t)if(\"object\"!==T(t)&&(t=[t]),Yt(t))for(n=0,r=t.length;n0;)if(e===(n=r[i]).toLowerCase())return n;return null}var be=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:global,me=function(t){return!Zt(t)&&t!==be};var we,ke=(we=\"undefined\"!=typeof Uint8Array&&Gt(Uint8Array),function(t){return we&&t instanceof we}),Ee=Xt(\"HTMLFormElement\"),Ae=function(){var t=Object.prototype.hasOwnProperty;return function(e,n){return t.call(e,n)}}(),xe=Xt(\"RegExp\"),Oe=function(t,e){var n=Object.getOwnPropertyDescriptors(t),r={};ge(n,(function(n,i){var o;!1!==(o=e(n,i,t))&&(r[i]=o||n)})),Object.defineProperties(t,r)},Re=\"abcdefghijklmnopqrstuvwxyz\",Se=\"0123456789\",je={DIGIT:Se,ALPHA:Re,ALPHA_DIGIT:Re+Re.toUpperCase()+Se};var Te,_e,Pe,Le,Ce=Xt(\"AsyncFunction\"),Ne=(Te=\"function\"==typeof setImmediate,_e=ne(be.postMessage),Te?setImmediate:_e?(Pe=\"axios@\".concat(Math.random()),Le=[],be.addEventListener(\"message\",(function(t){var e=t.source,n=t.data;e===be&&n===Pe&&Le.length&&Le.shift()()}),!1),function(t){Le.push(t),be.postMessage(Pe,\"*\")}):function(t){return setTimeout(t)}),Fe=\"undefined\"!=typeof queueMicrotask?queueMicrotask.bind(be):\"undefined\"!=typeof process&&process.nextTick||Ne,De={isArray:Yt,isArrayBuffer:te,isBuffer:function(t){return null!==t&&!Zt(t)&&null!==t.constructor&&!Zt(t.constructor)&&ne(t.constructor.isBuffer)&&t.constructor.isBuffer(t)},isFormData:function(t){var e;return t&&(\"function\"==typeof FormData&&t instanceof FormData||ne(t.append)&&(\"formdata\"===(e=Vt(t))||\"object\"===e&&ne(t.toString)&&\"[object FormData]\"===t.toString()))},isArrayBufferView:function(t){return\"undefined\"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&te(t.buffer)},isString:ee,isNumber:re,isBoolean:function(t){return!0===t||!1===t},isObject:ie,isPlainObject:oe,isReadableStream:fe,isRequest:de,isResponse:ve,isHeaders:pe,isUndefined:Zt,isDate:ae,isFile:se,isBlob:ue,isRegExp:xe,isFunction:ne,isStream:function(t){return ie(t)&&ne(t.pipe)},isURLSearchParams:le,isTypedArray:ke,isFileList:ce,forEach:ge,merge:function t(){for(var e=(me(this)&&this||{}).caseless,n={},r=function(r,i){var o=e&&ye(n,i)||i;oe(n[o])&&oe(r)?n[o]=t(n[o],r):oe(r)?n[o]=t({},r):Yt(r)?n[o]=r.slice():n[o]=r},i=0,o=arguments.length;i3&&void 0!==arguments[3]?arguments[3]:{}).allOwnKeys}),t},trim:function(t){return t.trim?t.trim():t.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\"\")},stripBOM:function(t){return 65279===t.charCodeAt(0)&&(t=t.slice(1)),t},inherits:function(t,e,n,r){t.prototype=Object.create(e.prototype,r),t.prototype.constructor=t,Object.defineProperty(t,\"super\",{value:e.prototype}),n&&Object.assign(t.prototype,n)},toFlatObject:function(t,e,n,r){var i,o,a,s={};if(e=e||{},null==t)return e;do{for(o=(i=Object.getOwnPropertyNames(t)).length;o-- >0;)a=i[o],r&&!r(a,t,e)||s[a]||(e[a]=t[a],s[a]=!0);t=!1!==n&&Gt(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},kindOf:Vt,kindOfTest:Xt,endsWith:function(t,e,n){t=String(t),(void 0===n||n>t.length)&&(n=t.length),n-=e.length;var r=t.indexOf(e,n);return-1!==r&&r===n},toArray:function(t){if(!t)return null;if(Yt(t))return t;var e=t.length;if(!re(e))return null;for(var n=new Array(e);e-- >0;)n[e]=t[e];return n},forEachEntry:function(t,e){for(var n,r=(t&&t[Symbol.iterator]).call(t);(n=r.next())&&!n.done;){var i=n.value;e.call(t,i[0],i[1])}},matchAll:function(t,e){for(var n,r=[];null!==(n=t.exec(e));)r.push(n);return r},isHTMLForm:Ee,hasOwnProperty:Ae,hasOwnProp:Ae,reduceDescriptors:Oe,freezeMethods:function(t){Oe(t,(function(e,n){if(ne(t)&&-1!==[\"arguments\",\"caller\",\"callee\"].indexOf(n))return!1;var r=t[n];ne(r)&&(e.enumerable=!1,\"writable\"in e?e.writable=!1:e.set||(e.set=function(){throw Error(\"Can not rewrite read-only method '\"+n+\"'\")}))}))},toObjectSet:function(t,e){var n={},r=function(t){t.forEach((function(t){n[t]=!0}))};return Yt(t)?r(t):r(String(t).split(e)),n},toCamelCase:function(t){return t.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,(function(t,e,n){return e.toUpperCase()+n}))},noop:function(){},toFiniteNumber:function(t,e){return null!=t&&Number.isFinite(t=+t)?t:e},findKey:ye,global:be,isContextDefined:me,ALPHABET:je,generateString:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:je.ALPHA_DIGIT,n=\"\",r=e.length;t--;)n+=e[Math.random()*r|0];return n},isSpecCompliantForm:function(t){return!!(t&&ne(t.append)&&\"FormData\"===t[Symbol.toStringTag]&&t[Symbol.iterator])},toJSONObject:function(t){var e=new Array(10),n=function(t,r){if(ie(t)){if(e.indexOf(t)>=0)return;if(!(\"toJSON\"in t)){e[r]=t;var i=Yt(t)?[]:{};return ge(t,(function(t,e){var o=n(t,r+1);!Zt(o)&&(i[e]=o)})),e[r]=void 0,i}}return t};return n(t,0)},isAsyncFn:Ce,isThenable:function(t){return t&&(ie(t)||ne(t))&&ne(t.then)&&ne(t.catch)},setImmediate:Ne,asap:Fe};function $e(t,e,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=t,this.name=\"AxiosError\",e&&(this.code=e),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status?i.status:null)}De.inherits($e,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:De.toJSONObject(this.config),code:this.code,status:this.status}}});var Ue=$e.prototype,ze={};[\"ERR_BAD_OPTION_VALUE\",\"ERR_BAD_OPTION\",\"ECONNABORTED\",\"ETIMEDOUT\",\"ERR_NETWORK\",\"ERR_FR_TOO_MANY_REDIRECTS\",\"ERR_DEPRECATED\",\"ERR_BAD_RESPONSE\",\"ERR_BAD_REQUEST\",\"ERR_CANCELED\",\"ERR_NOT_SUPPORT\",\"ERR_INVALID_URL\"].forEach((function(t){ze[t]={value:t}})),Object.defineProperties($e,ze),Object.defineProperty(Ue,\"isAxiosError\",{value:!0}),$e.from=function(t,e,n,r,i,o){var a=Object.create(Ue);return De.toFlatObject(t,a,(function(t){return t!==Error.prototype}),(function(t){return\"isAxiosError\"!==t})),$e.call(a,t.message,e,n,r,i),a.cause=t,a.name=t.name,o&&Object.assign(a,o),a};function Be(t){return De.isPlainObject(t)||De.isArray(t)}function qe(t){return De.endsWith(t,\"[]\")?t.slice(0,-2):t}function Ie(t,e,n){return t?t.concat(e).map((function(t,e){return t=qe(t),!n&&e?\"[\"+t+\"]\":t})).join(n?\".\":\"\"):e}var Me=De.toFlatObject(De,{},null,(function(t){return/^is[A-Z]/.test(t)}));function He(t,e,n){if(!De.isObject(t))throw new TypeError(\"target must be an object\");e=e||new FormData;var r=(n=De.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(t,e){return!De.isUndefined(e[t])}))).metaTokens,i=n.visitor||c,o=n.dots,a=n.indexes,s=(n.Blob||\"undefined\"!=typeof Blob&&Blob)&&De.isSpecCompliantForm(e);if(!De.isFunction(i))throw new TypeError(\"visitor must be a function\");function u(t){if(null===t)return\"\";if(De.isDate(t))return t.toISOString();if(!s&&De.isBlob(t))throw new $e(\"Blob is not supported. Use a Buffer instead.\");return De.isArrayBuffer(t)||De.isTypedArray(t)?s&&\"function\"==typeof Blob?new Blob([t]):Buffer.from(t):t}function c(t,n,i){var s=t;if(t&&!i&&\"object\"===T(t))if(De.endsWith(n,\"{}\"))n=r?n:n.slice(0,-2),t=JSON.stringify(t);else if(De.isArray(t)&&function(t){return De.isArray(t)&&!t.some(Be)}(t)||(De.isFileList(t)||De.endsWith(n,\"[]\"))&&(s=De.toArray(t)))return n=qe(n),s.forEach((function(t,r){!De.isUndefined(t)&&null!==t&&e.append(!0===a?Ie([n],r,o):null===a?n:n+\"[]\",u(t))})),!1;return!!Be(t)||(e.append(Ie(i,n,o),u(t)),!1)}var l=[],h=Object.assign(Me,{defaultVisitor:c,convertValue:u,isVisitable:Be});if(!De.isObject(t))throw new TypeError(\"data must be an object\");return function t(n,r){if(!De.isUndefined(n)){if(-1!==l.indexOf(n))throw Error(\"Circular reference detected in \"+r.join(\".\"));l.push(n),De.forEach(n,(function(n,o){!0===(!(De.isUndefined(n)||null===n)&&i.call(e,n,De.isString(o)?o.trim():o,r,h))&&t(n,r?r.concat(o):[o])})),l.pop()}}(t),e}function Je(t){var e={\"!\":\"%21\",\"'\":\"%27\",\"(\":\"%28\",\")\":\"%29\",\"~\":\"%7E\",\"%20\":\"+\",\"%00\":\"\\0\"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,(function(t){return e[t]}))}function We(t,e){this._pairs=[],t&&He(t,this,e)}var Ke=We.prototype;function Ge(t){return encodeURIComponent(t).replace(/%3A/gi,\":\").replace(/%24/g,\"$\").replace(/%2C/gi,\",\").replace(/%20/g,\"+\").replace(/%5B/gi,\"[\").replace(/%5D/gi,\"]\")}function Ve(t,e,n){if(!e)return t;var r=n&&n.encode||Ge;De.isFunction(n)&&(n={serialize:n});var i,o=n&&n.serialize;if(i=o?o(e,n):De.isURLSearchParams(e)?e.toString():new We(e,n).toString(r)){var a=t.indexOf(\"#\");-1!==a&&(t=t.slice(0,a)),t+=(-1===t.indexOf(\"?\")?\"?\":\"&\")+i}return t}Ke.append=function(t,e){this._pairs.push([t,e])},Ke.toString=function(t){var e=t?function(e){return t.call(this,e,Je)}:Je;return this._pairs.map((function(t){return e(t[0])+\"=\"+e(t[1])}),\"\").join(\"&\")};var Xe=function(){return v((function t(){h(this,t),this.handlers=[]}),[{key:\"use\",value:function(t,e,n){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}},{key:\"eject\",value:function(t){this.handlers[t]&&(this.handlers[t]=null)}},{key:\"clear\",value:function(){this.handlers&&(this.handlers=[])}},{key:\"forEach\",value:function(t){De.forEach(this.handlers,(function(e){null!==e&&t(e)}))}}])}(),Qe={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Ye={isBrowser:!0,classes:{URLSearchParams:\"undefined\"!=typeof URLSearchParams?URLSearchParams:We,FormData:\"undefined\"!=typeof FormData?FormData:null,Blob:\"undefined\"!=typeof Blob?Blob:null},protocols:[\"http\",\"https\",\"file\",\"blob\",\"url\",\"data\"]},Ze=\"undefined\"!=typeof window&&\"undefined\"!=typeof document,tn=\"object\"===(\"undefined\"==typeof navigator?\"undefined\":T(navigator))&&navigator||void 0,en=Ze&&(!tn||[\"ReactNative\",\"NativeScript\",\"NS\"].indexOf(tn.product)<0),nn=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&\"function\"==typeof self.importScripts,rn=Ze&&window.location.href||\"http://localhost\",on=A(A({},Object.freeze({__proto__:null,hasBrowserEnv:Ze,hasStandardBrowserEnv:en,hasStandardBrowserWebWorkerEnv:nn,navigator:tn,origin:rn})),Ye);function an(t){function e(t,n,r,i){var o=t[i++];if(\"__proto__\"===o)return!0;var a=Number.isFinite(+o),s=i>=t.length;return o=!o&&De.isArray(r)?r.length:o,s?(De.hasOwnProp(r,o)?r[o]=[r[o],n]:r[o]=n,!a):(r[o]&&De.isObject(r[o])||(r[o]=[]),e(t,n,r[o],i)&&De.isArray(r[o])&&(r[o]=function(t){var e,n,r={},i=Object.keys(t),o=i.length;for(e=0;e-1,o=De.isObject(t);if(o&&De.isHTMLForm(t)&&(t=new FormData(t)),De.isFormData(t))return i?JSON.stringify(an(t)):t;if(De.isArrayBuffer(t)||De.isBuffer(t)||De.isStream(t)||De.isFile(t)||De.isBlob(t)||De.isReadableStream(t))return t;if(De.isArrayBufferView(t))return t.buffer;if(De.isURLSearchParams(t))return e.setContentType(\"application/x-www-form-urlencoded;charset=utf-8\",!1),t.toString();if(o){if(r.indexOf(\"application/x-www-form-urlencoded\")>-1)return function(t,e){return He(t,new on.classes.URLSearchParams,Object.assign({visitor:function(t,e,n,r){return on.isNode&&De.isBuffer(t)?(this.append(e,t.toString(\"base64\")),!1):r.defaultVisitor.apply(this,arguments)}},e))}(t,this.formSerializer).toString();if((n=De.isFileList(t))||r.indexOf(\"multipart/form-data\")>-1){var a=this.env&&this.env.FormData;return He(n?{\"files[]\":t}:t,a&&new a,this.formSerializer)}}return o||i?(e.setContentType(\"application/json\",!1),function(t,e){if(De.isString(t))try{return(e||JSON.parse)(t),De.trim(t)}catch(t){if(\"SyntaxError\"!==t.name)throw t}return(0,JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){var e=this.transitional||sn.transitional,n=e&&e.forcedJSONParsing,r=\"json\"===this.responseType;if(De.isResponse(t)||De.isReadableStream(t))return t;if(t&&De.isString(t)&&(n&&!this.responseType||r)){var i=!(e&&e.silentJSONParsing)&&r;try{return JSON.parse(t)}catch(t){if(i){if(\"SyntaxError\"===t.name)throw $e.from(t,$e.ERR_BAD_RESPONSE,this,null,this.response);throw t}}}return t}],timeout:0,xsrfCookieName:\"XSRF-TOKEN\",xsrfHeaderName:\"X-XSRF-TOKEN\",maxContentLength:-1,maxBodyLength:-1,env:{FormData:on.classes.FormData,Blob:on.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:\"application/json, text/plain, */*\",\"Content-Type\":void 0}}};De.forEach([\"delete\",\"get\",\"head\",\"post\",\"put\",\"patch\"],(function(t){sn.headers[t]={}}));var un=De.toObjectSet([\"age\",\"authorization\",\"content-length\",\"content-type\",\"etag\",\"expires\",\"from\",\"host\",\"if-modified-since\",\"if-unmodified-since\",\"last-modified\",\"location\",\"max-forwards\",\"proxy-authorization\",\"referer\",\"retry-after\",\"user-agent\"]),cn=Symbol(\"internals\");function ln(t){return t&&String(t).trim().toLowerCase()}function hn(t){return!1===t||null==t?t:De.isArray(t)?t.map(hn):String(t)}function fn(t,e,n,r,i){return De.isFunction(r)?r.call(this,e,n):(i&&(e=n),De.isString(e)?De.isString(r)?-1!==e.indexOf(r):De.isRegExp(r)?r.test(e):void 0:void 0)}var dn=function(){return v((function t(e){h(this,t),e&&this.set(e)}),[{key:\"set\",value:function(t,e,n){var r=this;function i(t,e,n){var i=ln(e);if(!i)throw new Error(\"header name must be a non-empty string\");var o=De.findKey(r,i);(!o||void 0===r[o]||!0===n||void 0===n&&!1!==r[o])&&(r[o||e]=hn(t))}var o=function(t,e){return De.forEach(t,(function(t,n){return i(t,n,e)}))};if(De.isPlainObject(t)||t instanceof this.constructor)o(t,e);else if(De.isString(t)&&(t=t.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim()))o(function(t){var e,n,r,i={};return t&&t.split(\"\\n\").forEach((function(t){r=t.indexOf(\":\"),e=t.substring(0,r).trim().toLowerCase(),n=t.substring(r+1).trim(),!e||i[e]&&un[e]||(\"set-cookie\"===e?i[e]?i[e].push(n):i[e]=[n]:i[e]=i[e]?i[e]+\", \"+n:n)})),i}(t),e);else if(De.isHeaders(t)){var a,s=p(t.entries());try{for(s.s();!(a=s.n()).done;){var u=R(a.value,2),c=u[0];i(u[1],c,n)}}catch(t){s.e(t)}finally{s.f()}}else null!=t&&i(e,t,n);return this}},{key:\"get\",value:function(t,e){if(t=ln(t)){var n=De.findKey(this,t);if(n){var r=this[n];if(!e)return r;if(!0===e)return function(t){for(var e,n=Object.create(null),r=/([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;e=r.exec(t);)n[e[1]]=e[2];return n}(r);if(De.isFunction(e))return e.call(this,r,n);if(De.isRegExp(e))return e.exec(r);throw new TypeError(\"parser must be boolean|regexp|function\")}}}},{key:\"has\",value:function(t,e){if(t=ln(t)){var n=De.findKey(this,t);return!(!n||void 0===this[n]||e&&!fn(0,this[n],n,e))}return!1}},{key:\"delete\",value:function(t,e){var n=this,r=!1;function i(t){if(t=ln(t)){var i=De.findKey(n,t);!i||e&&!fn(0,n[i],i,e)||(delete n[i],r=!0)}}return De.isArray(t)?t.forEach(i):i(t),r}},{key:\"clear\",value:function(t){for(var e=Object.keys(this),n=e.length,r=!1;n--;){var i=e[n];t&&!fn(0,this[i],i,t,!0)||(delete this[i],r=!0)}return r}},{key:\"normalize\",value:function(t){var e=this,n={};return De.forEach(this,(function(r,i){var o=De.findKey(n,i);if(o)return e[o]=hn(r),void delete e[i];var a=t?function(t){return t.trim().toLowerCase().replace(/([a-z\\d])(\\w*)/g,(function(t,e,n){return e.toUpperCase()+n}))}(i):String(i).trim();a!==i&&delete e[i],e[a]=hn(r),n[a]=!0})),this}},{key:\"concat\",value:function(){for(var t,e=arguments.length,n=new Array(e),r=0;r1?n-1:0),i=1;i2&&void 0!==arguments[2]?arguments[2]:3,r=0,i=function(t,e){t=t||10;var n,r=new Array(t),i=new Array(t),o=0,a=0;return e=void 0!==e?e:1e3,function(s){var u=Date.now(),c=i[a];n||(n=u),r[o]=s,i[o]=u;for(var l=a,h=0;l!==o;)h+=r[l++],l%=t;if((o=(o+1)%t)===a&&(a=(a+1)%t),!(u-n1&&void 0!==arguments[1]?arguments[1]:Date.now();i=o,n=null,r&&(clearTimeout(r),r=null),t.apply(null,e)};return[function(){for(var t=Date.now(),e=t-i,s=arguments.length,u=new Array(s),c=0;c=o?a(u,t):(n=u,r||(r=setTimeout((function(){r=null,a(n)}),o-e)))},function(){return n&&a(n)}]}((function(n){var o=n.loaded,a=n.lengthComputable?n.total:void 0,s=o-r,u=i(s);r=o;var c=g({loaded:o,total:a,progress:a?o/a:void 0,bytes:s,rate:u||void 0,estimated:u&&a&&o<=a?(a-o)/u:void 0,event:n,lengthComputable:null!=a},e?\"download\":\"upload\",!0);t(c)}),n)},mn=function(t,e){var n=null!=t;return[function(r){return e[0]({lengthComputable:n,total:t,loaded:r})},e[1]]},wn=function(t){return function(){for(var e=arguments.length,n=new Array(e),r=0;r1?e-1:0),r=1;r1?\"since :\\n\"+s.map(Wn).join(\"\\n\"):\" \"+Wn(s[0]):\"as no adapter specified\"),\"ERR_NOT_SUPPORT\")}return n};function Vn(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new gn(null,t)}function Xn(t){return Vn(t),t.headers=dn.from(t.headers),t.data=vn.call(t,t.transformRequest),-1!==[\"post\",\"put\",\"patch\"].indexOf(t.method)&&t.headers.setContentType(\"application/x-www-form-urlencoded\",!1),Gn(t.adapter||sn.adapter)(t).then((function(e){return Vn(t),e.data=vn.call(t,t.transformResponse,e),e.headers=dn.from(e.headers),e}),(function(e){return pn(e)||(Vn(t),e&&e.response&&(e.response.data=vn.call(t,t.transformResponse,e.response),e.response.headers=dn.from(e.response.headers))),Promise.reject(e)}))}var Qn=\"1.7.9\",Yn={};[\"object\",\"boolean\",\"number\",\"function\",\"string\",\"symbol\"].forEach((function(t,e){Yn[t]=function(n){return T(n)===t||\"a\"+(e<1?\"n \":\" \")+t}}));var Zn={};Yn.transitional=function(t,e,n){function r(t,e){return\"[Axios v1.7.9] Transitional option '\"+t+\"'\"+e+(n?\". \"+n:\"\")}return function(n,i,o){if(!1===t)throw new $e(r(i,\" has been removed\"+(e?\" in \"+e:\"\")),$e.ERR_DEPRECATED);return e&&!Zn[i]&&(Zn[i]=!0,console.warn(r(i,\" has been deprecated since v\"+e+\" and will be removed in the near future\"))),!t||t(n,i,o)}},Yn.spelling=function(t){return function(e,n){return console.warn(\"\".concat(n,\" is likely a misspelling of \").concat(t)),!0}};var tr={assertOptions:function(t,e,n){if(\"object\"!==T(t))throw new $e(\"options must be an object\",$e.ERR_BAD_OPTION_VALUE);for(var r=Object.keys(t),i=r.length;i-- >0;){var o=r[i],a=e[o];if(a){var s=t[o],u=void 0===s||a(s,o,t);if(!0!==u)throw new $e(\"option \"+o+\" must be \"+u,$e.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new $e(\"Unknown option \"+o,$e.ERR_BAD_OPTION)}},validators:Yn},er=tr.validators,nr=function(){return v((function t(e){h(this,t),this.defaults=e,this.interceptors={request:new Xe,response:new Xe}}),[{key:\"request\",value:(t=u(x().mark((function t(e,n){var r,i;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,this._request(e,n);case 3:return t.abrupt(\"return\",t.sent);case 6:if(t.prev=6,t.t0=t.catch(0),t.t0 instanceof Error){r={},Error.captureStackTrace?Error.captureStackTrace(r):r=new Error,i=r.stack?r.stack.replace(/^.+\\n/,\"\"):\"\";try{t.t0.stack?i&&!String(t.t0.stack).endsWith(i.replace(/^.+\\n.+\\n/,\"\"))&&(t.t0.stack+=\"\\n\"+i):t.t0.stack=i}catch(t){}}throw t.t0;case 10:case\"end\":return t.stop()}}),t,this,[[0,6]])}))),function(e,n){return t.apply(this,arguments)})},{key:\"_request\",value:function(t,e){\"string\"==typeof t?(e=e||{}).url=t:e=t||{};var n=e=On(this.defaults,e),r=n.transitional,i=n.paramsSerializer,o=n.headers;void 0!==r&&tr.assertOptions(r,{silentJSONParsing:er.transitional(er.boolean),forcedJSONParsing:er.transitional(er.boolean),clarifyTimeoutError:er.transitional(er.boolean)},!1),null!=i&&(De.isFunction(i)?e.paramsSerializer={serialize:i}:tr.assertOptions(i,{encode:er.function,serialize:er.function},!0)),tr.assertOptions(e,{baseUrl:er.spelling(\"baseURL\"),withXsrfToken:er.spelling(\"withXSRFToken\")},!0),e.method=(e.method||this.defaults.method||\"get\").toLowerCase();var a=o&&De.merge(o.common,o[e.method]);o&&De.forEach([\"delete\",\"get\",\"head\",\"post\",\"put\",\"patch\",\"common\"],(function(t){delete o[t]})),e.headers=dn.concat(a,o);var s=[],u=!0;this.interceptors.request.forEach((function(t){\"function\"==typeof t.runWhen&&!1===t.runWhen(e)||(u=u&&t.synchronous,s.unshift(t.fulfilled,t.rejected))}));var c,l=[];this.interceptors.response.forEach((function(t){l.push(t.fulfilled,t.rejected)}));var h,f=0;if(!u){var d=[Xn.bind(this),void 0];for(d.unshift.apply(d,s),d.push.apply(d,l),h=d.length,c=Promise.resolve(e);f0;)r._listeners[e](t);r._listeners=null}})),this.promise.then=function(t){var e,n=new Promise((function(t){r.subscribe(t),e=t})).then(t);return n.cancel=function(){r.unsubscribe(e)},n},e((function(t,e,i){r.reason||(r.reason=new gn(t,e,i),n(r.reason))}))}return v(t,[{key:\"throwIfRequested\",value:function(){if(this.reason)throw this.reason}},{key:\"subscribe\",value:function(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t]}},{key:\"unsubscribe\",value:function(t){if(this._listeners){var e=this._listeners.indexOf(t);-1!==e&&this._listeners.splice(e,1)}}},{key:\"toAbortSignal\",value:function(){var t=this,e=new AbortController,n=function(t){e.abort(t)};return this.subscribe(n),e.signal.unsubscribe=function(){return t.unsubscribe(n)},e.signal}}],[{key:\"source\",value:function(){var e;return{token:new t((function(t){e=t})),cancel:e}}}])}();var ir={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(ir).forEach((function(t){var e=R(t,2),n=e[0],r=e[1];ir[r]=n}));var or=function t(e){var n=new nr(e),r=Jt(nr.prototype.request,n);return De.extend(r,nr.prototype,n,{allOwnKeys:!0}),De.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return t(On(e,n))},r}(sn);or.Axios=nr,or.CanceledError=gn,or.CancelToken=rr,or.isCancel=pn,or.VERSION=Qn,or.toFormData=He,or.AxiosError=$e,or.Cancel=or.CanceledError,or.all=function(t){return Promise.all(t)},or.spread=function(t){return function(e){return t.apply(null,e)}},or.isAxiosError=function(t){return De.isObject(t)&&!0===t.isAxiosError},or.mergeConfig=On,or.AxiosHeaders=dn,or.formToJSON=function(t){return an(De.isHTMLForm(t)?new FormData(t):t)},or.getAdapter=Gn,or.HttpStatusCode=ir,or.default=or,or.Axios,or.AxiosError,or.CanceledError,or.isCancel,or.CancelToken,or.VERSION,or.all,or.Cancel,or.isAxiosError,or.spread,or.toFormData,or.AxiosHeaders,or.HttpStatusCode,or.formToJSON,or.getAdapter,or.mergeConfig;var ar=function(){function t(e){var n;return h(this,t),(n=l(this,t,[e])).axiosInstance=or.create({baseURL:\"\".concat(n.host,\"/\").concat(n.namespace),headers:{Authorization:\"Bearer \".concat(e.publicKey),\"Content-Type\":\"application/json\",\"User-Agent\":\"@fleetbase/sdk;node\"}}),n.axiosInstance.interceptors.response.use((function(t){return t.data}),(function(t){if(t.response){var e=t.response.data;if(V(e.errors)&&e.errors.length)throw new Error(e.errors[0]);if(e.error)throw new Error(e.error)}throw t})),n}return b(t,Mt),v(t,[{key:\"setHeaders\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.axiosInstance.defaults.headers.common=A(A({},this.axiosInstance.defaults.headers.common),t),this}},{key:\"request\",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axiosInstance.request(A({method:t,url:e},n))}},{key:\"get\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(\"GET\",t,A({params:e},n))}},{key:\"post\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(\"POST\",t,A({data:e},n))}},{key:\"put\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(\"PUT\",t,A({data:e},n))}},{key:\"delete\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(\"DELETE\",t,e)}},{key:\"patch\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(\"PATCH\",t,A({data:e},n))}}])}();q(\"adapter\",\"NodeAdapter\",ar);var sr=function(){function t(){return h(this,t),l(this,t,arguments)}return b(t,Mt),v(t)}();q(\"adapter\",\"EmberJsAdapter\",sr);var ur=function(){function t(e){var n,r,i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(h(this,t),this.version=null!==(n=o.version)&&void 0!==n?n:\"v1\",this.options={version:this.version,host:null!==(r=o.host)&&void 0!==r?r:\"https://api.fleetbase.io\",namespace:null!==(i=o.namespace)&&void 0!==i?i:this.version,debug:a,publicKey:e},\"string\"!=typeof e||0===e.length)throw new Error(\"⚠️ Invalid public key given to Fleetbase SDK\");if(!lt()&&e.toLowerCase().startsWith(\"$\"))throw new Error(\"Secret key provided. You must use a public key with Fleetbase Javascript SDK!\");this.adapter=o.adapter||ht(this.options),this.orders=new Et(\"order\",this.adapter).extendActions(At),this.entities=new Et(\"entity\",this.adapter),this.places=new Et(\"place\",this.adapter),this.drivers=new Et(\"driver\",this.adapter).extendActions(Nt),this.vehicles=new Et(\"vehicle\",this.adapter),this.vendors=new Et(\"vendor\",this.adapter),this.contacts=new Et(\"contact\",this.adapter),this.serviceAreas=new Et(\"service-area\",this.adapter),this.zones=new Et(\"zone\",this.adapter),this.fleets=new Et(\"fleet\",this.adapter),this.organizations=new Et(\"organization\",this.adapter).extendActions(Pt)}return v(t,[{key:\"setAdapter\",value:function(t){this.adapter=t}},{key:\"getAdapter\",value:function(){return this.adapter}}],[{key:\"newInstance\",value:function(){return f(t,Array.prototype.slice.call(arguments))}}])}();export{Mt as Adapter,Ht as BrowserAdapter,at as Collection,$t as Contact,Ft as Driver,sr as EmberJsAdapter,Rt as Entity,It as Fleet,ft as GoogleAddress,ar as NodeAdapter,xt as Order,Lt as Organization,Ot as Payload,St as Place,dt as Point,J as Resolver,kt as Resource,zt as ServiceArea,qt as ServiceQuote,Bt as ServiceRate,Et as Store,mt as StoreActions,Tt as TrackingStatus,_t as Vehicle,Dt as Vendor,jt as Waypoint,Ut as Zone,$ as camelize,z as classify,ot as createCollection,H as createResource,M as createStore,bt as createStoreActions,U as dasherize,ur as default,ht as detectAdapter,yt as extendStoreActions,ut as isLatitude,ct as isLongitude,lt as isNodeEnvironment,wt as isResource,W as lookup,F as pluralize,q as register,K as resolve,G as resolveResource,D as singularize};\n//# sourceMappingURL=fleetbase.js.map\n","import { Store, classify, extendStoreActions, lookup } from '@fleetbase/sdk';\n\nexport default class StorefrontStore extends Store {\n constructor() {\n super(...arguments);\n }\n\n extendActions(actions = []) {\n return extendStoreActions(this, actions);\n }\n\n serialize(json) {\n return lookup('resource', classify(this.resource), json, this.adapter);\n }\n}\n","export function formatCurrency(amount = 0, currency = 'USD', currencyDisplay = 'symbol') {\n return new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency,\n currencyDisplay,\n }).format(amount);\n}\n\nexport default formatCurrency;\n","export function isEmpty(obj) {\n const none = obj === null || obj === undefined;\n if (none) {\n return none;\n }\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n const objectType = typeof obj;\n\n if (objectType === 'object') {\n const { size } = obj;\n if (typeof size === 'number') {\n return !size;\n }\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\n }\n\n if (objectType === 'object') {\n const { length } = obj;\n if (typeof length === 'number') {\n return !length;\n }\n }\n\n return false;\n}\n\nexport default isEmpty;\n","const { isArray } = Array;\n\nexport { isArray };\n","import { Resource, register } from '@fleetbase/sdk';\nimport StorefrontStore from './store.js';\n\nexport default class StorefrontResource extends Resource {\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new StorefrontStore(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions,\n });\n\n return this;\n }\n}\n\nregister('resource', 'StorefrontResource', StorefrontResource);\n","import Resource from '../resource.js';\nimport { StoreActions, register } from '@fleetbase/sdk';\n\nexport const reviewActions = new StoreActions({\n count: function (storeId, options = {}) {\n const params = {};\n\n if (storeId) {\n params.store = storeId;\n }\n\n return this.adapter.get(`${this.namespace}/count`, params, options);\n },\n});\n\nexport default class Review extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'review', options);\n }\n\n getMedia() {\n // @todo\n }\n\n getPhotos() {\n // @todo\n }\n\n getVideos() {\n // @todo\n }\n}\n\nregister('resource', 'Review', Review);\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n\n/**\n * @constant\n * @name constructFromSymbol\n * @summary Symbol enabling Date extensions to inherit properties from the reference date.\n *\n * The symbol is used to enable the `constructFrom` function to construct a date\n * using a reference date and a value. It allows to transfer extra properties\n * from the reference date to the new date. It's useful for extensions like\n * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as\n * a constructor argument.\n */\nexport const constructFromSymbol = Symbol.for(\"constructDateFrom\");\n","import { constructFromSymbol } from \"./constants.js\";\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * Starting from v3.7.0, it allows to construct a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from \"./constructFrom/date-fns\";\n *\n * // A function that clones a date preserving the original type\n * function cloneDate(date: DateType): DateType {\n * return constructFrom(\n * date, // Use constructor from the given date\n * date.getTime() // Use the date value to create a new date\n * );\n * }\n */\nexport function constructFrom(date, value) {\n if (typeof date === \"function\") return date(value);\n\n if (date && typeof date === \"object\" && constructFromSymbol in date)\n return date[constructFromSymbol](value);\n\n if (date instanceof Date) return new date.constructor(value);\n\n return new Date(value);\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * Starting from v3.7.0, it clones a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument, context) {\n // [TODO] Get rid of `toDate` or `constructFrom`?\n return constructFrom(context || argument, argument);\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addDays} function options.\n */\n\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be added.\n * @param options - An object with options\n *\n * @returns The new date with the days added\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nexport function addDays(date, amount, options) {\n const _date = toDate(date, options?.in);\n if (isNaN(amount)) return constructFrom(options?.in || date, NaN);\n\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n if (!amount) return _date;\n\n _date.setDate(_date.getDate() + amount);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addDays;\n","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date, options?.in);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n","import { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfISOWeek} function options.\n */\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfISOWeek(date, options) {\n return startOfWeek(date, { ...options, weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeek;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeekYear} function options.\n */\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport function getISOWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const fourthOfJanuaryOfNextYear = constructFrom(_date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n\n const fourthOfJanuaryOfThisYear = constructFrom(_date, 0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getISOWeekYear;\n","import { toDate } from \"../toDate.js\";\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const _date = toDate(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfDay} function options.\n */\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport function startOfDay(date, options) {\n const _date = toDate(date, options?.in);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n","import { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { millisecondsInDay } from \"./constants.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link differenceInCalendarDays} function options.\n */\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - The options object\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport function differenceInCalendarDays(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n\n const laterStartOfDay = startOfDay(laterDate_);\n const earlierStartOfDay = startOfDay(earlierDate_);\n\n const laterTimestamp =\n +laterStartOfDay - getTimezoneOffsetInMilliseconds(laterStartOfDay);\n const earlierTimestamp =\n +earlierStartOfDay - getTimezoneOffsetInMilliseconds(earlierStartOfDay);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((laterTimestamp - earlierTimestamp) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n","import { constructFrom } from \"../constructFrom.js\";\n\nexport function normalizeDates(context, ...dates) {\n const normalize = constructFrom.bind(\n null,\n context || dates.find((date) => typeof date === \"object\"),\n );\n return dates.map(normalize);\n}\n","import { isDate } from \"./isDate.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertible into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport function isValid(date) {\n return !((!isDate(date) && typeof date !== \"number\") || isNaN(+toDate(date)));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n","/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport function isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // [TODO] -- I challenge you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // [TODO] -- I challenge you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // [TODO] I challenge you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","import { formatDistance } from \"./en-US/_lib/formatDistance.js\";\nimport { formatLong } from \"./en-US/_lib/formatLong.js\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.js\";\nimport { localize } from \"./en-US/_lib/localize.js\";\nimport { match } from \"./en-US/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","import { differenceInCalendarDays } from \"./differenceInCalendarDays.js\";\nimport { startOfYear } from \"./startOfYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDayOfYear} function options.\n */\n\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * const result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nexport function getDayOfYear(date, options) {\n const _date = toDate(date, options?.in);\n const diff = differenceInCalendarDays(_date, startOfYear(_date));\n const dayOfYear = diff + 1;\n return dayOfYear;\n}\n\n// Fallback for modularized imports:\nexport default getDayOfYear;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfYear} function options.\n */\n\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport function startOfYear(date, options) {\n const date_ = toDate(date, options?.in);\n date_.setFullYear(date_.getFullYear(), 0, 1);\n date_.setHours(0, 0, 0, 0);\n return date_;\n}\n\n// Fallback for modularized imports:\nexport default startOfYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { startOfISOWeekYear } from \"./startOfISOWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeek} function options.\n */\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport function getISOWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getISOWeek;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { getISOWeekYear } from \"./getISOWeekYear.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\n\n/**\n * The {@link startOfISOWeekYear} function options.\n */\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfISOWeekYear(date, options) {\n const year = getISOWeekYear(date, options);\n const fourthOfJanuary = constructFrom(options?.in || date, 0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n return startOfISOWeek(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeekYear;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport function getWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const firstWeekOfNextYear = constructFrom(options?.in || date, 0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n\n const firstWeekOfThisYear = constructFrom(options?.in || date, 0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n\n if (+_date >= +startOfNextYear) {\n return year + 1;\n } else if (+_date >= +startOfThisYear) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getWeekYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { startOfWeekYear } from \"./startOfWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\nexport function getWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeek;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getWeekYear } from \"./getWeekYear.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = getWeekYear(date, options);\n const firstWeek = constructFrom(options?.in || date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = startOfWeek(firstWeek, options);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n","export function addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? \"-\" : \"\";\n const output = Math.abs(number).toString().padStart(targetLength, \"0\");\n return sign + output;\n}\n","import { addLeadingZeros } from \"../addLeadingZeros.js\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nexport const lightFormatters = {\n // Year\n y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === \"yy\" ? year % 100 : year, token.length);\n },\n\n // Month\n M(date, token) {\n const month = date.getMonth();\n return token === \"M\" ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n\n // Day of the month\n d(date, token) {\n return addLeadingZeros(date.getDate(), token.length);\n },\n\n // AM or PM\n a(date, token) {\n const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return dayPeriodEnumValue.toUpperCase();\n case \"aaa\":\n return dayPeriodEnumValue;\n case \"aaaaa\":\n return dayPeriodEnumValue[0];\n case \"aaaa\":\n default:\n return dayPeriodEnumValue === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n\n // Hour [1-12]\n h(date, token) {\n return addLeadingZeros(date.getHours() % 12 || 12, token.length);\n },\n\n // Hour [0-23]\n H(date, token) {\n return addLeadingZeros(date.getHours(), token.length);\n },\n\n // Minute\n m(date, token) {\n return addLeadingZeros(date.getMinutes(), token.length);\n },\n\n // Second\n s(date, token) {\n return addLeadingZeros(date.getSeconds(), token.length);\n },\n\n // Fraction of second\n S(date, token) {\n const numberOfDigits = token.length;\n const milliseconds = date.getMilliseconds();\n const fractionalSeconds = Math.trunc(\n milliseconds * Math.pow(10, numberOfDigits - 3),\n );\n return addLeadingZeros(fractionalSeconds, token.length);\n },\n};\n","import { getDayOfYear } from \"../../getDayOfYear.js\";\nimport { getISOWeek } from \"../../getISOWeek.js\";\nimport { getISOWeekYear } from \"../../getISOWeekYear.js\";\nimport { getWeek } from \"../../getWeek.js\";\nimport { getWeekYear } from \"../../getWeekYear.js\";\n\nimport { addLeadingZeros } from \"../addLeadingZeros.js\";\nimport { lightFormatters } from \"./lightFormatters.js\";\n\nconst dayPeriodEnum = {\n am: \"am\",\n pm: \"pm\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nexport const formatters = {\n // Era\n G: function (date, token, localize) {\n const era = date.getFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return localize.era(era, { width: \"abbreviated\" });\n // A, B\n case \"GGGGG\":\n return localize.era(era, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return localize.era(era, { width: \"wide\" });\n }\n },\n\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === \"yo\") {\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, { unit: \"year\" });\n }\n\n return lightFormatters.y(date, token);\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n const signedWeekYear = getWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === \"YY\") {\n const twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === \"Yo\") {\n return localize.ordinalNumber(weekYear, { unit: \"year\" });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n\n // ISO week-numbering year\n R: function (date, token) {\n const isoWeekYear = getISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n const year = date.getFullYear();\n return addLeadingZeros(year, token.length);\n },\n\n // Quarter\n Q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"QQ\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"qq\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // Month\n M: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n case \"M\":\n case \"MM\":\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // J, F, ..., D\n case \"MMMMM\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return localize.month(month, { width: \"wide\", context: \"formatting\" });\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return String(month + 1);\n // 01, 02, ..., 12\n case \"LL\":\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // J, F, ..., D\n case \"LLLLL\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return localize.month(month, { width: \"wide\", context: \"standalone\" });\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n const week = getWeek(date, options);\n\n if (token === \"wo\") {\n return localize.ordinalNumber(week, { unit: \"week\" });\n }\n\n return addLeadingZeros(week, token.length);\n },\n\n // ISO week of year\n I: function (date, token, localize) {\n const isoWeek = getISOWeek(date);\n\n if (token === \"Io\") {\n return localize.ordinalNumber(isoWeek, { unit: \"week\" });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n\n // Day of the month\n d: function (date, token, localize) {\n if (token === \"do\") {\n return localize.ordinalNumber(date.getDate(), { unit: \"date\" });\n }\n\n return lightFormatters.d(date, token);\n },\n\n // Day of year\n D: function (date, token, localize) {\n const dayOfYear = getDayOfYear(date);\n\n if (token === \"Do\") {\n return localize.ordinalNumber(dayOfYear, { unit: \"dayOfYear\" });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n\n // Day of week\n E: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"EEEEE\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"EEEE\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case \"e\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"ee\":\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case \"eo\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"eee\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"eeeee\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"eeee\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case \"c\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"cc\":\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case \"co\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"ccc\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // T\n case \"ccccc\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"standalone\",\n });\n // Tuesday\n case \"cccc\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // ISO day of week\n i: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case \"i\":\n return String(isoDayOfWeek);\n // 02\n case \"ii\":\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case \"io\":\n return localize.ordinalNumber(isoDayOfWeek, { unit: \"day\" });\n // Tue\n case \"iii\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"iiiii\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"iiiiii\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"iiii\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n const hours = date.getHours();\n const dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"aaa\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"aaaaa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n }\n\n switch (token) {\n case \"b\":\n case \"bb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"bbb\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"bbbbb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"BBBBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === \"ho\") {\n let hours = date.getHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return lightFormatters.h(date, token);\n },\n\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === \"Ho\") {\n return localize.ordinalNumber(date.getHours(), { unit: \"hour\" });\n }\n\n return lightFormatters.H(date, token);\n },\n\n // Hour [0-11]\n K: function (date, token, localize) {\n const hours = date.getHours() % 12;\n\n if (token === \"Ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Hour [1-24]\n k: function (date, token, localize) {\n let hours = date.getHours();\n if (hours === 0) hours = 24;\n\n if (token === \"ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Minute\n m: function (date, token, localize) {\n if (token === \"mo\") {\n return localize.ordinalNumber(date.getMinutes(), { unit: \"minute\" });\n }\n\n return lightFormatters.m(date, token);\n },\n\n // Second\n s: function (date, token, localize) {\n if (token === \"so\") {\n return localize.ordinalNumber(date.getSeconds(), { unit: \"second\" });\n }\n\n return lightFormatters.s(date, token);\n },\n\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return \"Z\";\n }\n\n switch (token) {\n // Hours and optional minutes\n case \"X\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case \"XXXX\":\n case \"XX\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case \"XXXXX\":\n case \"XXX\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case \"x\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case \"xxxx\":\n case \"xx\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case \"xxxxx\":\n case \"xxx\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"O\":\n case \"OO\":\n case \"OOO\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"OOOO\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"zzzz\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Seconds timestamp\n t: function (date, token, _localize) {\n const timestamp = Math.trunc(+date / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n\n // Milliseconds timestamp\n T: function (date, token, _localize) {\n return addLeadingZeros(+date, token.length);\n },\n};\n\nfunction formatTimezoneShort(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = Math.trunc(absOffset / 60);\n const minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n if (offset % 60 === 0) {\n const sign = offset > 0 ? \"-\" : \"+\";\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, delimiter);\n}\n\nfunction formatTimezone(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2);\n const minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n","const dateLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"P\":\n return formatLong.date({ width: \"short\" });\n case \"PP\":\n return formatLong.date({ width: \"medium\" });\n case \"PPP\":\n return formatLong.date({ width: \"long\" });\n case \"PPPP\":\n default:\n return formatLong.date({ width: \"full\" });\n }\n};\n\nconst timeLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"p\":\n return formatLong.time({ width: \"short\" });\n case \"pp\":\n return formatLong.time({ width: \"medium\" });\n case \"ppp\":\n return formatLong.time({ width: \"long\" });\n case \"pppp\":\n default:\n return formatLong.time({ width: \"full\" });\n }\n};\n\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n const matchResult = pattern.match(/(P+)(p+)?/) || [];\n const datePattern = matchResult[1];\n const timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n let dateTimeFormat;\n\n switch (datePattern) {\n case \"P\":\n dateTimeFormat = formatLong.dateTime({ width: \"short\" });\n break;\n case \"PP\":\n dateTimeFormat = formatLong.dateTime({ width: \"medium\" });\n break;\n case \"PPP\":\n dateTimeFormat = formatLong.dateTime({ width: \"long\" });\n break;\n case \"PPPP\":\n default:\n dateTimeFormat = formatLong.dateTime({ width: \"full\" });\n break;\n }\n\n return dateTimeFormat\n .replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong))\n .replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\n\nexport const longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter,\n};\n","const dayOfYearTokenRE = /^D+$/;\nconst weekYearTokenRE = /^Y+$/;\n\nconst throwTokens = [\"D\", \"DD\", \"YY\", \"YYYY\"];\n\nexport function isProtectedDayOfYearToken(token) {\n return dayOfYearTokenRE.test(token);\n}\n\nexport function isProtectedWeekYearToken(token) {\n return weekYearTokenRE.test(token);\n}\n\nexport function warnOrThrowProtectedError(token, format, input) {\n const _message = message(token, format, input);\n console.warn(_message);\n if (throwTokens.includes(token)) throw new RangeError(_message);\n}\n\nfunction message(token, format, input) {\n const subject = token[0] === \"Y\" ? \"years\" : \"days of the month\";\n return `Use \\`${token.toLowerCase()}\\` instead of \\`${token}\\` (in \\`${format}\\`) for formatting ${subject} to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;\n}\n","import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { formatters } from \"./_lib/format/formatters.js\";\nimport { longFormatters } from \"./_lib/format/longFormatters.js\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.js\";\nimport { isValid } from \"./isValid.js\";\nimport { toDate } from \"./toDate.js\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { formatters, longFormatters };\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\nexport { format as formatDate };\n\n/**\n * The {@link format} function options.\n */\n\n/**\n * @name format\n * @alias formatDate\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)\n * and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nexport function format(date, formatStr, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const originalDate = toDate(date, options?.in);\n\n if (!isValid(originalDate)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let parts = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp)\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return { isToken: false, value: \"'\" };\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return { isToken: false, value: cleanEscapedString(substring) };\n }\n\n if (formatters[firstCharacter]) {\n return { isToken: true, value: substring };\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return { isToken: false, value: substring };\n });\n\n // invoke localize preprocessor (only for french locales at the moment)\n if (locale.localize.preprocessor) {\n parts = locale.localize.preprocessor(originalDate, parts);\n }\n\n const formatterOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n return parts\n .map((part) => {\n if (!part.isToken) return part.value;\n\n const token = part.value;\n\n if (\n (!options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)) ||\n (!options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token))\n ) {\n warnOrThrowProtectedError(token, formatStr, String(date));\n }\n\n const formatter = formatters[token[0]];\n return formatter(originalDate, token, locale.localize, formatterOptions);\n })\n .join(\"\");\n}\n\nfunction cleanEscapedString(input) {\n const matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default format;\n","import { constructFrom } from \"../../constructFrom.js\";\nimport { transpose } from \"../../transpose.js\";\n\nconst TIMEZONE_UNIT_PRIORITY = 10;\n\nexport class Setter {\n subPriority = 0;\n\n validate(_utcDate, _options) {\n return true;\n }\n}\n\nexport class ValueSetter extends Setter {\n constructor(\n value,\n\n validateValue,\n\n setValue,\n\n priority,\n subPriority,\n ) {\n super();\n this.value = value;\n this.validateValue = validateValue;\n this.setValue = setValue;\n this.priority = priority;\n if (subPriority) {\n this.subPriority = subPriority;\n }\n }\n\n validate(date, options) {\n return this.validateValue(date, this.value, options);\n }\n\n set(date, flags, options) {\n return this.setValue(date, flags, this.value, options);\n }\n}\n\nexport class DateTimezoneSetter extends Setter {\n priority = TIMEZONE_UNIT_PRIORITY;\n subPriority = -1;\n\n constructor(context, reference) {\n super();\n this.context = context || ((date) => constructFrom(reference, date));\n }\n\n set(date, flags) {\n if (flags.timestampIsSet) return date;\n return constructFrom(date, transpose(date, this.context));\n }\n}\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name transpose\n * @category Generic Helpers\n * @summary Transpose the date to the given constructor.\n *\n * @description\n * The function transposes the date to the given constructor. It helps you\n * to transpose the date in the system time zone to say `UTCDate` or any other\n * date extension.\n *\n * @typeParam InputDate - The input `Date` type derived from the passed argument.\n * @typeParam ResultDate - The result `Date` type derived from the passed constructor.\n *\n * @param date - The date to use values from\n * @param constructor - The date constructor to use\n *\n * @returns Date transposed to the given constructor\n *\n * @example\n * // Create July 10, 2022 00:00 in locale time zone\n * const date = new Date(2022, 6, 10)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0800 (Singapore Standard Time)'\n *\n * @example\n * // Transpose the date to July 10, 2022 00:00 in UTC\n * transpose(date, UTCDate)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0000 (Coordinated Universal Time)'\n */\nexport function transpose(date, constructor) {\n const date_ = isConstructor(constructor)\n ? new constructor(0)\n : constructFrom(constructor, 0);\n date_.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());\n date_.setHours(\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds(),\n );\n return date_;\n}\n\nfunction isConstructor(constructor) {\n return (\n typeof constructor === \"function\" &&\n constructor.prototype?.constructor === constructor\n );\n}\n\n// Fallback for modularized imports:\nexport default transpose;\n","import { ValueSetter } from \"./Setter.js\";\n\nexport class Parser {\n run(dateString, token, match, options) {\n const result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n\n return {\n setter: new ValueSetter(\n result.value,\n this.validate,\n this.set,\n this.priority,\n this.subPriority,\n ),\n rest: result.rest,\n };\n }\n\n validate(_utcDate, _value, _options) {\n return true;\n }\n}\n","import { Parser } from \"../Parser.js\";\n\nexport class EraParser extends Parser {\n priority = 140;\n\n parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return (\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n\n // A, B\n case \"GGGGG\":\n return match.era(dateString, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return (\n match.era(dateString, { width: \"wide\" }) ||\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n }\n }\n\n set(date, flags, value) {\n flags.era = value;\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"R\", \"u\", \"t\", \"T\"];\n}\n","export const numericPatterns = {\n month: /^(1[0-2]|0?\\d)/, // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/, // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/, // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/, // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/, // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/, // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/, // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/, // 0 to 12\n minute: /^[0-5]?\\d/, // 0 to 59\n second: /^[0-5]?\\d/, // 0 to 59\n\n singleDigit: /^\\d/, // 0 to 9\n twoDigits: /^\\d{1,2}/, // 0 to 99\n threeDigits: /^\\d{1,3}/, // 0 to 999\n fourDigits: /^\\d{1,4}/, // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/, // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/, // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/, // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/, // 0 to 9999, -0 to -9999\n};\n\nexport const timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/,\n};\n","import {\n millisecondsInHour,\n millisecondsInMinute,\n millisecondsInSecond,\n} from \"../../constants.js\";\n\nimport { numericPatterns } from \"./constants.js\";\n\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest,\n };\n}\n\nexport function parseNumericPattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseTimezonePattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === \"Z\") {\n return {\n value: 0,\n rest: dateString.slice(1),\n };\n }\n\n const sign = matchResult[1] === \"+\" ? 1 : -1;\n const hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n const minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n const seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n\n return {\n value:\n sign *\n (hours * millisecondsInHour +\n minutes * millisecondsInMinute +\n seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\n\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^-?\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case \"morning\":\n return 4;\n case \"evening\":\n return 17;\n case \"pm\":\n case \"noon\":\n case \"afternoon\":\n return 12;\n case \"am\":\n case \"midnight\":\n case \"night\":\n default:\n return 0;\n }\n}\n\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n const isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n const absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n\n let result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n const rangeEnd = absCurrentYear + 50;\n const rangeEndCentury = Math.trunc(rangeEnd / 100) * 100;\n const isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport class YearParser extends Parser {\n priority = 130;\n incompatibleTokens = [\"Y\", \"R\", \"u\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"yy\",\n });\n\n switch (token) {\n case \"y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value) {\n const currentYear = date.getFullYear();\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(normalizedTwoDigitYear, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { getWeekYear } from \"../../../getWeekYear.js\";\n\nimport { startOfWeek } from \"../../../startOfWeek.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n\n// Local week-numbering year\nexport class LocalWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"YY\",\n });\n\n switch (token) {\n case \"Y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"Yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value, options) {\n const currentYear = getWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(\n normalizedTwoDigitYear,\n 0,\n options.firstWeekContainsDate,\n );\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, options.firstWeekContainsDate);\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { startOfISOWeek } from \"../../../startOfISOWeek.js\";\nimport { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigitsSigned } from \"../utils.js\";\n\n// ISO week-numbering year\nexport class ISOWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"R\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n const firstWeekOfYear = constructFrom(date, 0);\n firstWeekOfYear.setFullYear(value, 0, 4);\n firstWeekOfYear.setHours(0, 0, 0, 0);\n return startOfISOWeek(firstWeekOfYear);\n }\n\n incompatibleTokens = [\n \"G\",\n \"y\",\n \"Y\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigitsSigned } from \"../utils.js\";\n\nexport class ExtendedYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"u\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"G\", \"y\", \"Y\", \"R\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigits } from \"../utils.js\";\n\nexport class QuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n case \"QQ\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigits } from \"../utils.js\";\n\nexport class StandAloneQuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n case \"qq\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class MonthParser extends Parser {\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"L\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"M\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"MM\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // J, F, ..., D\n case \"MMMMM\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class StandAloneMonthParser extends Parser {\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"LL\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // J, F, ..., D\n case \"LLLLL\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setWeek } from \"../../../setWeek.js\";\nimport { startOfWeek } from \"../../../startOfWeek.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\n// Local week of year\nexport class LocalWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"w\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"wo\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value, options) {\n return startOfWeek(setWeek(date, value, options), options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { getWeek } from \"./getWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setWeek} function options.\n */\n\n/**\n * @name setWeek\n * @category Week Helpers\n * @summary Set the local week to the given date.\n *\n * @description\n * Set the local week to the given date, saving the weekday number.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param week - The week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the local week set\n *\n * @example\n * // Set the 1st week to 2 January 2005 with default options:\n * const result = setWeek(new Date(2005, 0, 2), 1)\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // Set the 1st week to 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January:\n * const result = setWeek(new Date(2005, 0, 2), 1, {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Sun Jan 4 2004 00:00:00\n */\nexport function setWeek(date, week, options) {\n const date_ = toDate(date, options?.in);\n const diff = getWeek(date_, options) - week;\n date_.setDate(date_.getDate() - diff * 7);\n return toDate(date_, options?.in);\n}\n\n// Fallback for modularized imports:\nexport default setWeek;\n","import { setISOWeek } from \"../../../setISOWeek.js\";\nimport { startOfISOWeek } from \"../../../startOfISOWeek.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\n// ISO week of year\nexport class ISOWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"I\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"Io\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value) {\n return startOfISOWeek(setISOWeek(date, value));\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getISOWeek } from \"./getISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setISOWeek} function options.\n */\n\n/**\n * @name setISOWeek\n * @category ISO Week Helpers\n * @summary Set the ISO week to the given date.\n *\n * @description\n * Set the ISO week to the given date, saving the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The `Date` type of the context function.\n *\n * @param date - The date to be changed\n * @param week - The ISO week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the ISO week set\n *\n * @example\n * // Set the 53rd ISO week to 7 August 2004:\n * const result = setISOWeek(new Date(2004, 7, 7), 53)\n * //=> Sat Jan 01 2005 00:00:00\n */\nexport function setISOWeek(date, week, options) {\n const _date = toDate(date, options?.in);\n const diff = getISOWeek(_date, options) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setISOWeek;\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.js\";\n\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst DAYS_IN_MONTH_LEAP_YEAR = [\n 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,\n];\n\n// Day of the month\nexport class DateParser extends Parser {\n priority = 90;\n subPriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"d\":\n return parseNumericPattern(numericPatterns.date, dateString);\n case \"do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n const month = date.getMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n\n set(date, _flags, value) {\n date.setDate(value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.js\";\n\nexport class DayOfYearParser extends Parser {\n priority = 90;\n\n subpriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"D\":\n case \"DD\":\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case \"Do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n\n set(date, _flags, value) {\n date.setMonth(0, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"E\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { addDays } from \"./addDays.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setDay} function options.\n */\n\n/**\n * @name setDay\n * @category Weekday Helpers\n * @summary Set the day of the week to the given date.\n *\n * @description\n * Set the day of the week to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param day - The day of the week of the new date\n * @param options - An object with options.\n *\n * @returns The new date with the day of the week set\n *\n * @example\n * // Set week day to Sunday, with the default weekStartsOn of Sunday:\n * const result = setDay(new Date(2014, 8, 1), 0)\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Set week day to Sunday, with a weekStartsOn of Monday:\n * const result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setDay(date, day, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const date_ = toDate(date, options?.in);\n const currentDay = date_.getDay();\n\n const remainder = day % 7;\n const dayIndex = (remainder + 7) % 7;\n\n const delta = 7 - weekStartsOn;\n const diff =\n day < 0 || day > 6\n ? day - ((currentDay + delta) % 7)\n : ((dayIndex + delta) % 7) - ((currentDay + delta) % 7);\n return addDays(date_, diff, options);\n}\n\n// Fallback for modularized imports:\nexport default setDay;\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\n// Day of week\nexport class DayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"EEEEE\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"EEEE\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"D\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// Local day of week\nexport class LocalDayParser extends Parser {\n priority = 90;\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"e\":\n case \"ee\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"eo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"eee\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"eeeee\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"eeee\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// Stand-alone local day of week\nexport class StandAloneLocalDayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"c\":\n case \"cc\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"co\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"ccc\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // T\n case \"ccccc\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return (\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // Tuesday\n case \"cccc\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"e\",\n \"t\",\n \"T\",\n ];\n}\n","import { addDays } from \"./addDays.js\";\nimport { getISODay } from \"./getISODay.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setISODay} function options.\n */\n\n/**\n * @name setISODay\n * @category Weekday Helpers\n * @summary Set the day of the ISO week to the given date.\n *\n * @description\n * Set the day of the ISO week to the given date.\n * ISO week starts with Monday.\n * 7 is the index of Sunday, 1 is the index of Monday, etc.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param day - The day of the ISO week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the day of the ISO week set\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * const result = setISODay(new Date(2014, 8, 1), 7)\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setISODay(date, day, options) {\n const date_ = toDate(date, options?.in);\n const currentDay = getISODay(date_, options);\n const diff = day - currentDay;\n return addDays(date_, diff, options);\n}\n\n// Fallback for modularized imports:\nexport default setISODay;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISODay} function options.\n */\n\n/**\n * @name getISODay\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The day of ISO week\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * const result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\nexport function getISODay(date, options) {\n const day = toDate(date, options?.in).getDay();\n return day === 0 ? 7 : day;\n}\n\n// Fallback for modularized imports:\nexport default getISODay;\n","import { setISODay } from \"../../../setISODay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// ISO day of week\nexport class ISODayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n\n switch (token) {\n // 2\n case \"i\":\n case \"ii\": // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case \"io\":\n return match.ordinalNumber(dateString, { unit: \"day\" });\n // Tue\n case \"iii\":\n return mapValue(\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // T\n case \"iiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tu\n case \"iiiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tuesday\n case \"iiii\":\n default:\n return mapValue(\n match.day(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n\n set(date, _flags, value) {\n date = setISODay(date, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"E\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\nexport class AMPMParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"a\":\n case \"aa\":\n case \"aaa\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"aaaaa\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"b\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\nexport class AMPMMidnightParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"b\":\n case \"bb\":\n case \"bbb\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"bbbbb\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\n// in the morning, in the afternoon, in the evening, at night\nexport class DayPeriodParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"BBBBB\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour1to12Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"h\":\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case \"ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setHours(0, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"H\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour0to23Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"H\":\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case \"Ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n\n set(date, _flags, value) {\n date.setHours(value, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour0To11Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"K\":\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case \"Ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"h\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour1To24Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"k\":\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case \"ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n\n set(date, _flags, value) {\n const hours = value <= 24 ? value % 24 : value;\n date.setHours(hours, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"H\", \"K\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class MinuteParser extends Parser {\n priority = 60;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"m\":\n return parseNumericPattern(numericPatterns.minute, dateString);\n case \"mo\":\n return match.ordinalNumber(dateString, { unit: \"minute\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setMinutes(value, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class SecondParser extends Parser {\n priority = 50;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"s\":\n return parseNumericPattern(numericPatterns.second, dateString);\n case \"so\":\n return match.ordinalNumber(dateString, { unit: \"second\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setSeconds(value, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\nexport class FractionOfSecondParser extends Parser {\n priority = 30;\n\n parse(dateString, token) {\n const valueCallback = (value) =>\n Math.trunc(value * Math.pow(10, -token.length + 3));\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n\n set(date, _flags, value) {\n date.setMilliseconds(value);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseTimezonePattern } from \"../utils.js\";\n\n// Timezone (ISO-8601. +00:00 is `'Z'`)\nexport class ISOTimezoneWithZParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"X\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"XX\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"XXXX\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"XXXXX\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"XXX\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"x\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseTimezonePattern } from \"../utils.js\";\n\n// Timezone (ISO-8601)\nexport class ISOTimezoneParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"x\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"xx\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"xxxx\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"xxxxx\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"xxx\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"X\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseAnyDigitsSigned } from \"../utils.js\";\n\nexport class TimestampSecondsParser extends Parser {\n priority = 40;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value * 1000), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseAnyDigitsSigned } from \"../utils.js\";\n\nexport class TimestampMillisecondsParser extends Parser {\n priority = 20;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { EraParser } from \"./parsers/EraParser.js\";\nimport { YearParser } from \"./parsers/YearParser.js\";\nimport { LocalWeekYearParser } from \"./parsers/LocalWeekYearParser.js\";\nimport { ISOWeekYearParser } from \"./parsers/ISOWeekYearParser.js\";\nimport { ExtendedYearParser } from \"./parsers/ExtendedYearParser.js\";\nimport { QuarterParser } from \"./parsers/QuarterParser.js\";\nimport { StandAloneQuarterParser } from \"./parsers/StandAloneQuarterParser.js\";\nimport { MonthParser } from \"./parsers/MonthParser.js\";\nimport { StandAloneMonthParser } from \"./parsers/StandAloneMonthParser.js\";\nimport { LocalWeekParser } from \"./parsers/LocalWeekParser.js\";\nimport { ISOWeekParser } from \"./parsers/ISOWeekParser.js\";\nimport { DateParser } from \"./parsers/DateParser.js\";\nimport { DayOfYearParser } from \"./parsers/DayOfYearParser.js\";\nimport { DayParser } from \"./parsers/DayParser.js\";\nimport { LocalDayParser } from \"./parsers/LocalDayParser.js\";\nimport { StandAloneLocalDayParser } from \"./parsers/StandAloneLocalDayParser.js\";\nimport { ISODayParser } from \"./parsers/ISODayParser.js\";\nimport { AMPMParser } from \"./parsers/AMPMParser.js\";\nimport { AMPMMidnightParser } from \"./parsers/AMPMMidnightParser.js\";\nimport { DayPeriodParser } from \"./parsers/DayPeriodParser.js\";\nimport { Hour1to12Parser } from \"./parsers/Hour1to12Parser.js\";\nimport { Hour0to23Parser } from \"./parsers/Hour0to23Parser.js\";\nimport { Hour0To11Parser } from \"./parsers/Hour0To11Parser.js\";\nimport { Hour1To24Parser } from \"./parsers/Hour1To24Parser.js\";\nimport { MinuteParser } from \"./parsers/MinuteParser.js\";\nimport { SecondParser } from \"./parsers/SecondParser.js\";\nimport { FractionOfSecondParser } from \"./parsers/FractionOfSecondParser.js\";\nimport { ISOTimezoneWithZParser } from \"./parsers/ISOTimezoneWithZParser.js\";\nimport { ISOTimezoneParser } from \"./parsers/ISOTimezoneParser.js\";\nimport { TimestampSecondsParser } from \"./parsers/TimestampSecondsParser.js\";\nimport { TimestampMillisecondsParser } from \"./parsers/TimestampMillisecondsParser.js\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\nexport const parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser(),\n};\n","import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { longFormatters } from \"./_lib/format/longFormatters.js\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getDefaultOptions } from \"./getDefaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\nimport { DateTimezoneSetter } from \"./parse/_lib/Setter.js\";\nimport { parsers } from \"./parse/_lib/parsers.js\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { longFormatters, parsers };\n\n/**\n * The {@link parse} function options.\n */\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\n\nconst notWhitespaceRegExp = /\\S/;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangeably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear)\n * and [setWeekYear](https://date-fns.org/docs/setWeekYear)).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param dateStr - The string to parse\n * @param formatStr - The string of tokens\n * @param referenceDate - defines values missing from the parsed dateString\n * @param options - An object with options.\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @returns The parsed date\n *\n * @throws `options.locale` must contain `match` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport function parse(dateStr, formatStr, referenceDate, options) {\n const invalidDate = () => constructFrom(options?.in || referenceDate, NaN);\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n if (!formatStr)\n return dateStr ? invalidDate() : toDate(referenceDate, options?.in);\n\n const subFnOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n // If timezone isn't specified, it will try to use the context or\n // the reference date and fallback to the system time zone.\n const setters = [new DateTimezoneSetter(options?.in, referenceDate)];\n\n const tokens = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp);\n\n const usedTokens = [];\n\n for (let token of tokens) {\n if (\n !options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n if (\n !options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n\n const firstCharacter = token[0];\n const parser = parsers[firstCharacter];\n if (parser) {\n const { incompatibleTokens } = parser;\n if (Array.isArray(incompatibleTokens)) {\n const incompatibleToken = usedTokens.find(\n (usedToken) =>\n incompatibleTokens.includes(usedToken.token) ||\n usedToken.token === firstCharacter,\n );\n if (incompatibleToken) {\n throw new RangeError(\n `The format string mustn't contain \\`${incompatibleToken.fullToken}\\` and \\`${token}\\` at the same time`,\n );\n }\n } else if (parser.incompatibleTokens === \"*\" && usedTokens.length > 0) {\n throw new RangeError(\n `The format string mustn't contain \\`${token}\\` and any other token at the same time`,\n );\n }\n\n usedTokens.push({ token: firstCharacter, fullToken: token });\n\n const parseResult = parser.run(\n dateStr,\n token,\n locale.match,\n subFnOptions,\n );\n\n if (!parseResult) {\n return invalidDate();\n }\n\n setters.push(parseResult.setter);\n\n dateStr = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateStr.indexOf(token) === 0) {\n dateStr = dateStr.slice(token.length);\n } else {\n return invalidDate();\n }\n }\n }\n\n // Check if the remaining input contains something other than whitespace\n if (dateStr.length > 0 && notWhitespaceRegExp.test(dateStr)) {\n return invalidDate();\n }\n\n const uniquePrioritySetters = setters\n .map((setter) => setter.priority)\n .sort((a, b) => b - a)\n .filter((priority, index, array) => array.indexOf(priority) === index)\n .map((priority) =>\n setters\n .filter((setter) => setter.priority === priority)\n .sort((a, b) => b.subPriority - a.subPriority),\n )\n .map((setterArray) => setterArray[0]);\n\n let date = toDate(referenceDate, options?.in);\n\n if (isNaN(+date)) return invalidDate();\n\n const flags = {};\n for (const setter of uniquePrioritySetters) {\n if (!setter.validate(date, subFnOptions)) {\n return invalidDate();\n }\n\n const result = setter.set(date, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n date = result[0];\n Object.assign(flags, result[1]);\n // Result is date\n } else {\n date = result;\n }\n }\n\n return date;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default parse;\n","import { getDefaultOptions as getInternalDefaultOptions } from \"./_lib/defaultOptions.js\";\n\n/**\n * @name getDefaultOptions\n * @category Common Helpers\n * @summary Get default options.\n * @pure false\n *\n * @description\n * Returns an object that contains defaults for\n * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate`\n * arguments for all functions.\n *\n * You can change these with [setDefaultOptions](https://date-fns.org/docs/setDefaultOptions).\n *\n * @returns The default options\n *\n * @example\n * const result = getDefaultOptions()\n * //=> {}\n *\n * @example\n * setDefaultOptions({ weekStarsOn: 1, firstWeekContainsDate: 4 })\n * const result = getDefaultOptions()\n * //=> { weekStarsOn: 1, firstWeekContainsDate: 4 }\n */\nexport function getDefaultOptions() {\n return Object.assign({}, getInternalDefaultOptions());\n}\n\n// Fallback for modularized imports:\nexport default getDefaultOptions;\n","import Resource from '../resource.js';\nimport { format, parse, isValid } from 'date-fns';\nimport { register } from '@fleetbase/sdk';\n\nexport default class StoreHour extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'store-hour', options);\n }\n\n get day() {\n return this.getAttribute('day');\n }\n\n get isClosed() {\n return this.getAttribute('start') === null && this.getAttribute('end') === null;\n }\n\n get is24Hours() {\n const start = this.startDateInstance;\n const end = this.endDateInstance;\n const diff = Math.abs(start - end);\n const hours = Math.floor(diff / 1000 / 60) / 60;\n\n return hours > 23;\n }\n\n get startDateInstance() {\n if (!this.hasAttribute('start')) {\n return null;\n }\n\n const start = this.getAttribute('start');\n const includesSeconds = start.split(':').length === 3;\n const format = includesSeconds ? 'HH:mm:ss' : 'HH:mm';\n\n return parse(start, format, new Date());\n }\n\n get endDateInstance() {\n if (!this.hasAttribute('end')) {\n return null;\n }\n\n const end = this.getAttribute('end');\n const includesSeconds = end.split(':').length === 3;\n const format = includesSeconds ? 'HH:mm:ss' : 'HH:mm';\n\n return parse(end, format, new Date());\n }\n\n get humanReadableHoursRange() {\n if (!isValid(this.startDateInstance) || !isValid(this.endDateInstance)) {\n return `${this.start} - ${this.end}`;\n }\n\n return `${format(this.startDateInstance, 'p')} - ${format(this.endDateInstance, 'p')}`;\n }\n\n get humanReadableHours() {\n if (this.isClosed) {\n return 'Closed';\n }\n\n if (this.is24Hours) {\n return '24 Hours';\n }\n\n return this.humanReadableHoursRange;\n }\n\n // remove default resource methods\n create() {\n throw new Error('There is no create() method store location!');\n }\n\n // remove default resource methods\n update() {\n throw new Error('There is no update() method store location!');\n }\n\n // remove default resource methods\n destroy() {\n throw new Error('There is no destroy() method store location!');\n }\n\n // remove default resource methods\n reload() {\n throw new Error('There is no reload() method store location!');\n }\n}\n\nregister('resource', 'StoreHour', StoreHour);\n","import Resource from '../resource.js';\nimport StoreHour from './store-hour.js';\nimport { Collection, lookup, register } from '@fleetbase/sdk';\nimport { format } from 'date-fns';\n\nexport default class StoreLocation extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'store-location', options);\n }\n\n get latitude() {\n return this.getAttribute('place.location.coordinates.1');\n }\n\n get longitude() {\n return this.getAttribute('place.location.coordinates.0');\n }\n\n get hours() {\n return new Collection((this.getAttribute('hours') || []).map((attributes) => new StoreHour(attributes, this.adapter)));\n }\n\n /** Raw embedded merchant payload, normalized across API response versions. */\n get storeData() {\n const embeddedStore = this.getAttribute('store_data');\n const legacyStore = this.getAttribute('store');\n\n return embeddedStore || (legacyStore && typeof legacyStore === 'object' ? legacyStore : null);\n }\n\n /** Public store identifier for this location. */\n get storeId() {\n const store = this.getAttribute('store');\n\n return typeof store === 'string' ? store : this.storeData?.id || this.storeData?.public_id;\n }\n\n /** Typed embedded merchant when requested with `with_store`. */\n get merchant() {\n return this.storeData ? lookup('resource', 'Store', this.storeData, this.adapter) : null;\n }\n\n get isAlwaysOpen() {\n return this.hours.every((hour) => hour?.is24Hours);\n }\n\n get today() {\n const today = format(new Date(), 'EEEE');\n\n return this.schedule[today];\n }\n\n get schedule() {\n const schedule = {};\n const week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];\n\n for (let i = 0; i < week.length; i++) {\n const day = week[i];\n\n schedule[day] = new Collection();\n }\n\n for (let i = 0; i < this.hours.length; i++) {\n const hour = this.hours.objectAt(i);\n\n schedule[hour.day].pushObject(hour);\n }\n\n return schedule;\n }\n\n // remove default resource methods\n create() {\n throw new Error('There is no create() method store location!');\n }\n\n // remove default resource methods\n update() {\n throw new Error('There is no update() method store location!');\n }\n\n // remove default resource methods\n destroy() {\n throw new Error('There is no destroy() method store location!');\n }\n}\n\nregister('resource', 'StoreLocation', StoreLocation);\n","import Resource from '../resource.js';\nimport { register } from '@fleetbase/sdk';\n\nexport default class PaymentGateway extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'payment-gateway', options);\n }\n\n get type() {\n return this.getAttribute('type');\n }\n\n get code() {\n return this.getAttribute('code');\n }\n\n get isCashGateway() {\n return this.type === 'cash';\n }\n\n get isStripeGateway() {\n return this.type === 'stripe';\n }\n\n setCheckoutToken(token) {\n this.token = token;\n }\n\n getCheckoutToken() {\n return this.token;\n }\n\n // remove default resource methods\n findRecord() {\n throw new Error('There is no findRecord() method for payment gateways!');\n }\n\n // remove default resource methods\n create() {\n throw new Error('There is no create() method for payment gateways!');\n }\n\n // remove default resource methods\n update() {\n throw new Error('There is no update() method for payment gateways!');\n }\n\n // remove default resource methods\n destroy() {\n throw new Error('There is no destroy() method for payment gateways!');\n }\n\n // remove default resource methods\n reload() {\n throw new Error('There is no reload() method for payment gateways!');\n }\n}\n\nregister('resource', 'PaymentGateway', PaymentGateway);\n","import Resource from '../resource.js';\nimport StoreLocation from './store-location.js';\nimport PaymentGateway from './payment-gateway.js';\nimport Review from './review.js';\nimport { Collection, Place, register } from '@fleetbase/sdk';\n\nexport default class Store extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'store', options);\n }\n\n getReviews(params = {}) {\n return this.adapter.get('reviews', { store: this.id, ...params }).then((reviews) => {\n return new Collection(reviews.map((attributes) => new Review(attributes, this.adapter)));\n });\n }\n\n getLocations(params = {}) {\n return this.adapter.get('locations', { store: this.id, ...params }).then((storeLocations) => {\n return new Collection(\n storeLocations.map((attributes) => {\n if (attributes.place) {\n attributes.place = new Place(attributes.place);\n }\n\n return new StoreLocation(attributes, this.adapter);\n })\n );\n });\n }\n\n getLocation(id) {\n return this.adapter.get(`locations/${id}`, { store: this.id }).then((attributes) => {\n return new StoreLocation(attributes, this.adapter);\n });\n }\n\n getPaymentGateways(params = {}) {\n return this.adapter.get('gateways', params).then((gateways) => {\n return new Collection(\n gateways.map((attributes) => {\n return new PaymentGateway(attributes, this.adapter);\n })\n );\n });\n }\n\n getPaymentGateway(id) {\n return this.adapter.get(`gateways/${id}`).then((attributes) => {\n return new PaymentGateway(attributes, this.adapter);\n });\n }\n}\n\nregister('resource', 'Store', Store);\n","import Resource from '../resource.js';\nimport Review from './review.js';\nimport { formatCurrency, isEmpty } from '../utils/index.js';\nimport { Collection, register } from '@fleetbase/sdk';\nimport Store from './store.js';\n\nexport default class Product extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'product', options);\n }\n\n variants() {\n return this.getAttribute('variants');\n }\n\n addons() {\n return this.getAttribute('addon_categories');\n }\n\n get isOnSale() {\n return this.getAttribute('is_on_sale');\n }\n\n get isNotOnSale() {\n return !this.getAttribute('is_on_sale');\n }\n\n get formattedAmount() {\n const { price, sale_price, currency } = this.getAttributes(['price', 'sale_price', 'currency']);\n\n if (this.isOnSale) {\n if (isEmpty(sale_price) || isEmpty(currency)) {\n return null;\n }\n\n return formatCurrency(sale_price / 100, currency);\n }\n\n if (isEmpty(price) || isEmpty(currency)) {\n return null;\n }\n\n return formatCurrency(price / 100, currency);\n }\n\n get merchant() {\n const attributes = this.getAttribute('store');\n\n return attributes && typeof attributes === 'object' ? new Store(attributes, this.adapter) : null;\n }\n\n getReviews() {\n return this.adapter.get('reviews', { store: this.id }).then((reviews) => {\n return new Collection(reviews.map((attributes) => new Review(attributes, this.adapter)));\n });\n }\n}\n\nregister('resource', 'Product', Product);\n","import Resource from '../resource.js';\nimport Product from './product.js';\nimport { Collection, register } from '@fleetbase/sdk';\n\nexport default class Category extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'category', options);\n }\n\n getProducts() {\n return this.adapter.get('products', { category: this.id }).then((products) => {\n return new Collection(products.map((attributes) => new Product(attributes, this.adapter)));\n });\n }\n}\n\nregister('resource', 'Category', Category);\n","import Resource from '../resource.js';\nimport StorefrontStore from '../store.js';\nimport { Collection, Order, Place, StoreActions, register } from '@fleetbase/sdk';\nimport { isPhone } from '../utils/is-phone.js';\n\nexport const customerActions = new StoreActions({\n // const { error } = await storefront.customers.login('+1 111-1111');\n login: function (identity, password = null, attributes = {}) {\n // handle phone number authentication\n if (isPhone(identity)) {\n return this.adapter.post('customers/login-with-sms', { phone: identity });\n }\n\n if (!password) {\n throw new Error('Login requires password!');\n }\n\n return this.adapter.post('customers/login', { identity, password, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n // const customer = await storefront.customers.loginWithApple('', '', '', '', '');\n loginWithApple: function (appleUserId, identityToken, authorizationCode, email, name, attributes = {}) {\n return this.adapter.post('customers/login-with-apple', { appleUserId, identityToken, authorizationCode, email, name, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n // const customer = await storefront.customers.loginWithFacebook('', '', '', '');\n loginWithFacebook: function (facebookUserId, email, name, avatarUrl, attributes = {}) {\n return this.adapter.post('customers/login-with-facebook', { facebookUserId, email, name, avatarUrl, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n // const customer = await storefront.customers.loginWithGoogle('', '');\n loginWithGoogle: function (idToken, clientId, attributes = {}) {\n return this.adapter.post('customers/login-with-google', { idToken, clientId, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n verifyCode: function (identity, code, attributes = {}) {\n return this.adapter.post('customers/verify-code', { identity, code, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n requestCreationCode(identity, mode = 'email') {\n return this.adapter.post('customers/request-creation-code', {\n identity,\n mode,\n });\n },\n\n create(identity, code, attributes = {}) {\n return this.adapter.post('customers', { identity, code, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n retrieve: function (id) {\n return this.findRecord(id);\n },\n});\n\nexport default class Customer extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'customer', {\n actions: customerActions,\n ...options,\n });\n }\n\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new StorefrontStore(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions,\n });\n\n return this;\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n async syncDevice(token, platform) {\n try {\n const headers = { 'Customer-Token': this.token };\n const response = await this.adapter.setHeaders(headers).post('customers/register-device', { token, platform });\n return response;\n } catch (error) {\n console.error(`Error making request to register customer device token:`, error);\n throw error;\n }\n }\n\n async performAuthorizedRequest(endpoint, params = {}, method = 'GET') {\n try {\n const headers = { 'Customer-Token': this.token };\n const response = await this.adapter.setHeaders(headers)[method.toLowerCase()](endpoint, params);\n return response;\n } catch (error) {\n console.error(`Error in ${method} request to ${endpoint}:`, error);\n throw error;\n }\n }\n\n async getSavedPlaces() {\n try {\n const places = await this.performAuthorizedRequest('customers/places');\n return new Collection(places.map((attributes) => new Place(attributes, this.adapter)));\n } catch (error) {\n console.error('Failed to retrieve saved places');\n throw error;\n }\n }\n\n async getOrderHistory(params = {}) {\n try {\n const orders = await this.performAuthorizedRequest('customers/orders', params);\n return new Collection(orders.map((attributes) => new Order(attributes, this.adapter)));\n } catch (error) {\n console.error('Failed to retrieve order history');\n throw error;\n }\n }\n\n getStripeEphemeralKey(params = {}) {\n return this.adapter.setHeaders({ 'Customer-Token': this.token }).post('customers/stripe-ephemeral-key', params);\n }\n\n getStripeSetupIntent(params = {}) {\n return this.adapter.setHeaders({ 'Customer-Token': this.token }).post('customers/stripe-setup-intent', params);\n }\n}\n\nregister('resource', 'Customer', Customer);\n","export function isPhone(phone = '') {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/g.test(phone);\n}\n\nexport default isPhone;\n","import Resource from '../resource.js';\nimport Product from './product.js';\nimport { StoreActions, register } from '@fleetbase/sdk';\n\nconst { isArray } = Array;\n\nexport const cartActions = new StoreActions({\n create: undefined,\n findAll: undefined,\n query: undefined,\n queryRecord: undefined,\n\n add: function (id, productId, quantity = 1, data = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/${productId}`, { ...data, quantity }, options).then(this.afterFetch.bind(this));\n },\n\n update: function (id, cartItemId, quantity, data = {}, options = {}) {\n return this.adapter.put(`${this.namespace}/${id}/${cartItemId}`, { ...data, quantity }, options).then(this.afterFetch.bind(this));\n },\n\n remove: function (id, cartItemId, options = {}) {\n return this.adapter.delete(`${this.namespace}/${id}/${cartItemId}`, {}, options).then(this.afterFetch.bind(this));\n },\n\n empty: function (id, options = {}) {\n return this.adapter.put(`${this.namespace}/${id}/empty`, {}, options).then(this.afterFetch.bind(this));\n },\n\n retrieve: function (id = '') {\n return this.findRecord(id);\n },\n});\n\nexport default class Cart extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'cart', { actions: cartActions, ...options });\n }\n\n add(productId, quantity = 1, data = {}, options = {}) {\n if (productId instanceof Product) {\n productId = productId.id;\n }\n\n return this.store.add(this.id, productId, quantity, data, options);\n }\n\n update(cartItemId, quantity, data = {}, options = {}) {\n return this.store.update(this.id, cartItemId, quantity, data, options);\n }\n\n remove(cartItemId, options = {}) {\n return this.store.remove(this.id, cartItemId, options);\n }\n\n empty(options = {}) {\n return this.store.empty(this.id, options);\n }\n\n delete() {\n return this.destroy();\n }\n\n refresh() {\n return this.store.retrieve(this.id);\n }\n\n subtotal() {\n let subtotal = 0;\n\n this.contents().forEach((cartItem) => {\n subtotal += cartItem.subtotal;\n });\n\n return subtotal;\n }\n\n contents() {\n return this.getAttribute('items', []);\n }\n\n hasProduct(productId) {\n return this.contents().findIndex((cartItem) => cartItem.product_id === productId) !== -1;\n }\n\n get isEmpty() {\n const contents = this.contents();\n\n if (!isArray(contents)) {\n return true;\n }\n\n return contents.length === 0;\n }\n\n get isNotEmpty() {\n return !this.isEmpty;\n }\n}\n\nregister('resource', 'Cart', Cart);\n","import Resource from '../resource.js';\nimport PaymentGateway from './payment-gateway.js';\nimport Category from './category.js';\nimport Product from './product.js';\nimport Review from './review.js';\nimport Store from './store.js';\nimport StoreLocation from './store-location.js';\nimport { Collection, register } from '@fleetbase/sdk';\n\nexport default class Network extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'network', options);\n }\n\n getTags(params = {}) {\n return this.adapter.get('tags', params);\n }\n\n async getResourceCollection(endpoint, ResourceClass, params = {}) {\n const resources = await this.adapter.get(endpoint, params);\n return new Collection(resources.map((attributes) => new ResourceClass(attributes, this.adapter)));\n }\n\n async getStores(params = {}) {\n return this.getResourceCollection('stores', Store, params);\n }\n\n async getStoreLocations(params = {}) {\n return this.getResourceCollection('store-locations', StoreLocation, params);\n }\n\n async getCategories(params = {}) {\n return this.getResourceCollection('categories', Category, params);\n }\n\n async search(query, params = {}) {\n return this.getResourceCollection('search', Product, { query, with_store: true, ...params });\n }\n\n async lookupStore(id) {\n const attributes = await this.adapter.get(`lookup/${id}`);\n return new Store(attributes, this.adapter);\n }\n\n async getReviews(storeId, params = {}) {\n return this.getResourceCollection('reviews', Review, { store: storeId, ...params });\n }\n\n async getPaymentGateways(params = {}) {\n return this.getResourceCollection('gateways', PaymentGateway, params);\n }\n}\n\nregister('resource', 'Network', Network);\n","import StorefrontStore from '../store.js';\nimport { Adapter, Collection, ServiceQuote, register } from '@fleetbase/sdk';\nimport { formatCurrency, isEmpty, isArray } from '../utils/index.js';\n\nexport default class DeliveryServiceQuote extends ServiceQuote {\n constructor(attributes = {}, adapter, options = {}) {\n let finalAttributes = attributes;\n let finalAdapter = adapter;\n\n // If `attributes` is actually an Adapter, adjust the arguments accordingly.\n if (attributes instanceof Adapter) {\n finalAttributes = {};\n finalAdapter = attributes;\n }\n\n // Call `super()` exactly once with the resolved arguments.\n super(finalAttributes, finalAdapter, 'service-quote', options);\n }\n\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new StorefrontStore(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions,\n });\n\n return this;\n }\n\n get formattedAmount() {\n const { amount, currency } = this.getAttributes(['amount', 'currency']);\n\n if (isEmpty(amount) || isEmpty(currency)) {\n return null;\n }\n\n return formatCurrency(amount / 100, currency);\n }\n\n async fromCart() {\n return this.fetchServiceQuotesFromCart(...arguments);\n }\n\n async fetchServiceQuotesFromCart(origin, destination, cart, config = 'storefront', all = false) {\n if (origin?.id) {\n origin = origin.id;\n }\n\n if (destination?.id) {\n destination = destination.id;\n }\n\n if (cart?.id) {\n cart = cart.id;\n }\n\n try {\n const serviceQuotes = await this.adapter.get('service-quotes/from-cart', {\n origin,\n destination,\n cart,\n config,\n all,\n });\n\n if (isArray(serviceQuotes)) {\n return new Collection(serviceQuotes.map((serviceQuote) => new DeliveryServiceQuote(serviceQuote, this.adapter)));\n }\n\n return new DeliveryServiceQuote(serviceQuotes, this.adapter);\n } catch (error) {\n console.error('Error fetching service quotes:', error);\n throw error;\n }\n }\n\n static async getFromCart(adapter, origin, destination, cart, config = 'storefront', all = false) {\n const quote = new DeliveryServiceQuote(adapter);\n return quote.fetchServiceQuotesFromCart(origin, destination, cart, config, all);\n }\n}\n\nregister('resource', 'DeliveryServiceQuote', DeliveryServiceQuote);\n","import Resource from '../resource.js';\nimport { Order, StoreActions, isResource, register } from '@fleetbase/sdk';\n\nexport const checkoutActions = new StoreActions({\n create: undefined,\n findAll: undefined,\n query: undefined,\n queryRecord: undefined,\n\n initialize: function (customer, cart, serviceQuote, gateway, orderOptions = {}, options = {}) {\n if (isResource(customer)) {\n customer = customer.id;\n }\n\n if (isResource(cart)) {\n cart = cart.id;\n }\n\n if (isResource(serviceQuote)) {\n serviceQuote = serviceQuote.id;\n }\n\n if (isResource(gateway)) {\n gateway = gateway.getAttribute('code');\n }\n\n return this.adapter.get(`${this.namespace}/before`, { ...orderOptions, customer, cart, serviceQuote, gateway }, options);\n },\n\n captureOrder: function (token, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/capture`, { token, ...params }, options).then((orderJson) => new Order(orderJson));\n },\n\n createStripeSetupIntent: function (customer, params = {}, options = {}) {\n if (isResource(customer)) {\n customer = customer.id;\n }\n\n return this.adapter.post(`${this.namespace}/stripe-setup-intent`, { customer, ...params }, options);\n },\n\n updateStripePaymentIntent: function (paymentIntent, customer, cart, serviceQuote, orderOptions = {}, options = {}) {\n if (isResource(customer)) {\n customer = customer.id;\n }\n\n if (isResource(cart)) {\n cart = cart.id;\n }\n\n if (isResource(serviceQuote)) {\n serviceQuote = serviceQuote.id;\n }\n\n return this.adapter.put(`${this.namespace}/stripe-update-payment-intent`, { paymentIntent, customer, cart, serviceQuote, ...orderOptions }, options);\n },\n});\n\nexport default class Checkout extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'checkout', { actions: checkoutActions, ...options });\n }\n\n initialize() {\n return this.store.initialize(...arguments);\n }\n\n captureOrder() {\n return this.store.captureOrder(...arguments);\n }\n}\n\nregister('resource', 'Checkout', Checkout);\n","import Resource from '../resource.js';\nimport { register } from '@fleetbase/sdk';\n\nexport default class FoodTruck extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'food-truck', options);\n }\n}\n\nregister('resource', 'FoodTruck', FoodTruck);\n","import StorefrontStore from './store.js';\nimport { isKeyValid } from './utils/index.js';\nimport { Product, Category, Customer, Cart, Store, StoreLocation, StoreHour, DeliveryServiceQuote, Checkout, PaymentGateway, Review, Network, FoodTruck } from './resources.js';\nimport { cartActions } from './resources/cart.js';\nimport { customerActions } from './resources/customer.js';\nimport { checkoutActions } from './resources/checkout.js';\nimport { reviewActions } from './resources/review.js';\nimport { Collection, lookup, detectAdapter } from '@fleetbase/sdk';\n\n/**\n * // instance\n * const storefront = new Storefront();\n *\n */\nexport default class Storefront {\n /**\n * Builds an instance of the Fleetbase Storefront SDK\n *\n * @param {String} storeKey The access key for the storefront store\n * @param {Object} config The config object\n * @param {Boolean} debug Enable debug mode\n * @return {Storefront} Instance\n */\n constructor(storeKey, config = {}, debug = false) {\n this.version = config.version || 'v1';\n this.options = {\n version: this.version,\n host: config.host || 'https://api.fleetbase.io',\n namespace: config.namespace || `storefront/${this.version}`,\n publicKey: storeKey,\n debug,\n };\n\n if (!isKeyValid(storeKey)) {\n throw new Error('⚠️ Invalid Storefront key given to Storefront SDK');\n }\n\n this.adapter = config.adapter || detectAdapter(this.options);\n\n this.initializeStores();\n }\n\n initializeStores() {\n this.products = new StorefrontStore('product', this.adapter);\n this.categories = new StorefrontStore('category', this.adapter);\n this.foodTrucks = new StorefrontStore('food-truck', this.adapter);\n this.reviews = new StorefrontStore('review', this.adapter).extendActions(reviewActions);\n this.customers = new StorefrontStore('customer', this.adapter).extendActions(customerActions);\n this.cart = new StorefrontStore('cart', this.adapter).extendActions(cartActions);\n this.checkout = new StorefrontStore('checkout', this.adapter).extendActions(checkoutActions);\n\n return this;\n }\n\n /** loads information about this storefront */\n about(options = {}) {\n return this.adapter.get('about').then((attributes) => (options.resource ? this.hydrateOwner(attributes) : attributes));\n }\n\n /** loads the storefront owner as a typed Store or Network resource */\n getOwner() {\n return this.about({ resource: true });\n }\n\n /** lookup a specific store or network provided the ID */\n lookup(id, options = {}) {\n return this.adapter.get(`lookup/${id}`).then((attributes) => (options.resource ? this.hydrateOwner(attributes) : attributes));\n }\n\n /** lookup a store or network as a typed resource */\n lookupResource(id) {\n return this.lookup(id, { resource: true });\n }\n\n /** search products in store or network */\n search(query, options = {}) {\n return this.adapter.get('search', { query, ...options }).then((products) => {\n return new Collection(products.map((product) => new Product(product, this.adapter)));\n });\n }\n\n hydrateOwner(attributes = {}) {\n if (attributes?.is_network === true) {\n return new Network(attributes, this.adapter);\n }\n\n return new Store(attributes, this.adapter);\n }\n\n static newInstance() {\n return new Storefront(...arguments);\n }\n\n setAdapter(adapter) {\n this.adapter = adapter;\n\n return this.initializeStores();\n }\n\n getAdapter() {\n return this.adapter;\n }\n}\n\nexport { Product, Category, Customer, Cart, Store, StoreLocation, StoreHour, DeliveryServiceQuote, Checkout, PaymentGateway, Review, Network, FoodTruck, lookup };\n","export function isKeyValid(key) {\n return typeof key === 'string' && key.length > 30 && (key.startsWith('store_') || key.startsWith('network_'));\n}\n\nexport default isKeyValid;\n"],"names":["N","t","e","n","arguments","length","h","this","g","RegExp","str","chain","v","key","value","r","indexOf","toLowerCase","i","match","replace","applyRules","pluralRules","uncountableWords","singularRules","split","o","charAt","toUpperCase","substring","join","a","s","slice","uppercase","underbarPrefix","idSuffix","underbar","capitalize","spaceOrUnderbar","camelize","underscore","nonTitlecasedWords","pluralize","concat","trim","singularize","demodulize","parseInt","isNaN","Object","values","shift","apply","F","Array","prototype","call","invoke","S","D","z","StorefrontStore","_classCallCheck","_callSuper","_inherits","Store","_createClass","extendStoreActions","undefined","json","lookup","classify","resource","adapter","formatCurrency","amount","currency","currencyDisplay","Intl","NumberFormat","style","format","isEmpty","obj","none","size","objectType","_typeof","isArray","StorefrontResource","Resource","_this$options","store","onAfterFetch","syncAttributes","bind","actions","options","register","reviewActions","StoreActions","count","storeId","params","get","namespace","Review","attributes","millisecondsInWeek","constructFromSymbol","Symbol","constructFrom","date","Date","constructor","toDate","argument","context","addDays","_date","NaN","setDate","getDate","defaultOptions","getDefaultOptions","startOfWeek","_ref","_ref2","_ref3","_options$weekStartsOn","_options$locale","_defaultOptions$local","weekStartsOn","locale","day","getDay","diff","setHours","startOfISOWeek","_objectSpread","getISOWeekYear","year","getFullYear","fourthOfJanuaryOfNextYear","setFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","getTime","getTimezoneOffsetInMilliseconds","utcDate","UTC","getMonth","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","startOfDay","differenceInCalendarDays","laterDate","earlierDate","_normalizeDates","_len","dates","_key","normalize","find","map","normalizeDates","_normalizeDates2","_slicedToArray","laterDate_","earlierDate_","laterStartOfDay","earlierStartOfDay","laterTimestamp","earlierTimestamp","Math","round","isValid","toString","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","args","width","String","defaultWidth","formats","formatLong","full","long","medium","short","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","valuesArray","formattingValues","defaultFormattingWidth","argumentCallback","buildMatchFn","string","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","array","predicate","findIndex","pattern","test","object","hasOwnProperty","findKey","valueCallback","rest","enUS","code","formatDistance","token","result","tokenValue","addSuffix","comparison","formatRelative","_baseDate","_options","localize","ordinalNumber","dirtyNumber","number","Number","rem100","era","narrow","abbreviated","wide","quarter","month","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","parsePattern","parseResult","any","index","firstWeekContainsDate","getDayOfYear","date_","startOfYear","getISOWeek","fourthOfJanuary","startOfISOWeekYear","getWeekYear","_options$firstWeekCon","firstWeekOfNextYear","firstWeekOfThisYear","getWeek","firstWeek","startOfWeekYear","addLeadingZeros","targetLength","abs","padStart","lightFormatters","signedYear","numberOfDigits","milliseconds","trunc","pow","dayPeriodEnum","formatters","G","y","unit","Y","signedWeekYear","weekYear","R","u","Q","ceil","q","M","L","w","week","I","isoWeek","d","dayOfYear","E","dayOfWeek","localDayOfWeek","c","isoDayOfWeek","dayPeriodEnumValue","b","hours","B","H","K","k","m","X","_localize","timezoneOffset","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","x","O","formatTimezoneShort","T","offset","delimiter","sign","absOffset","minutes","dateLongFormatter","timeLongFormatter","longFormatters","p","P","dateTimeFormat","datePattern","timePattern","dayOfYearTokenRE","weekYearTokenRE","throwTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","warnOrThrowProtectedError","input","_message","subject","message","console","warn","includes","RangeError","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","formatStr","_ref4","_ref5","_ref6","_ref7","_defaultOptions$local2","defaultLocale","_options$locale2","_options$locale3","originalDate","parts","firstCharacter","longFormatter","isToken","cleanEscapedString","preprocessor","formatterOptions","part","formatter","matched","Setter","_defineProperty","_utcDate","ValueSetter","validateValue","setValue","priority","subPriority","_this","flags","DateTimezoneSetter","reference","_this2","timestampIsSet","_constructor$prototyp","isConstructor","transpose","Parser","dateString","parse","setter","validate","set","_value","EraParser","numericPatterns","timezonePatterns","mapValue","parseFnResult","mapFn","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","isLeapYearIndex","YearParser","isTwoDigitYear","normalizedTwoDigitYear","LocalWeekYearParser","ISOWeekYearParser","_flags","firstWeekOfYear","ExtendedYearParser","QuarterParser","setMonth","StandAloneQuarterParser","MonthParser","StandAloneMonthParser","LocalWeekParser","setWeek","ISOWeekParser","setISOWeek","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","DateParser","isLeapYear","DayOfYearParser","setDay","currentDay","delta","DayParser","LocalDayParser","wholeWeekDays","floor","StandAloneLocalDayParser","setISODay","getISODay","ISODayParser","AMPMParser","AMPMMidnightParser","DayPeriodParser","Hour1to12Parser","isPM","Hour0to23Parser","Hour0To11Parser","Hour1To24Parser","MinuteParser","setMinutes","SecondParser","setSeconds","FractionOfSecondParser","setMilliseconds","ISOTimezoneWithZParser","ISOTimezoneParser","TimestampSecondsParser","TimestampMillisecondsParser","parsers","notWhitespaceRegExp","dateStr","referenceDate","invalidDate","assign","getInternalDefaultOptions","_step","subFnOptions","setters","tokens","usedTokens","_iterator","_createForOfIteratorHelper","_ret","_loop","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","parser","incompatibleTokens","incompatibleToken","usedToken","fullToken","push","run","done","err","f","uniquePrioritySetters","sort","filter","setterArray","_step2","_iterator2","StoreHour","getAttribute","start","startDateInstance","end","endDateInstance","hasAttribute","includesSeconds","isClosed","is24Hours","humanReadableHoursRange","Error","StoreLocation","Collection","embeddedStore","legacyStore","_this$storeData","_this$storeData2","storeData","id","public_id","every","hour","schedule","objectAt","pushObject","PaymentGateway","type","then","reviews","storeLocations","place","Place","_this3","_this4","gateways","_this5","Product","_this$getAttributes","getAttributes","price","sale_price","isOnSale","Category","category","products","customerActions","login","identity","password","isPhone","post","phone","afterFetch","loginWithApple","appleUserId","identityToken","authorizationCode","email","name","loginWithFacebook","facebookUserId","avatarUrl","loginWithGoogle","idToken","clientId","verifyCode","requestCreationCode","mode","create","retrieve","findRecord","Customer","_syncDevice","_asyncToGenerator","_regeneratorRuntime","mark","_callee","platform","headers","response","wrap","_context","prev","next","setHeaders","sent","abrupt","t0","error","stop","_x","_x2","_performAuthorizedRequest","_callee2","endpoint","method","_args2","_context2","_x3","_getSavedPlaces","_callee3","places","_context3","performAuthorizedRequest","_getOrderHistory","_callee4","orders","_args4","_context4","Order","cartActions","findAll","query","queryRecord","add","productId","quantity","data","update","cartItemId","put","remove","empty","Cart","destroy","subtotal","contents","forEach","cartItem","product_id","Network","_getResourceCollection","ResourceClass","resources","_args","_getStores","getResourceCollection","_getStoreLocations","_args3","_getCategories","_search","_callee5","_args5","_context5","with_store","_lookupStore","_callee6","_context6","_x4","_getReviews","_callee7","_args7","_context7","_x5","_getPaymentGateways","_callee8","_args8","_context8","DeliveryServiceQuote","finalAttributes","finalAdapter","Adapter","ServiceQuote","_fromCart","fetchServiceQuotesFromCart","_fetchServiceQuotesFromCart","origin","destination","cart","_origin","_destination","_cart","config","all","serviceQuotes","serviceQuote","_getFromCart","quote","_x6","_x7","checkoutActions","initialize","customer","gateway","orderOptions","isResource","captureOrder","orderJson","createStripeSetupIntent","updateStripePaymentIntent","paymentIntent","Checkout","_this$store","_this$store2","FoodTruck","Storefront","storeKey","debug","version","host","publicKey","startsWith","detectAdapter","initializeStores","categories","foodTrucks","extendActions","customers","checkout","hydrateOwner","about","product","is_network","_construct"],"mappings":"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","x_google_ignoreList":[0,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87]} \ No newline at end of file diff --git a/dist/esm/resolver.js b/dist/esm/resolver.js deleted file mode 100644 index 508b38c..0000000 --- a/dist/esm/resolver.js +++ /dev/null @@ -1,2 +0,0 @@ -export{v as Resolver,v as default,l as lookup,u as resources}from"./store-DfOhXl38.js";import"@fleetbase/sdk"; -//# sourceMappingURL=resolver.js.map diff --git a/dist/esm/resolver.js.map b/dist/esm/resolver.js.map deleted file mode 100644 index 0a3a873..0000000 --- a/dist/esm/resolver.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"resolver.js","sources":[],"sourcesContent":[],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/esm/store-DfOhXl38.js b/dist/esm/store-DfOhXl38.js deleted file mode 100644 index 78d6ffa..0000000 --- a/dist/esm/store-DfOhXl38.js +++ /dev/null @@ -1,2 +0,0 @@ -import{Resource as t,StoreActions as e,Collection as r,Place as n,Order as a,ServiceQuote as o,Adapter as i,isResource as s,pluralize as u,singularize as c,BrowserAdapter as d,NodeAdapter as h,extendStoreActions as l,classify as f,Store as m}from"@fleetbase/sdk";function p(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=0;--o){var i=this.tryEntries[o],s=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var u=n.call(i,"catchLoc"),c=n.call(i,"finallyLoc");if(u&&c){if(this.prev=0;--r){var a=this.tryEntries[r];if(a.tryLoc<=this.prev&&n.call(a,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),D(r),p}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var a=n.arg;D(r)}return a}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:H(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),p}},e}function H(t,e){return H=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},H(t,e)}function N(t){return function(t){if(Array.isArray(t))return p(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return p(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?p(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function A(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,e||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:e+""}function L(t){return L="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},L(t)}var j=function(e){function r(){return v(this,r),y(this,r,arguments)}return P(r,t),x(r,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new Ve(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}}])}(),Y=new e({count:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={};return t&&(r.store=t),this.adapter.get("".concat(this.namespace,"/count"),r,e)}}),C=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return v(this,e),y(this,e,[t,r,"review",n])}return P(e,j),x(e,[{key:"getMedia",value:function(){}},{key:"getPhotos",value:function(){}},{key:"getVideos",value:function(){}}])}(),F=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(t)};function W(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"USD",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"symbol";return new Intl.NumberFormat("en-US",{style:"currency",currency:e,currencyDisplay:r}).format(t)}var I=function(t){var e=null==t;if(e)return e;if("number"==typeof t.size)return!t.size;var r=L(t);if("object"===r){var n=t.size;if("number"==typeof n)return!n}if("number"==typeof t.length&&"function"!==r)return!t.length;if("object"===r){var a=t.length;if("number"==typeof a)return!a}return!1},Q=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return v(this,e),y(this,e,[t,r,"product",n])}return P(e,j),x(e,[{key:"variants",value:function(){return this.getAttribute("variants")}},{key:"addons",value:function(){return this.getAttribute("addon_categories")}},{key:"isOnSale",get:function(){return this.getAttribute("is_on_sale")}},{key:"isNotOnSale",get:function(){return!this.getAttribute("is_on_sale")}},{key:"formattedAmount",get:function(){var t=this.getAttributes(["price","sale_price","currency"]),e=t.price,r=t.sale_price,n=t.currency;return this.isOnSale?I(r)||I(n)?null:W(r/100,n):I(e)||I(n)?null:W(e/100,n)}},{key:"getReviews",value:function(){var t=this;return this.adapter.get("reviews",{store:this.id}).then((function(e){return new r(e.map((function(e){return new C(e,t.adapter)})))}))}}])}(),R=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return v(this,e),y(this,e,[t,r,"category",n])}return P(e,j),x(e,[{key:"getProducts",value:function(){var t=this;return this.adapter.get("products",{category:this.id}).then((function(e){return new r(e.map((function(e){return new Q(e,t.adapter)})))}))}}])}(),G=new e({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(F(t))return this.adapter.post("customers/login-with-sms",{phone:t});if(!e)throw new Error("Login requires password!");return this.adapter.post("customers/login",D({identity:t,password:e},r)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("customers/verify-code",D({identity:t,code:e},r)).then(this.afterFetch.bind(this))},requestCreationCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"email";return this.adapter.post("customers/request-creation-code",{identity:t,mode:e})},create:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("customers",D({identity:t,code:e},r)).then(this.afterFetch.bind(this))},retrieve:function(t){return this.findRecord(t)}}),z=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return v(this,e),y(this,e,[t,r,"customer",D({actions:G},n)])}return P(e,j),x(e,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new Ve(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"token",get:function(){return this.getAttribute("token")}},{key:"syncDevice",value:(u=w(q().mark((function t(e){var r=this;return q().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this.adapter.setHeaders({"Customer-Token":this.token}).post("customers/register-device",e).then((function(){return r})));case 1:case"end":return t.stop()}}),t,this)}))),function(t){return u.apply(this,arguments)})},{key:"performAuthorizedRequest",value:(s=w(q().mark((function t(e){var r,n,a,o,i=arguments;return q().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=i.length>1&&void 0!==i[1]?i[1]:{},n=i.length>2&&void 0!==i[2]?i[2]:"GET",t.prev=2,a={"Customer-Token":this.token},t.next=6,this.adapter.setHeaders(a)[n.toLowerCase()](e,r);case 6:return o=t.sent,t.abrupt("return",o);case 10:throw t.prev=10,t.t0=t.catch(2),console.error("Error in ".concat(n," request to ").concat(e,":"),t.t0),t.t0;case 14:case"end":return t.stop()}}),t,this,[[2,10]])}))),function(t){return s.apply(this,arguments)})},{key:"getSavedPlaces",value:(i=w(q().mark((function t(){var e,a=this;return q().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,this.performAuthorizedRequest("customers/places");case 3:return e=t.sent,t.abrupt("return",new r(e.map((function(t){return new n(t,a.adapter)}))));case 7:throw t.prev=7,t.t0=t.catch(0),new Error("Failed to retrieve saved places");case 10:case"end":return t.stop()}}),t,this,[[0,7]])}))),function(){return i.apply(this,arguments)})},{key:"getOrderHistory",value:(o=w(q().mark((function t(){var e,n,o=this,i=arguments;return q().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},t.prev=1,t.next=4,this.performAuthorizedRequest("customers/orders",e);case 4:return n=t.sent,t.abrupt("return",new r(n.map((function(t){return new a(t,o.adapter)}))));case 8:throw t.prev=8,t.t0=t.catch(1),new Error("Failed to retrieve order history");case 11:case"end":return t.stop()}}),t,this,[[1,8]])}))),function(){return o.apply(this,arguments)})},{key:"getStripeEphemeralKey",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.setHeaders({"Customer-Token":this.token}).post("customers/stripe-ephemeral-key",t)}},{key:"getStripeSetupIntent",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.setHeaders({"Customer-Token":this.token}).post("customers/stripe-setup-intent",t)}}]);var o,i,s,u}(),B=Array.isArray,_=new e({create:void 0,findAll:void 0,query:void 0,queryRecord:void 0,add:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/").concat(e),D(D({},n),{},{quantity:r}),a).then(this.afterFetch.bind(this))},update:function(t,e,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return this.adapter.put("".concat(this.namespace,"/").concat(t,"/").concat(e),D(D({},n),{},{quantity:r}),a).then(this.afterFetch.bind(this))},remove:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete("".concat(this.namespace,"/").concat(t,"/").concat(e),{},r).then(this.afterFetch.bind(this))},empty:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.put("".concat(this.namespace,"/").concat(t,"/empty"),{},e).then(this.afterFetch.bind(this))},retrieve:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return this.findRecord(t)}}),X=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return v(this,e),y(this,e,[t,r,"cart",D({actions:_},n)])}return P(e,j),x(e,[{key:"add",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return t instanceof Q&&(t=t.id),this.store.add(this.id,t,e,r,n)}},{key:"update",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.store.update(this.id,t,e,r,n)}},{key:"remove",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.remove(this.id,t,e)}},{key:"empty",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.store.empty(this.id,t)}},{key:"delete",value:function(){return this.destroy()}},{key:"refresh",value:function(){return this.store.retrieve(this.id)}},{key:"subtotal",value:function(){var t=0;return this.contents().forEach((function(e){t+=e.subtotal})),t}},{key:"contents",value:function(){return this.getAttribute("items",[])}},{key:"hasProduct",value:function(t){return-1!==this.contents().findIndex((function(e){return e.product_id===t}))}},{key:"isEmpty",get:function(){var t=this.contents();return!B(t)||0===t.length}},{key:"isNotEmpty",get:function(){return!this.isEmpty}}])}(),$=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return v(this,e),y(this,e,[t,r,"payment-gateway",n])}return P(e,j),x(e,[{key:"type",get:function(){return this.getAttribute("type")}},{key:"code",get:function(){return this.getAttribute("code")}},{key:"isCashGateway",get:function(){return"cash"===this.type}},{key:"isStripeGateway",get:function(){return"stripe"===this.type}},{key:"setCheckoutToken",value:function(t){this.token=t}},{key:"getCheckoutToken",value:function(){return this.token}},{key:"findRecord",value:function(){throw new Error("There is no findRecord() method for payment gateways!")}},{key:"create",value:function(){throw new Error("There is no create() method for payment gateways!")}},{key:"update",value:function(){throw new Error("There is no update() method for payment gateways!")}},{key:"destroy",value:function(){throw new Error("There is no destroy() method for payment gateways!")}},{key:"reload",value:function(){throw new Error("There is no reload() method for payment gateways!")}}])}();function K(t){const e=Object.prototype.toString.call(t);return t instanceof Date||"object"==typeof t&&"[object Date]"===e?new t.constructor(+t):"number"==typeof t||"[object Number]"===e||"string"==typeof t||"[object String]"===e?new Date(t):new Date(NaN)}function Z(t,e){return t instanceof Date?new t.constructor(e):new Date(e)}function J(t,e){const r=K(t);return isNaN(e)?Z(t,NaN):e?(r.setDate(r.getDate()+e),r):r}let U={};function V(){return U}function tt(t,e){const r=V(),n=e?.weekStartsOn??e?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,a=K(t),o=a.getDay(),i=(o=a.getTime()?r+1:e.getTime()>=i.getTime()?r:r-1}function nt(t){const e=K(t);return e.setHours(0,0,0,0),e}function at(t){const e=K(t),r=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return r.setUTCFullYear(e.getFullYear()),+t-+r}function ot(t){if(!(e=t,e instanceof Date||"object"==typeof e&&"[object Date]"===Object.prototype.toString.call(e)||"number"==typeof t))return!1;var e;const r=K(t);return!isNaN(Number(r))}const it={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function st(t){return(e={})=>{const r=e.width?String(e.width):t.defaultWidth;return t.formats[r]||t.formats[t.defaultWidth]}}const ut={date:st({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:st({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:st({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},ct={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function dt(t){return(e,r)=>{let n;if("formatting"===(r?.context?String(r.context):"standalone")&&t.formattingValues){const e=t.defaultFormattingWidth||t.defaultWidth,a=r?.width?String(r.width):e;n=t.formattingValues[a]||t.formattingValues[e]}else{const e=t.defaultWidth,a=r?.width?String(r.width):t.defaultWidth;n=t.values[a]||t.values[e]}return n[t.argumentCallback?t.argumentCallback(e):e]}}function ht(t){return(e,r={})=>{const n=r.width,a=n&&t.matchPatterns[n]||t.matchPatterns[t.defaultMatchWidth],o=e.match(a);if(!o)return null;const i=o[0],s=n&&t.parsePatterns[n]||t.parsePatterns[t.defaultParseWidth],u=Array.isArray(s)?function(t,e){for(let r=0;rt.test(i))):function(t,e){for(const r in t)if(Object.prototype.hasOwnProperty.call(t,r)&&e(t[r]))return r;return}(s,(t=>t.test(i)));let c;c=t.valueCallback?t.valueCallback(u):u,c=r.valueCallback?r.valueCallback(c):c;return{value:c,rest:e.slice(i.length)}}}var lt;const ft={code:"en-US",formatDistance:(t,e,r)=>{let n;const a=it[t];return n="string"==typeof a?a:1===e?a.one:a.other.replace("{{count}}",e.toString()),r?.addSuffix?r.comparison&&r.comparison>0?"in "+n:n+" ago":n},formatLong:ut,formatRelative:(t,e,r,n)=>ct[t],localize:{ordinalNumber:(t,e)=>{const r=Number(t),n=r%100;if(n>20||n<10)switch(n%10){case 1:return r+"st";case 2:return r+"nd";case 3:return r+"rd"}return r+"th"},era:dt({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:dt({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:t=>t-1}),month:dt({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:dt({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:dt({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(lt={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:t=>parseInt(t,10)},(t,e={})=>{const r=t.match(lt.matchPattern);if(!r)return null;const n=r[0],a=t.match(lt.parsePattern);if(!a)return null;let o=lt.valueCallback?lt.valueCallback(a[0]):a[0];return o=e.valueCallback?e.valueCallback(o):o,{value:o,rest:t.slice(n.length)}}),era:ht({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:ht({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:t=>t+1}),month:ht({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:ht({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:ht({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function mt(t){const e=K(t),r=function(t,e){const r=nt(t),n=nt(e),a=+r-at(r),o=+n-at(n);return Math.round((a-o)/864e5)}(e,function(t){const e=K(t),r=Z(t,0);return r.setFullYear(e.getFullYear(),0,1),r.setHours(0,0,0,0),r}(e));return r+1}function pt(t){const e=K(t),r=+et(e)-+function(t){const e=rt(t),r=Z(t,0);return r.setFullYear(e,0,4),r.setHours(0,0,0,0),et(r)}(e);return Math.round(r/6048e5)+1}function gt(t,e){const r=K(t),n=r.getFullYear(),a=V(),o=e?.firstWeekContainsDate??e?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,i=Z(t,0);i.setFullYear(n+1,0,o),i.setHours(0,0,0,0);const s=tt(i,e),u=Z(t,0);u.setFullYear(n,0,o),u.setHours(0,0,0,0);const c=tt(u,e);return r.getTime()>=s.getTime()?n+1:r.getTime()>=c.getTime()?n:n-1}function wt(t,e){const r=K(t),n=+tt(r,e)-+function(t,e){const r=V(),n=e?.firstWeekContainsDate??e?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,a=gt(t,e),o=Z(t,0);return o.setFullYear(a,0,n),o.setHours(0,0,0,0),tt(o,e)}(r,e);return Math.round(n/6048e5)+1}function yt(t,e){return(t<0?"-":"")+Math.abs(t).toString().padStart(e,"0")}const vt={y(t,e){const r=t.getFullYear(),n=r>0?r:1-r;return yt("yy"===e?n%100:n,e.length)},M(t,e){const r=t.getMonth();return"M"===e?String(r+1):yt(r+1,2)},d:(t,e)=>yt(t.getDate(),e.length),a(t,e){const r=t.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return r.toUpperCase();case"aaa":return r;case"aaaaa":return r[0];default:return"am"===r?"a.m.":"p.m."}},h:(t,e)=>yt(t.getHours()%12||12,e.length),H:(t,e)=>yt(t.getHours(),e.length),m:(t,e)=>yt(t.getMinutes(),e.length),s:(t,e)=>yt(t.getSeconds(),e.length),S(t,e){const r=e.length,n=t.getMilliseconds();return yt(Math.trunc(n*Math.pow(10,r-3)),e.length)}},bt="midnight",kt="noon",xt="morning",Tt="afternoon",Mt="evening",Pt="night",St={G:function(t,e,r){const n=t.getFullYear()>0?1:0;switch(e){case"G":case"GG":case"GGG":return r.era(n,{width:"abbreviated"});case"GGGGG":return r.era(n,{width:"narrow"});default:return r.era(n,{width:"wide"})}},y:function(t,e,r){if("yo"===e){const e=t.getFullYear(),n=e>0?e:1-e;return r.ordinalNumber(n,{unit:"year"})}return vt.y(t,e)},Y:function(t,e,r,n){const a=gt(t,n),o=a>0?a:1-a;if("YY"===e){return yt(o%100,2)}return"Yo"===e?r.ordinalNumber(o,{unit:"year"}):yt(o,e.length)},R:function(t,e){return yt(rt(t),e.length)},u:function(t,e){return yt(t.getFullYear(),e.length)},Q:function(t,e,r){const n=Math.ceil((t.getMonth()+1)/3);switch(e){case"Q":return String(n);case"QQ":return yt(n,2);case"Qo":return r.ordinalNumber(n,{unit:"quarter"});case"QQQ":return r.quarter(n,{width:"abbreviated",context:"formatting"});case"QQQQQ":return r.quarter(n,{width:"narrow",context:"formatting"});default:return r.quarter(n,{width:"wide",context:"formatting"})}},q:function(t,e,r){const n=Math.ceil((t.getMonth()+1)/3);switch(e){case"q":return String(n);case"qq":return yt(n,2);case"qo":return r.ordinalNumber(n,{unit:"quarter"});case"qqq":return r.quarter(n,{width:"abbreviated",context:"standalone"});case"qqqqq":return r.quarter(n,{width:"narrow",context:"standalone"});default:return r.quarter(n,{width:"wide",context:"standalone"})}},M:function(t,e,r){const n=t.getMonth();switch(e){case"M":case"MM":return vt.M(t,e);case"Mo":return r.ordinalNumber(n+1,{unit:"month"});case"MMM":return r.month(n,{width:"abbreviated",context:"formatting"});case"MMMMM":return r.month(n,{width:"narrow",context:"formatting"});default:return r.month(n,{width:"wide",context:"formatting"})}},L:function(t,e,r){const n=t.getMonth();switch(e){case"L":return String(n+1);case"LL":return yt(n+1,2);case"Lo":return r.ordinalNumber(n+1,{unit:"month"});case"LLL":return r.month(n,{width:"abbreviated",context:"standalone"});case"LLLLL":return r.month(n,{width:"narrow",context:"standalone"});default:return r.month(n,{width:"wide",context:"standalone"})}},w:function(t,e,r,n){const a=wt(t,n);return"wo"===e?r.ordinalNumber(a,{unit:"week"}):yt(a,e.length)},I:function(t,e,r){const n=pt(t);return"Io"===e?r.ordinalNumber(n,{unit:"week"}):yt(n,e.length)},d:function(t,e,r){return"do"===e?r.ordinalNumber(t.getDate(),{unit:"date"}):vt.d(t,e)},D:function(t,e,r){const n=mt(t);return"Do"===e?r.ordinalNumber(n,{unit:"dayOfYear"}):yt(n,e.length)},E:function(t,e,r){const n=t.getDay();switch(e){case"E":case"EE":case"EEE":return r.day(n,{width:"abbreviated",context:"formatting"});case"EEEEE":return r.day(n,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(n,{width:"short",context:"formatting"});default:return r.day(n,{width:"wide",context:"formatting"})}},e:function(t,e,r,n){const a=t.getDay(),o=(a-n.weekStartsOn+8)%7||7;switch(e){case"e":return String(o);case"ee":return yt(o,2);case"eo":return r.ordinalNumber(o,{unit:"day"});case"eee":return r.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return r.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(a,{width:"short",context:"formatting"});default:return r.day(a,{width:"wide",context:"formatting"})}},c:function(t,e,r,n){const a=t.getDay(),o=(a-n.weekStartsOn+8)%7||7;switch(e){case"c":return String(o);case"cc":return yt(o,e.length);case"co":return r.ordinalNumber(o,{unit:"day"});case"ccc":return r.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return r.day(a,{width:"narrow",context:"standalone"});case"cccccc":return r.day(a,{width:"short",context:"standalone"});default:return r.day(a,{width:"wide",context:"standalone"})}},i:function(t,e,r){const n=t.getDay(),a=0===n?7:n;switch(e){case"i":return String(a);case"ii":return yt(a,e.length);case"io":return r.ordinalNumber(a,{unit:"day"});case"iii":return r.day(n,{width:"abbreviated",context:"formatting"});case"iiiii":return r.day(n,{width:"narrow",context:"formatting"});case"iiiiii":return r.day(n,{width:"short",context:"formatting"});default:return r.day(n,{width:"wide",context:"formatting"})}},a:function(t,e,r){const n=t.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return r.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"aaa":return r.dayPeriod(n,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return r.dayPeriod(n,{width:"narrow",context:"formatting"});default:return r.dayPeriod(n,{width:"wide",context:"formatting"})}},b:function(t,e,r){const n=t.getHours();let a;switch(a=12===n?kt:0===n?bt:n/12>=1?"pm":"am",e){case"b":case"bb":return r.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"bbb":return r.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return r.dayPeriod(a,{width:"narrow",context:"formatting"});default:return r.dayPeriod(a,{width:"wide",context:"formatting"})}},B:function(t,e,r){const n=t.getHours();let a;switch(a=n>=17?Mt:n>=12?Tt:n>=4?xt:Pt,e){case"B":case"BB":case"BBB":return r.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"BBBBB":return r.dayPeriod(a,{width:"narrow",context:"formatting"});default:return r.dayPeriod(a,{width:"wide",context:"formatting"})}},h:function(t,e,r){if("ho"===e){let e=t.getHours()%12;return 0===e&&(e=12),r.ordinalNumber(e,{unit:"hour"})}return vt.h(t,e)},H:function(t,e,r){return"Ho"===e?r.ordinalNumber(t.getHours(),{unit:"hour"}):vt.H(t,e)},K:function(t,e,r){const n=t.getHours()%12;return"Ko"===e?r.ordinalNumber(n,{unit:"hour"}):yt(n,e.length)},k:function(t,e,r){let n=t.getHours();return 0===n&&(n=24),"ko"===e?r.ordinalNumber(n,{unit:"hour"}):yt(n,e.length)},m:function(t,e,r){return"mo"===e?r.ordinalNumber(t.getMinutes(),{unit:"minute"}):vt.m(t,e)},s:function(t,e,r){return"so"===e?r.ordinalNumber(t.getSeconds(),{unit:"second"}):vt.s(t,e)},S:function(t,e){return vt.S(t,e)},X:function(t,e,r){const n=t.getTimezoneOffset();if(0===n)return"Z";switch(e){case"X":return Dt(n);case"XXXX":case"XX":return Ot(n);default:return Ot(n,":")}},x:function(t,e,r){const n=t.getTimezoneOffset();switch(e){case"x":return Dt(n);case"xxxx":case"xx":return Ot(n);default:return Ot(n,":")}},O:function(t,e,r){const n=t.getTimezoneOffset();switch(e){case"O":case"OO":case"OOO":return"GMT"+Et(n,":");default:return"GMT"+Ot(n,":")}},z:function(t,e,r){const n=t.getTimezoneOffset();switch(e){case"z":case"zz":case"zzz":return"GMT"+Et(n,":");default:return"GMT"+Ot(n,":")}},t:function(t,e,r){return yt(Math.trunc(t.getTime()/1e3),e.length)},T:function(t,e,r){return yt(t.getTime(),e.length)}};function Et(t,e=""){const r=t>0?"-":"+",n=Math.abs(t),a=Math.trunc(n/60),o=n%60;return 0===o?r+String(a):r+String(a)+e+yt(o,2)}function Dt(t,e){if(t%60==0){return(t>0?"-":"+")+yt(Math.abs(t)/60,2)}return Ot(t,e)}function Ot(t,e=""){const r=t>0?"-":"+",n=Math.abs(t);return r+yt(Math.trunc(n/60),2)+e+yt(n%60,2)}const qt=(t,e)=>{switch(t){case"P":return e.date({width:"short"});case"PP":return e.date({width:"medium"});case"PPP":return e.date({width:"long"});default:return e.date({width:"full"})}},Ht=(t,e)=>{switch(t){case"p":return e.time({width:"short"});case"pp":return e.time({width:"medium"});case"ppp":return e.time({width:"long"});default:return e.time({width:"full"})}},Nt={p:Ht,P:(t,e)=>{const r=t.match(/(P+)(p+)?/)||[],n=r[1],a=r[2];if(!a)return qt(t,e);let o;switch(n){case"P":o=e.dateTime({width:"short"});break;case"PP":o=e.dateTime({width:"medium"});break;case"PPP":o=e.dateTime({width:"long"});break;default:o=e.dateTime({width:"full"})}return o.replace("{{date}}",qt(n,e)).replace("{{time}}",Ht(a,e))}},At=/^D+$/,Lt=/^Y+$/,jt=["D","DD","YY","YYYY"];function Yt(t){return At.test(t)}function Ct(t){return Lt.test(t)}function Ft(t,e,r){const n=function(t,e,r){const n="Y"===t[0]?"years":"days of the month";return`Use \`${t.toLowerCase()}\` instead of \`${t}\` (in \`${e}\`) for formatting ${n} to the input \`${r}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}(t,e,r);if(console.warn(n),jt.includes(t))throw new RangeError(n)}const Wt=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,It=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Qt=/^'([^]*?)'?$/,Rt=/''/g,Gt=/[a-zA-Z]/;function zt(t,e,r){const n=V(),a=n.locale??ft,o=n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,i=n.weekStartsOn??n.locale?.options?.weekStartsOn??0,s=K(t);if(!ot(s))throw new RangeError("Invalid time value");let u=e.match(It).map((t=>{const e=t[0];if("p"===e||"P"===e){return(0,Nt[e])(t,a.formatLong)}return t})).join("").match(Wt).map((t=>{if("''"===t)return{isToken:!1,value:"'"};const e=t[0];if("'"===e)return{isToken:!1,value:Bt(t)};if(St[e])return{isToken:!0,value:t};if(e.match(Gt))throw new RangeError("Format string contains an unescaped latin alphabet character `"+e+"`");return{isToken:!1,value:t}}));a.localize.preprocessor&&(u=a.localize.preprocessor(s,u));const c={firstWeekContainsDate:o,weekStartsOn:i,locale:a};return u.map((r=>{if(!r.isToken)return r.value;const n=r.value;(Ct(n)||Yt(n))&&Ft(n,e,String(t));return(0,St[n[0]])(s,n,a.localize,c)})).join("")}function Bt(t){const e=t.match(Qt);return e?e[1].replace(Rt,"'"):t}class _t{subPriority=0;validate(t,e){return!0}}class Xt extends _t{constructor(t,e,r,n,a){super(),this.value=t,this.validateValue=e,this.setValue=r,this.priority=n,a&&(this.subPriority=a)}validate(t,e){return this.validateValue(t,this.value,e)}set(t,e,r){return this.setValue(t,e,this.value,r)}}class $t extends _t{priority=10;subPriority=-1;set(t,e){return e.timestampIsSet?t:Z(t,function(t,e){const r=e instanceof Date?Z(e,0):new e(0);return r.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),r.setHours(t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()),r}(t,Date))}}class Kt{run(t,e,r,n){const a=this.parse(t,e,r,n);return a?{setter:new Xt(a.value,this.validate,this.set,this.priority,this.subPriority),rest:a.rest}:null}validate(t,e,r){return!0}}const Zt=/^(1[0-2]|0?\d)/,Jt=/^(3[0-1]|[0-2]?\d)/,Ut=/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,Vt=/^(5[0-3]|[0-4]?\d)/,te=/^(2[0-3]|[0-1]?\d)/,ee=/^(2[0-4]|[0-1]?\d)/,re=/^(1[0-1]|0?\d)/,ne=/^(1[0-2]|0?\d)/,ae=/^[0-5]?\d/,oe=/^[0-5]?\d/,ie=/^\d/,se=/^\d{1,2}/,ue=/^\d{1,3}/,ce=/^\d{1,4}/,de=/^-?\d+/,he=/^-?\d/,le=/^-?\d{1,2}/,fe=/^-?\d{1,3}/,me=/^-?\d{1,4}/,pe=/^([+-])(\d{2})(\d{2})?|Z/,ge=/^([+-])(\d{2})(\d{2})|Z/,we=/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,ye=/^([+-])(\d{2}):(\d{2})|Z/,ve=/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/;function be(t,e){return t?{value:e(t.value),rest:t.rest}:t}function ke(t,e){const r=e.match(t);return r?{value:parseInt(r[0],10),rest:e.slice(r[0].length)}:null}function xe(t,e){const r=e.match(t);if(!r)return null;if("Z"===r[0])return{value:0,rest:e.slice(1)};return{value:("+"===r[1]?1:-1)*(36e5*(r[2]?parseInt(r[2],10):0)+6e4*(r[3]?parseInt(r[3],10):0)+1e3*(r[5]?parseInt(r[5],10):0)),rest:e.slice(r[0].length)}}function Te(t){return ke(de,t)}function Me(t,e){switch(t){case 1:return ke(ie,e);case 2:return ke(se,e);case 3:return ke(ue,e);case 4:return ke(ce,e);default:return ke(new RegExp("^\\d{1,"+t+"}"),e)}}function Pe(t,e){switch(t){case 1:return ke(he,e);case 2:return ke(le,e);case 3:return ke(fe,e);case 4:return ke(me,e);default:return ke(new RegExp("^-?\\d{1,"+t+"}"),e)}}function Se(t){switch(t){case"morning":return 4;case"evening":return 17;case"pm":case"noon":case"afternoon":return 12;default:return 0}}function Ee(t,e){const r=e>0,n=r?e:1-e;let a;if(n<=50)a=t||100;else{const e=n+50;a=t+100*Math.trunc(e/100)-(t>=e%100?100:0)}return r?a:1-a}function De(t){return t%400==0||t%4==0&&t%100!=0}const Oe=[31,28,31,30,31,30,31,31,30,31,30,31],qe=[31,29,31,30,31,30,31,31,30,31,30,31];function He(t,e,r){const n=V(),a=r?.weekStartsOn??r?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,o=K(t),i=o.getDay(),s=7-a;return J(o,e<0||e>6?e-(i+s)%7:((e%7+7)%7+s)%7-(i+s)%7)}function Ne(t,e){const r=K(t),n=function(t){let e=K(t).getDay();return 0===e&&(e=7),e}(r);return J(r,e-n)}const Ae={G:new class extends Kt{priority=140;parse(t,e,r){switch(e){case"G":case"GG":case"GGG":return r.era(t,{width:"abbreviated"})||r.era(t,{width:"narrow"});case"GGGGG":return r.era(t,{width:"narrow"});default:return r.era(t,{width:"wide"})||r.era(t,{width:"abbreviated"})||r.era(t,{width:"narrow"})}}set(t,e,r){return e.era=r,t.setFullYear(r,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["R","u","t","T"]},y:new class extends Kt{priority=130;incompatibleTokens=["Y","R","u","w","I","i","e","c","t","T"];parse(t,e,r){const n=t=>({year:t,isTwoDigitYear:"yy"===e});switch(e){case"y":return be(Me(4,t),n);case"yo":return be(r.ordinalNumber(t,{unit:"year"}),n);default:return be(Me(e.length,t),n)}}validate(t,e){return e.isTwoDigitYear||e.year>0}set(t,e,r){const n=t.getFullYear();if(r.isTwoDigitYear){const e=Ee(r.year,n);return t.setFullYear(e,0,1),t.setHours(0,0,0,0),t}const a="era"in e&&1!==e.era?1-r.year:r.year;return t.setFullYear(a,0,1),t.setHours(0,0,0,0),t}},Y:new class extends Kt{priority=130;parse(t,e,r){const n=t=>({year:t,isTwoDigitYear:"YY"===e});switch(e){case"Y":return be(Me(4,t),n);case"Yo":return be(r.ordinalNumber(t,{unit:"year"}),n);default:return be(Me(e.length,t),n)}}validate(t,e){return e.isTwoDigitYear||e.year>0}set(t,e,r,n){const a=gt(t,n);if(r.isTwoDigitYear){const e=Ee(r.year,a);return t.setFullYear(e,0,n.firstWeekContainsDate),t.setHours(0,0,0,0),tt(t,n)}const o="era"in e&&1!==e.era?1-r.year:r.year;return t.setFullYear(o,0,n.firstWeekContainsDate),t.setHours(0,0,0,0),tt(t,n)}incompatibleTokens=["y","R","u","Q","q","M","L","I","d","D","i","t","T"]},R:new class extends Kt{priority=130;parse(t,e){return Pe("R"===e?4:e.length,t)}set(t,e,r){const n=Z(t,0);return n.setFullYear(r,0,4),n.setHours(0,0,0,0),et(n)}incompatibleTokens=["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"]},u:new class extends Kt{priority=130;parse(t,e){return Pe("u"===e?4:e.length,t)}set(t,e,r){return t.setFullYear(r,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["G","y","Y","R","w","I","i","e","c","t","T"]},Q:new class extends Kt{priority=120;parse(t,e,r){switch(e){case"Q":case"QQ":return Me(e.length,t);case"Qo":return r.ordinalNumber(t,{unit:"quarter"});case"QQQ":return r.quarter(t,{width:"abbreviated",context:"formatting"})||r.quarter(t,{width:"narrow",context:"formatting"});case"QQQQQ":return r.quarter(t,{width:"narrow",context:"formatting"});default:return r.quarter(t,{width:"wide",context:"formatting"})||r.quarter(t,{width:"abbreviated",context:"formatting"})||r.quarter(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=1&&e<=4}set(t,e,r){return t.setMonth(3*(r-1),1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","M","L","w","I","d","D","i","e","c","t","T"]},q:new class extends Kt{priority=120;parse(t,e,r){switch(e){case"q":case"qq":return Me(e.length,t);case"qo":return r.ordinalNumber(t,{unit:"quarter"});case"qqq":return r.quarter(t,{width:"abbreviated",context:"standalone"})||r.quarter(t,{width:"narrow",context:"standalone"});case"qqqqq":return r.quarter(t,{width:"narrow",context:"standalone"});default:return r.quarter(t,{width:"wide",context:"standalone"})||r.quarter(t,{width:"abbreviated",context:"standalone"})||r.quarter(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=1&&e<=4}set(t,e,r){return t.setMonth(3*(r-1),1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","Q","M","L","w","I","d","D","i","e","c","t","T"]},M:new class extends Kt{incompatibleTokens=["Y","R","q","Q","L","w","I","D","i","e","c","t","T"];priority=110;parse(t,e,r){const n=t=>t-1;switch(e){case"M":return be(ke(Zt,t),n);case"MM":return be(Me(2,t),n);case"Mo":return be(r.ordinalNumber(t,{unit:"month"}),n);case"MMM":return r.month(t,{width:"abbreviated",context:"formatting"})||r.month(t,{width:"narrow",context:"formatting"});case"MMMMM":return r.month(t,{width:"narrow",context:"formatting"});default:return r.month(t,{width:"wide",context:"formatting"})||r.month(t,{width:"abbreviated",context:"formatting"})||r.month(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.setMonth(r,1),t.setHours(0,0,0,0),t}},L:new class extends Kt{priority=110;parse(t,e,r){const n=t=>t-1;switch(e){case"L":return be(ke(Zt,t),n);case"LL":return be(Me(2,t),n);case"Lo":return be(r.ordinalNumber(t,{unit:"month"}),n);case"LLL":return r.month(t,{width:"abbreviated",context:"standalone"})||r.month(t,{width:"narrow",context:"standalone"});case"LLLLL":return r.month(t,{width:"narrow",context:"standalone"});default:return r.month(t,{width:"wide",context:"standalone"})||r.month(t,{width:"abbreviated",context:"standalone"})||r.month(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.setMonth(r,1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","w","I","D","i","e","c","t","T"]},w:new class extends Kt{priority=100;parse(t,e,r){switch(e){case"w":return ke(Vt,t);case"wo":return r.ordinalNumber(t,{unit:"week"});default:return Me(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,e,r,n){return tt(function(t,e,r){const n=K(t),a=wt(n,r)-e;return n.setDate(n.getDate()-7*a),n}(t,r,n),n)}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","i","t","T"]},I:new class extends Kt{priority=100;parse(t,e,r){switch(e){case"I":return ke(Vt,t);case"Io":return r.ordinalNumber(t,{unit:"week"});default:return Me(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,e,r){return et(function(t,e){const r=K(t),n=pt(r)-e;return r.setDate(r.getDate()-7*n),r}(t,r))}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","e","c","t","T"]},d:new class extends Kt{priority=90;subPriority=1;parse(t,e,r){switch(e){case"d":return ke(Jt,t);case"do":return r.ordinalNumber(t,{unit:"date"});default:return Me(e.length,t)}}validate(t,e){const r=De(t.getFullYear()),n=t.getMonth();return r?e>=1&&e<=qe[n]:e>=1&&e<=Oe[n]}set(t,e,r){return t.setDate(r),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","w","I","D","i","e","c","t","T"]},D:new class extends Kt{priority=90;subpriority=1;parse(t,e,r){switch(e){case"D":case"DD":return ke(Ut,t);case"Do":return r.ordinalNumber(t,{unit:"date"});default:return Me(e.length,t)}}validate(t,e){return De(t.getFullYear())?e>=1&&e<=366:e>=1&&e<=365}set(t,e,r){return t.setMonth(0,r),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","L","w","I","d","E","i","e","c","t","T"]},E:new class extends Kt{priority=90;parse(t,e,r){switch(e){case"E":case"EE":case"EEE":return r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});case"EEEEE":return r.day(t,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});default:return r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=He(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["D","i","e","c","t","T"]},e:new class extends Kt{priority=90;parse(t,e,r,n){const a=t=>{const e=7*Math.floor((t-1)/7);return(t+n.weekStartsOn+6)%7+e};switch(e){case"e":case"ee":return be(Me(e.length,t),a);case"eo":return be(r.ordinalNumber(t,{unit:"day"}),a);case"eee":return r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});case"eeeee":return r.day(t,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});default:return r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=He(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","c","t","T"]},c:new class extends Kt{priority=90;parse(t,e,r,n){const a=t=>{const e=7*Math.floor((t-1)/7);return(t+n.weekStartsOn+6)%7+e};switch(e){case"c":case"cc":return be(Me(e.length,t),a);case"co":return be(r.ordinalNumber(t,{unit:"day"}),a);case"ccc":return r.day(t,{width:"abbreviated",context:"standalone"})||r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"});case"ccccc":return r.day(t,{width:"narrow",context:"standalone"});case"cccccc":return r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"});default:return r.day(t,{width:"wide",context:"standalone"})||r.day(t,{width:"abbreviated",context:"standalone"})||r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=He(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","e","t","T"]},i:new class extends Kt{priority=90;parse(t,e,r){const n=t=>0===t?7:t;switch(e){case"i":case"ii":return Me(e.length,t);case"io":return r.ordinalNumber(t,{unit:"day"});case"iii":return be(r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n);case"iiiii":return be(r.day(t,{width:"narrow",context:"formatting"}),n);case"iiiiii":return be(r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n);default:return be(r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n)}}validate(t,e){return e>=1&&e<=7}set(t,e,r){return(t=Ne(t,r)).setHours(0,0,0,0),t}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","E","e","c","t","T"]},a:new class extends Kt{priority=80;parse(t,e,r){switch(e){case"a":case"aa":case"aaa":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"aaaaa":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(Se(r),0,0,0),t}incompatibleTokens=["b","B","H","k","t","T"]},b:new class extends Kt{priority=80;parse(t,e,r){switch(e){case"b":case"bb":case"bbb":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"bbbbb":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(Se(r),0,0,0),t}incompatibleTokens=["a","B","H","k","t","T"]},B:new class extends Kt{priority=80;parse(t,e,r){switch(e){case"B":case"BB":case"BBB":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"BBBBB":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(Se(r),0,0,0),t}incompatibleTokens=["a","b","t","T"]},h:new class extends Kt{priority=70;parse(t,e,r){switch(e){case"h":return ke(ne,t);case"ho":return r.ordinalNumber(t,{unit:"hour"});default:return Me(e.length,t)}}validate(t,e){return e>=1&&e<=12}set(t,e,r){const n=t.getHours()>=12;return n&&r<12?t.setHours(r+12,0,0,0):n||12!==r?t.setHours(r,0,0,0):t.setHours(0,0,0,0),t}incompatibleTokens=["H","K","k","t","T"]},H:new class extends Kt{priority=70;parse(t,e,r){switch(e){case"H":return ke(te,t);case"Ho":return r.ordinalNumber(t,{unit:"hour"});default:return Me(e.length,t)}}validate(t,e){return e>=0&&e<=23}set(t,e,r){return t.setHours(r,0,0,0),t}incompatibleTokens=["a","b","h","K","k","t","T"]},K:new class extends Kt{priority=70;parse(t,e,r){switch(e){case"K":return ke(re,t);case"Ko":return r.ordinalNumber(t,{unit:"hour"});default:return Me(e.length,t)}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.getHours()>=12&&r<12?t.setHours(r+12,0,0,0):t.setHours(r,0,0,0),t}incompatibleTokens=["h","H","k","t","T"]},k:new class extends Kt{priority=70;parse(t,e,r){switch(e){case"k":return ke(ee,t);case"ko":return r.ordinalNumber(t,{unit:"hour"});default:return Me(e.length,t)}}validate(t,e){return e>=1&&e<=24}set(t,e,r){const n=r<=24?r%24:r;return t.setHours(n,0,0,0),t}incompatibleTokens=["a","b","h","H","K","t","T"]},m:new class extends Kt{priority=60;parse(t,e,r){switch(e){case"m":return ke(ae,t);case"mo":return r.ordinalNumber(t,{unit:"minute"});default:return Me(e.length,t)}}validate(t,e){return e>=0&&e<=59}set(t,e,r){return t.setMinutes(r,0,0),t}incompatibleTokens=["t","T"]},s:new class extends Kt{priority=50;parse(t,e,r){switch(e){case"s":return ke(oe,t);case"so":return r.ordinalNumber(t,{unit:"second"});default:return Me(e.length,t)}}validate(t,e){return e>=0&&e<=59}set(t,e,r){return t.setSeconds(r,0),t}incompatibleTokens=["t","T"]},S:new class extends Kt{priority=30;parse(t,e){return be(Me(e.length,t),(t=>Math.trunc(t*Math.pow(10,3-e.length))))}set(t,e,r){return t.setMilliseconds(r),t}incompatibleTokens=["t","T"]},X:new class extends Kt{priority=10;parse(t,e){switch(e){case"X":return xe(pe,t);case"XX":return xe(ge,t);case"XXXX":return xe(we,t);case"XXXXX":return xe(ve,t);default:return xe(ye,t)}}set(t,e,r){return e.timestampIsSet?t:Z(t,t.getTime()-at(t)-r)}incompatibleTokens=["t","T","x"]},x:new class extends Kt{priority=10;parse(t,e){switch(e){case"x":return xe(pe,t);case"xx":return xe(ge,t);case"xxxx":return xe(we,t);case"xxxxx":return xe(ve,t);default:return xe(ye,t)}}set(t,e,r){return e.timestampIsSet?t:Z(t,t.getTime()-at(t)-r)}incompatibleTokens=["t","T","X"]},t:new class extends Kt{priority=40;parse(t){return Te(t)}set(t,e,r){return[Z(t,1e3*r),{timestampIsSet:!0}]}incompatibleTokens="*"},T:new class extends Kt{priority=20;parse(t){return Te(t)}set(t,e,r){return[Z(t,r),{timestampIsSet:!0}]}incompatibleTokens="*"}},Le=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,je=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Ye=/^'([^]*?)'?$/,Ce=/''/g,Fe=/\S/,We=/[a-zA-Z]/;function Ie(t,e,r,n){const a=Object.assign({},V()),o=a.locale??ft,i=a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,s=a.weekStartsOn??a.locale?.options?.weekStartsOn??0;if(""===e)return""===t?K(r):Z(r,NaN);const u={firstWeekContainsDate:i,weekStartsOn:s,locale:o},c=[new $t],d=e.match(je).map((t=>{const e=t[0];if(e in Nt){return(0,Nt[e])(t,o.formatLong)}return t})).join("").match(Le),h=[];for(let n of d){Ct(n)&&Ft(n,e,t),Yt(n)&&Ft(n,e,t);const a=n[0],i=Ae[a];if(i){const{incompatibleTokens:e}=i;if(Array.isArray(e)){const t=h.find((t=>e.includes(t.token)||t.token===a));if(t)throw new RangeError(`The format string mustn't contain \`${t.fullToken}\` and \`${n}\` at the same time`)}else if("*"===i.incompatibleTokens&&h.length>0)throw new RangeError(`The format string mustn't contain \`${n}\` and any other token at the same time`);h.push({token:a,fullToken:n});const s=i.run(t,n,o.match,u);if(!s)return Z(r,NaN);c.push(s.setter),t=s.rest}else{if(a.match(We))throw new RangeError("Format string contains an unescaped latin alphabet character `"+a+"`");if("''"===n?n="'":"'"===a&&(n=n.match(Ye)[1].replace(Ce,"'")),0!==t.indexOf(n))return Z(r,NaN);t=t.slice(n.length)}}if(t.length>0&&Fe.test(t))return Z(r,NaN);const l=c.map((t=>t.priority)).sort(((t,e)=>e-t)).filter(((t,e,r)=>r.indexOf(t)===e)).map((t=>c.filter((e=>e.priority===t)).sort(((t,e)=>e.subPriority-t.subPriority)))).map((t=>t[0]));let f=K(r);if(isNaN(f.getTime()))return Z(r,NaN);const m={};for(const t of l){if(!t.validate(f,u))return Z(r,NaN);const e=t.set(f,m,u);Array.isArray(e)?(f=e[0],Object.assign(m,e[1])):f=e}return Z(r,f)}var Qe=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return v(this,e),y(this,e,[t,r,"store-hour",n])}return P(e,j),x(e,[{key:"day",get:function(){return this.getAttribute("day")}},{key:"isClosed",get:function(){return null===this.getAttribute("start")&&null===this.getAttribute("end")}},{key:"is24Hours",get:function(){var t=this.startDateInstance,e=this.endDateInstance,r=Math.abs(t-e);return Math.floor(r/1e3/60)/60>23}},{key:"startDateInstance",get:function(){if(!this.hasAttribute("start"))return null;var t=this.getAttribute("start"),e=3===t.split(":").length;return Ie(t,e?"HH:mm:ss":"HH:mm",new Date)}},{key:"endDateInstance",get:function(){if(!this.hasAttribute("end"))return null;var t=this.getAttribute("end"),e=3===t.split(":").length;return Ie(t,e?"HH:mm:ss":"HH:mm",new Date)}},{key:"humanReadableHoursRange",get:function(){return ot(this.startDateInstance)&&ot(this.endDateInstance)?"".concat(zt(this.startDateInstance,"p")," - ").concat(zt(this.endDateInstance,"p")):"".concat(this.start," - ").concat(this.end)}},{key:"humanReadableHours",get:function(){return this.isClosed?"Closed":this.is24Hours?"24 Hours":this.humanReadableHoursRange}},{key:"create",value:function(){throw new Error("There is no create() method store location!")}},{key:"update",value:function(){throw new Error("There is no update() method store location!")}},{key:"destroy",value:function(){throw new Error("There is no destroy() method store location!")}},{key:"reload",value:function(){throw new Error("There is no reload() method store location!")}}])}(),Re=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return v(this,e),y(this,e,[t,r,"store-location",n])}return P(e,j),x(e,[{key:"latitude",get:function(){return this.getAttribute("place.location.coordinates.1")}},{key:"longitude",get:function(){return this.getAttribute("place.location.coordinates.0")}},{key:"hours",get:function(){return new r(this.getAttribute("hours").map((function(t){return new Qe(t)})))}},{key:"isAlwaysOpen",get:function(){return this.hours.every((function(t){return null==t?void 0:t.is24Hours}))}},{key:"today",get:function(){var t=zt(new Date,"EEEE");return this.schedule[t]}},{key:"schedule",get:function(){for(var t={},e=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],n=0;n0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return v(this,e),y(this,e,[t,r,"store",n])}return P(e,j),x(e,[{key:"getReviews",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("reviews",D({store:this.id},e)).then((function(e){return new r(e.map((function(e){return new C(e,t.adapter)})))}))}},{key:"getLocations",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("locations",D({store:this.id},e)).then((function(e){return new r(e.map((function(e){return e.place&&(e.place=new n(e.place)),new Re(e,t.adapter)})))}))}},{key:"getLocation",value:function(t){var e=this;return this.adapter.get("locations/".concat(t),{store:this.id}).then((function(t){return new Re(t,e.adapter)}))}},{key:"getPaymentGateways",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("gateways",e).then((function(e){return new r(e.map((function(e){return new $(e,t.adapter)})))}))}},{key:"getPaymentGateway",value:function(t){var e=this;return this.adapter.get("gateways/".concat(t)).then((function(t){return new $(t,e.adapter)}))}}])}(),ze=Array.isArray,Be=function(t){function e(){var t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return v(this,e),r instanceof i?O(t,t=y(this,e,[{},r,"service-quote",a])):y(this,e,[r,n,"service-quote",a])}return P(e,o),x(e,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new Ve(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"formattedAmount",get:function(){var t=this.getAttributes(["amount","currency"]),e=t.amount,r=t.currency;return I(e)||I(r)?null:W(e/100,r)}},{key:"fetchServiceQuotesFromCart",value:(a=w(q().mark((function t(n,a,o){var i,s,u,c,d,h,l=this,f=arguments;return q().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return c=f.length>3&&void 0!==f[3]?f[3]:"storefront",d=f.length>4&&void 0!==f[4]&&f[4],null!==(i=n)&&void 0!==i&&i.id&&(n=n.id),null!==(s=a)&&void 0!==s&&s.id&&(a=a.id),null!==(u=o)&&void 0!==u&&u.id&&(o=o.id),t.prev=5,t.next=8,this.adapter.get("service-quotes/from-cart",{origin:n,destination:a,cart:o,config:c,all:d});case 8:if(h=t.sent,!ze(h)){t.next=11;break}return t.abrupt("return",new r(h.map((function(t){return new e(t,l.adapter)}))));case 11:return t.abrupt("return",new e(h,this.adapter));case 14:throw t.prev=14,t.t0=t.catch(5),console.error("Error fetching service quotes:",t.t0),t.t0;case 18:case"end":return t.stop()}}),t,this,[[5,14]])}))),function(t,e,r){return a.apply(this,arguments)})}],[{key:"getFromCart",value:(n=w(q().mark((function t(r,n,a,o){var i,s,u,c=arguments;return q().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=c.length>4&&void 0!==c[4]?c[4]:"storefront",s=c.length>5&&void 0!==c[5]&&c[5],u=new e(r),t.abrupt("return",u.fetchServiceQuotesFromCart(n,a,o,i,s));case 4:case"end":return t.stop()}}),t)}))),function(t,e,r,a){return n.apply(this,arguments)})}]);var n,a}(),_e=new e({create:void 0,findAll:void 0,query:void 0,queryRecord:void 0,initialize:function(t,e,r,n){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return s(t)&&(t=t.id),s(e)&&(e=e.id),s(r)&&(r=r.id),s(n)&&(n=n.getAttribute("code")),this.adapter.get("".concat(this.namespace,"/before"),D(D({},a),{},{customer:t,cart:e,serviceQuote:r,gateway:n}),o)},captureOrder:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/capture"),{token:t,transactionDetails:e},r).then((function(t){return new a(t)}))},createStripeSetupIntent:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return s(t)&&(t=t.id),this.adapter.post("".concat(this.namespace,"/stripe-setup-intent"),{customer:t},e)},updateStripePaymentIntent:function(t,e,r,n){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return s(e)&&(e=e.id),s(r)&&(r=r.id),s(n)&&(n=n.id),this.adapter.put("".concat(this.namespace,"/stripe-update-payment-intent"),D({paymentIntent:t,customer:e,cart:r,serviceQuote:n},a),o)}}),Xe=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return v(this,e),y(this,e,[t,r,"checkout",n])}return P(e,j),x(e,[{key:"initialize",value:function(){var t;return(t=this.store).initialize.apply(t,arguments)}},{key:"captureOrder",value:function(){var t;return(t=this.store).captureOrder.apply(t,arguments)}}])}(),$e={Product:Q,Category:R,Customer:z,Cart:X,DeliveryServiceQuote:Be,Store:Ge,StoreLocation:Re,StoreHour:Qe,Checkout:Xe,Review:C},Ke={BrowserAdapter:d,NodeAdapter:h};function Ze(t){return t.split(/[^a-zA-Z0-9]/).filter(Boolean).map((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})).join("")}var Je=function(){return x((function t(){return v(this,t),this.resources=$e,this.adapters=Ke,this.lookup.apply(this,arguments)}),[{key:"lookup",value:function(t,e){var r=u(t),n=Ze(e),a=Array.prototype.slice.call(arguments).slice(2);if(!this[r])throw new Error("Attempted to resolve invalid type");if(!this[r][n])throw new Error("No ".concat(c(t)," named ").concat(e," (").concat(n,") to resolve"));return b(this[r][n],N(a))}}])}(),Ue=function(){return b(Je,Array.prototype.slice.call(arguments))},Ve=function(t){function e(){return v(this,e),y(this,e,arguments)}return P(e,m),x(e,[{key:"extendActions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return l(this,t)}},{key:"serialize",value:function(t){return Ue("resource",f(this.resource),t,this.adapter)}}])}();export{R as C,Be as D,$ as P,C as R,j as S,P as _,x as a,v as b,y as c,w as d,q as e,Ge as f,Re as g,b as h,D as i,Q as j,Ve as k,Ue as l,G as m,_ as n,_e as o,z as p,X as q,Y as r,Qe as s,Xe as t,$e as u,Je as v}; -//# sourceMappingURL=store-DfOhXl38.js.map diff --git a/dist/esm/store-DfOhXl38.js.map b/dist/esm/store-DfOhXl38.js.map deleted file mode 100644 index 730a667..0000000 --- a/dist/esm/store-DfOhXl38.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"store-DfOhXl38.js","sources":["../../src/resource.js","../../src/resources/review.js","../../src/utils/is-phone.js","../../src/utils/format-currency.js","../../src/utils/is-empty.js","../../src/resources/product.js","../../src/resources/category.js","../../src/resources/customer.js","../../src/resources/cart.js","../../src/resources/payment-gateway.js","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/toDate.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/constructFrom.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/addDays.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/_lib/defaultOptions.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/startOfWeek.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/startOfISOWeek.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/getISOWeekYear.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/startOfDay.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/isValid.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/isDate.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/en-US/_lib/formatDistance.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/_lib/buildFormatLongFn.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/en-US/_lib/formatLong.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/en-US/_lib/formatRelative.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/_lib/buildMatchFn.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/_lib/buildMatchPatternFn.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/en-US.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/en-US/_lib/localize.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/locale/en-US/_lib/match.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/getDayOfYear.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/differenceInCalendarDays.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/constants.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/startOfYear.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/getISOWeek.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/startOfISOWeekYear.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/getWeekYear.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/getWeek.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/startOfWeekYear.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/_lib/addLeadingZeros.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/_lib/format/lightFormatters.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/_lib/format/formatters.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/_lib/format/longFormatters.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/_lib/protectedTokens.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/format.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/Setter.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/transpose.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/Parser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/constants.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/utils.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/DateParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/setDay.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/setISODay.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/getISODay.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/EraParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/YearParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/QuarterParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/MonthParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/setWeek.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/setISOWeek.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/DayParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/ISODayParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/AMPMParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/MinuteParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/SecondParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/parse.mjs","../../.yarn/cache/date-fns-npm-3.6.0-e59d980978-0daa1e9a43.zip/node_modules/date-fns/getDefaultOptions.mjs","../../src/resources/store-hour.js","../../src/resources/store-location.js","../../src/resources/store.js","../../src/resources/delivery-service-quote.js","../../src/resources/checkout.js","../../src/resolver.js","../../src/store.js"],"sourcesContent":["import { Resource } from '@fleetbase/sdk';\nimport StorefrontStore from './store';\n\nexport default class StorefrontResource extends Resource {\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new StorefrontStore(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions,\n });\n\n return this;\n }\n}\n","import Resource from '../resource';\nimport { StoreActions } from '@fleetbase/sdk';\n\nconst reviewActions = new StoreActions({\n count: function (storeId, options = {}) {\n const params = {};\n\n if (storeId) {\n params.store = storeId;\n }\n\n return this.adapter.get(`${this.namespace}/count`, params, options);\n },\n});\n\nexport default class Review extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'review', options);\n }\n\n getMedia() {\n // @todo\n }\n\n getPhotos() {\n // @todo\n }\n\n getVideos() {\n // @todo\n }\n}\n\nexport { reviewActions };\n","const isPhone = (phone = '') => {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/g.test(phone);\n};\n\nexport default isPhone;\n","export default function formatCurrency(amount = 0, currency = 'USD', currencyDisplay = 'symbol') {\n return new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency,\n currencyDisplay,\n }).format(amount);\n}\n","const isEmpty = (obj) => {\n const none = obj === null || obj === undefined;\n if (none) {\n return none;\n }\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n const objectType = typeof obj;\n\n if (objectType === 'object') {\n const { size } = obj;\n if (typeof size === 'number') {\n return !size;\n }\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\n }\n\n if (objectType === 'object') {\n const { length } = obj;\n if (typeof length === 'number') {\n return !length;\n }\n }\n\n return false;\n};\n\nexport default isEmpty;\n","import Resource from '../resource';\nimport Review from './review';\nimport { formatCurrency, isEmpty } from '../utils';\nimport { Collection } from '@fleetbase/sdk';\n\nexport default class Product extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'product', options);\n }\n\n variants() {\n return this.getAttribute('variants');\n }\n\n addons() {\n return this.getAttribute('addon_categories');\n }\n\n get isOnSale() {\n return this.getAttribute('is_on_sale');\n }\n\n get isNotOnSale() {\n return !this.getAttribute('is_on_sale');\n }\n\n get formattedAmount() {\n const { price, sale_price, currency } = this.getAttributes(['price', 'sale_price', 'currency']);\n\n if (this.isOnSale) {\n if (isEmpty(sale_price) || isEmpty(currency)) {\n return null;\n }\n\n return formatCurrency(sale_price / 100, currency);\n }\n\n if (isEmpty(price) || isEmpty(currency)) {\n return null;\n }\n\n return formatCurrency(price / 100, currency);\n }\n\n getReviews() {\n return this.adapter.get('reviews', { store: this.id }).then((reviews) => {\n return new Collection(reviews.map((attributes) => new Review(attributes, this.adapter)));\n });\n }\n}\n","import Resource from '../resource';\nimport Product from './product';\nimport { Collection } from '@fleetbase/sdk';\n\nexport default class Category extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'category', options);\n }\n\n getProducts() {\n return this.adapter.get('products', { category: this.id }).then((products) => {\n return new Collection(products.map((attributes) => new Product(attributes, this.adapter)));\n });\n }\n}\n","import { Collection, Order, Place, StoreActions } from '@fleetbase/sdk';\nimport Resource from '../resource';\nimport StorefrontStore from '../store';\nimport { isPhone } from '../utils';\n\nconst customerActions = new StoreActions({\n // const { error } = await storefront.customers.login('+1 111-1111');\n login: function (identity, password = null, attributes = {}) {\n // handle phone number authentication\n if (isPhone(identity)) {\n return this.adapter.post('customers/login-with-sms', { phone: identity });\n }\n\n if (!password) {\n throw new Error('Login requires password!');\n }\n\n return this.adapter.post('customers/login', { identity, password, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n verifyCode: function (identity, code, attributes = {}) {\n return this.adapter.post('customers/verify-code', { identity, code, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n requestCreationCode(identity, mode = 'email') {\n return this.adapter.post('customers/request-creation-code', {\n identity,\n mode,\n });\n },\n\n create(identity, code, attributes = {}) {\n return this.adapter.post('customers', { identity, code, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n retrieve: function (id) {\n return this.findRecord(id);\n },\n});\n\nexport default class Customer extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'customer', {\n actions: customerActions,\n ...options,\n });\n }\n\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new StorefrontStore(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions,\n });\n\n return this;\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n async syncDevice(token) {\n return this.adapter\n .setHeaders({ 'Customer-Token': this.token })\n .post('customers/register-device', token)\n .then(() => {\n return this;\n });\n }\n\n async performAuthorizedRequest(endpoint, params = {}, method = 'GET') {\n try {\n const headers = { 'Customer-Token': this.token };\n const response = await this.adapter.setHeaders(headers)[method.toLowerCase()](endpoint, params);\n return response;\n } catch (error) {\n console.error(`Error in ${method} request to ${endpoint}:`, error);\n throw error;\n }\n }\n\n async getSavedPlaces() {\n try {\n const places = await this.performAuthorizedRequest('customers/places');\n return new Collection(places.map((attributes) => new Place(attributes, this.adapter)));\n } catch (error) {\n throw new Error('Failed to retrieve saved places');\n }\n }\n\n async getOrderHistory(params = {}) {\n try {\n const orders = await this.performAuthorizedRequest('customers/orders', params);\n return new Collection(orders.map((attributes) => new Order(attributes, this.adapter)));\n } catch (error) {\n throw new Error('Failed to retrieve order history');\n }\n }\n\n getStripeEphemeralKey(params = {}) {\n return this.adapter\n .setHeaders({ 'Customer-Token': this.token })\n .post('customers/stripe-ephemeral-key', params);\n }\n\n getStripeSetupIntent(params = {}) {\n return this.adapter\n .setHeaders({ 'Customer-Token': this.token })\n .post('customers/stripe-setup-intent', params);\n }\n}\n\nexport { customerActions };\n","import Resource from '../resource';\nimport Product from './product';\nimport { StoreActions } from '@fleetbase/sdk';\n\nconst { isArray } = Array;\n\nconst cartActions = new StoreActions({\n create: undefined,\n findAll: undefined,\n query: undefined,\n queryRecord: undefined,\n\n add: function (id, productId, quantity = 1, data = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/${productId}`, { ...data, quantity }, options).then(this.afterFetch.bind(this));\n },\n\n update: function (id, cartItemId, quantity, data = {}, options = {}) {\n return this.adapter.put(`${this.namespace}/${id}/${cartItemId}`, { ...data, quantity }, options).then(this.afterFetch.bind(this));\n },\n\n remove: function (id, cartItemId, options = {}) {\n return this.adapter.delete(`${this.namespace}/${id}/${cartItemId}`, {}, options).then(this.afterFetch.bind(this));\n },\n\n empty: function (id, options = {}) {\n return this.adapter.put(`${this.namespace}/${id}/empty`, {}, options).then(this.afterFetch.bind(this));\n },\n\n retrieve: function (id = '') {\n return this.findRecord(id);\n },\n});\n\nexport default class Cart extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'cart', { actions: cartActions, ...options });\n }\n\n add(productId, quantity = 1, data = {}, options = {}) {\n if (productId instanceof Product) {\n productId = productId.id;\n }\n\n return this.store.add(this.id, productId, quantity, data, options);\n }\n\n update(cartItemId, quantity, data = {}, options = {}) {\n return this.store.update(this.id, cartItemId, quantity, data, options);\n }\n\n remove(cartItemId, options = {}) {\n return this.store.remove(this.id, cartItemId, options);\n }\n\n empty(options = {}) {\n return this.store.empty(this.id, options);\n }\n\n delete() {\n return this.destroy();\n }\n\n refresh() {\n return this.store.retrieve(this.id);\n }\n\n subtotal() {\n let subtotal = 0;\n\n this.contents().forEach((cartItem) => {\n subtotal += cartItem.subtotal;\n });\n\n return subtotal;\n }\n\n contents() {\n return this.getAttribute('items', []);\n }\n\n hasProduct(productId) {\n return this.contents().findIndex((cartItem) => cartItem.product_id === productId) !== -1;\n }\n\n get isEmpty() {\n const contents = this.contents();\n\n if (!isArray(contents)) {\n return true;\n }\n\n return contents.length === 0;\n }\n\n get isNotEmpty() {\n return !this.isEmpty;\n }\n}\n\nexport { cartActions };\n","import Resource from '../resource';\n\nexport default class PaymentGateway extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'payment-gateway', options);\n }\n\n get type() {\n return this.getAttribute('type');\n }\n\n get code() {\n return this.getAttribute('code');\n }\n\n get isCashGateway() {\n return this.type === 'cash';\n }\n\n get isStripeGateway() {\n return this.type === 'stripe';\n }\n\n setCheckoutToken(token) {\n this.token = token;\n }\n\n getCheckoutToken() {\n return this.token;\n }\n\n // remove default resource methods\n findRecord() {\n throw new Error('There is no findRecord() method for payment gateways!');\n }\n\n // remove default resource methods\n create() {\n throw new Error('There is no create() method for payment gateways!');\n }\n\n // remove default resource methods\n update() {\n throw new Error('There is no update() method for payment gateways!');\n }\n\n // remove default resource methods\n destroy() {\n throw new Error('There is no destroy() method for payment gateways!');\n }\n\n // remove default resource methods\n reload() {\n throw new Error('There is no reload() method for payment gateways!');\n }\n}\n","/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument) {\n const argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (\n argument instanceof Date ||\n (typeof argument === \"object\" && argStr === \"[object Date]\")\n ) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new argument.constructor(+argument);\n } else if (\n typeof argument === \"number\" ||\n argStr === \"[object Number]\" ||\n typeof argument === \"string\" ||\n argStr === \"[object String]\"\n ) {\n // TODO: Can we get rid of as?\n return new Date(argument);\n } else {\n // TODO: Can we get rid of as?\n return new Date(NaN);\n }\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from 'date-fns'\n *\n * // A function that clones a date preserving the original type\n * function cloneDate Thu Sep 11 2014 00:00:00\n */\nexport function addDays(date, amount) {\n const _date = toDate(date);\n if (isNaN(amount)) return constructFrom(date, NaN);\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return _date;\n }\n _date.setDate(_date.getDate() + amount);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addDays;\n","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","import { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n","import { startOfWeek } from \"./startOfWeek.mjs\";\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfISOWeek(date) {\n return startOfWeek(date, { weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeek;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport function getISOWeekYear(date) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n\n const fourthOfJanuaryOfNextYear = constructFrom(date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n\n const fourthOfJanuaryOfThisYear = constructFrom(date, 0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getISOWeekYear;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport function startOfDay(date) {\n const _date = toDate(date);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n","import { toDate } from \"../toDate.mjs\";\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const _date = toDate(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n","import { isDate } from \"./isDate.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport function isValid(date) {\n if (!isDate(date) && typeof date !== \"number\") {\n return false;\n }\n const _date = toDate(date);\n return !isNaN(Number(_date));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n","/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport function isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.mjs\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","/* eslint-disable no-unused-vars */\n\n/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","import { formatDistance } from \"./en-US/_lib/formatDistance.mjs\";\nimport { formatLong } from \"./en-US/_lib/formatLong.mjs\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.mjs\";\nimport { localize } from \"./en-US/_lib/localize.mjs\";\nimport { match } from \"./en-US/_lib/match.mjs\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.mjs\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.mjs\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.mjs\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { differenceInCalendarDays } from \"./differenceInCalendarDays.mjs\";\nimport { startOfYear } from \"./startOfYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * const result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nexport function getDayOfYear(date) {\n const _date = toDate(date);\n const diff = differenceInCalendarDays(_date, startOfYear(_date));\n const dayOfYear = diff + 1;\n return dayOfYear;\n}\n\n// Fallback for modularized imports:\nexport default getDayOfYear;\n","import { millisecondsInDay } from \"./constants.mjs\";\nimport { startOfDay } from \"./startOfDay.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.mjs\";\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport function differenceInCalendarDays(dateLeft, dateRight) {\n const startOfDayLeft = startOfDay(dateLeft);\n const startOfDayRight = startOfDay(dateRight);\n\n const timestampLeft =\n +startOfDayLeft - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n const timestampRight =\n +startOfDayRight - getTimezoneOffsetInMilliseconds(startOfDayRight);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((timestampLeft - timestampRight) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n","import { toDate } from \"./toDate.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport function startOfYear(date) {\n const cleanDate = toDate(date);\n const _date = constructFrom(date, 0);\n _date.setFullYear(cleanDate.getFullYear(), 0, 1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfYear;\n","import { millisecondsInWeek } from \"./constants.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { startOfISOWeekYear } from \"./startOfISOWeekYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport function getISOWeek(date) {\n const _date = toDate(date);\n const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getISOWeek;\n","import { getISOWeekYear } from \"./getISOWeekYear.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfISOWeekYear(date) {\n const year = getISOWeekYear(date);\n const fourthOfJanuary = constructFrom(date, 0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n return startOfISOWeek(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeekYear;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport function getWeekYear(date, options) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const firstWeekOfNextYear = constructFrom(date, 0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n\n const firstWeekOfThisYear = constructFrom(date, 0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getWeekYear;\n","import { millisecondsInWeek } from \"./constants.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { startOfWeekYear } from \"./startOfWeekYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\n\nexport function getWeek(date, options) {\n const _date = toDate(date);\n const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeek;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { getWeekYear } from \"./getWeekYear.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = getWeekYear(date, options);\n const firstWeek = constructFrom(date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = startOfWeek(firstWeek, options);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n","export function addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? \"-\" : \"\";\n const output = Math.abs(number).toString().padStart(targetLength, \"0\");\n return sign + output;\n}\n","import { addLeadingZeros } from \"../addLeadingZeros.mjs\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nexport const lightFormatters = {\n // Year\n y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === \"yy\" ? year % 100 : year, token.length);\n },\n\n // Month\n M(date, token) {\n const month = date.getMonth();\n return token === \"M\" ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n\n // Day of the month\n d(date, token) {\n return addLeadingZeros(date.getDate(), token.length);\n },\n\n // AM or PM\n a(date, token) {\n const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return dayPeriodEnumValue.toUpperCase();\n case \"aaa\":\n return dayPeriodEnumValue;\n case \"aaaaa\":\n return dayPeriodEnumValue[0];\n case \"aaaa\":\n default:\n return dayPeriodEnumValue === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n\n // Hour [1-12]\n h(date, token) {\n return addLeadingZeros(date.getHours() % 12 || 12, token.length);\n },\n\n // Hour [0-23]\n H(date, token) {\n return addLeadingZeros(date.getHours(), token.length);\n },\n\n // Minute\n m(date, token) {\n return addLeadingZeros(date.getMinutes(), token.length);\n },\n\n // Second\n s(date, token) {\n return addLeadingZeros(date.getSeconds(), token.length);\n },\n\n // Fraction of second\n S(date, token) {\n const numberOfDigits = token.length;\n const milliseconds = date.getMilliseconds();\n const fractionalSeconds = Math.trunc(\n milliseconds * Math.pow(10, numberOfDigits - 3),\n );\n return addLeadingZeros(fractionalSeconds, token.length);\n },\n};\n","import { getDayOfYear } from \"../../getDayOfYear.mjs\";\nimport { getISOWeek } from \"../../getISOWeek.mjs\";\nimport { getISOWeekYear } from \"../../getISOWeekYear.mjs\";\nimport { getWeek } from \"../../getWeek.mjs\";\nimport { getWeekYear } from \"../../getWeekYear.mjs\";\nimport { addLeadingZeros } from \"../addLeadingZeros.mjs\";\nimport { lightFormatters } from \"./lightFormatters.mjs\";\n\nconst dayPeriodEnum = {\n am: \"am\",\n pm: \"pm\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nexport const formatters = {\n // Era\n G: function (date, token, localize) {\n const era = date.getFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return localize.era(era, { width: \"abbreviated\" });\n // A, B\n case \"GGGGG\":\n return localize.era(era, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return localize.era(era, { width: \"wide\" });\n }\n },\n\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === \"yo\") {\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, { unit: \"year\" });\n }\n\n return lightFormatters.y(date, token);\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n const signedWeekYear = getWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === \"YY\") {\n const twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === \"Yo\") {\n return localize.ordinalNumber(weekYear, { unit: \"year\" });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n\n // ISO week-numbering year\n R: function (date, token) {\n const isoWeekYear = getISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n const year = date.getFullYear();\n return addLeadingZeros(year, token.length);\n },\n\n // Quarter\n Q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"QQ\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"qq\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // Month\n M: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n case \"M\":\n case \"MM\":\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // J, F, ..., D\n case \"MMMMM\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return localize.month(month, { width: \"wide\", context: \"formatting\" });\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return String(month + 1);\n // 01, 02, ..., 12\n case \"LL\":\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // J, F, ..., D\n case \"LLLLL\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return localize.month(month, { width: \"wide\", context: \"standalone\" });\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n const week = getWeek(date, options);\n\n if (token === \"wo\") {\n return localize.ordinalNumber(week, { unit: \"week\" });\n }\n\n return addLeadingZeros(week, token.length);\n },\n\n // ISO week of year\n I: function (date, token, localize) {\n const isoWeek = getISOWeek(date);\n\n if (token === \"Io\") {\n return localize.ordinalNumber(isoWeek, { unit: \"week\" });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n\n // Day of the month\n d: function (date, token, localize) {\n if (token === \"do\") {\n return localize.ordinalNumber(date.getDate(), { unit: \"date\" });\n }\n\n return lightFormatters.d(date, token);\n },\n\n // Day of year\n D: function (date, token, localize) {\n const dayOfYear = getDayOfYear(date);\n\n if (token === \"Do\") {\n return localize.ordinalNumber(dayOfYear, { unit: \"dayOfYear\" });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n\n // Day of week\n E: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"EEEEE\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"EEEE\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case \"e\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"ee\":\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case \"eo\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"eee\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"eeeee\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"eeee\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case \"c\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"cc\":\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case \"co\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"ccc\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // T\n case \"ccccc\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"standalone\",\n });\n // Tuesday\n case \"cccc\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // ISO day of week\n i: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case \"i\":\n return String(isoDayOfWeek);\n // 02\n case \"ii\":\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case \"io\":\n return localize.ordinalNumber(isoDayOfWeek, { unit: \"day\" });\n // Tue\n case \"iii\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"iiiii\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"iiiiii\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"iiii\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n const hours = date.getHours();\n const dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"aaa\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"aaaaa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n }\n\n switch (token) {\n case \"b\":\n case \"bb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"bbb\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"bbbbb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"BBBBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === \"ho\") {\n let hours = date.getHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return lightFormatters.h(date, token);\n },\n\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === \"Ho\") {\n return localize.ordinalNumber(date.getHours(), { unit: \"hour\" });\n }\n\n return lightFormatters.H(date, token);\n },\n\n // Hour [0-11]\n K: function (date, token, localize) {\n const hours = date.getHours() % 12;\n\n if (token === \"Ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Hour [1-24]\n k: function (date, token, localize) {\n let hours = date.getHours();\n if (hours === 0) hours = 24;\n\n if (token === \"ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Minute\n m: function (date, token, localize) {\n if (token === \"mo\") {\n return localize.ordinalNumber(date.getMinutes(), { unit: \"minute\" });\n }\n\n return lightFormatters.m(date, token);\n },\n\n // Second\n s: function (date, token, localize) {\n if (token === \"so\") {\n return localize.ordinalNumber(date.getSeconds(), { unit: \"second\" });\n }\n\n return lightFormatters.s(date, token);\n },\n\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return \"Z\";\n }\n\n switch (token) {\n // Hours and optional minutes\n case \"X\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case \"XXXX\":\n case \"XX\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case \"XXXXX\":\n case \"XXX\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case \"x\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case \"xxxx\":\n case \"xx\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case \"xxxxx\":\n case \"xxx\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"O\":\n case \"OO\":\n case \"OOO\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"OOOO\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"zzzz\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Seconds timestamp\n t: function (date, token, _localize) {\n const timestamp = Math.trunc(date.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n\n // Milliseconds timestamp\n T: function (date, token, _localize) {\n const timestamp = date.getTime();\n return addLeadingZeros(timestamp, token.length);\n },\n};\n\nfunction formatTimezoneShort(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = Math.trunc(absOffset / 60);\n const minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n if (offset % 60 === 0) {\n const sign = offset > 0 ? \"-\" : \"+\";\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, delimiter);\n}\n\nfunction formatTimezone(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2);\n const minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n","const dateLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"P\":\n return formatLong.date({ width: \"short\" });\n case \"PP\":\n return formatLong.date({ width: \"medium\" });\n case \"PPP\":\n return formatLong.date({ width: \"long\" });\n case \"PPPP\":\n default:\n return formatLong.date({ width: \"full\" });\n }\n};\n\nconst timeLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"p\":\n return formatLong.time({ width: \"short\" });\n case \"pp\":\n return formatLong.time({ width: \"medium\" });\n case \"ppp\":\n return formatLong.time({ width: \"long\" });\n case \"pppp\":\n default:\n return formatLong.time({ width: \"full\" });\n }\n};\n\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n const matchResult = pattern.match(/(P+)(p+)?/) || [];\n const datePattern = matchResult[1];\n const timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n let dateTimeFormat;\n\n switch (datePattern) {\n case \"P\":\n dateTimeFormat = formatLong.dateTime({ width: \"short\" });\n break;\n case \"PP\":\n dateTimeFormat = formatLong.dateTime({ width: \"medium\" });\n break;\n case \"PPP\":\n dateTimeFormat = formatLong.dateTime({ width: \"long\" });\n break;\n case \"PPPP\":\n default:\n dateTimeFormat = formatLong.dateTime({ width: \"full\" });\n break;\n }\n\n return dateTimeFormat\n .replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong))\n .replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\n\nexport const longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter,\n};\n","const dayOfYearTokenRE = /^D+$/;\nconst weekYearTokenRE = /^Y+$/;\n\nconst throwTokens = [\"D\", \"DD\", \"YY\", \"YYYY\"];\n\nexport function isProtectedDayOfYearToken(token) {\n return dayOfYearTokenRE.test(token);\n}\n\nexport function isProtectedWeekYearToken(token) {\n return weekYearTokenRE.test(token);\n}\n\nexport function warnOrThrowProtectedError(token, format, input) {\n const _message = message(token, format, input);\n console.warn(_message);\n if (throwTokens.includes(token)) throw new RangeError(_message);\n}\n\nfunction message(token, format, input) {\n const subject = token[0] === \"Y\" ? \"years\" : \"days of the month\";\n return `Use \\`${token.toLowerCase()}\\` instead of \\`${token}\\` (in \\`${format}\\`) for formatting ${subject} to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;\n}\n","import { defaultLocale } from \"./_lib/defaultLocale.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\nimport { formatters } from \"./_lib/format/formatters.mjs\";\nimport { longFormatters } from \"./_lib/format/longFormatters.mjs\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.mjs\";\nimport { isValid } from \"./isValid.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { formatters, longFormatters };\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\nexport { format as formatDate };\n\n/**\n * The {@link format} function options.\n */\n\n/**\n * @name format\n * @alias formatDate\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)\n * and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nexport function format(date, formatStr, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const originalDate = toDate(date);\n\n if (!isValid(originalDate)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let parts = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp)\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return { isToken: false, value: \"'\" };\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return { isToken: false, value: cleanEscapedString(substring) };\n }\n\n if (formatters[firstCharacter]) {\n return { isToken: true, value: substring };\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return { isToken: false, value: substring };\n });\n\n // invoke localize preprocessor (only for french locales at the moment)\n if (locale.localize.preprocessor) {\n parts = locale.localize.preprocessor(originalDate, parts);\n }\n\n const formatterOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n return parts\n .map((part) => {\n if (!part.isToken) return part.value;\n\n const token = part.value;\n\n if (\n (!options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)) ||\n (!options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token))\n ) {\n warnOrThrowProtectedError(token, formatStr, String(date));\n }\n\n const formatter = formatters[token[0]];\n return formatter(originalDate, token, locale.localize, formatterOptions);\n })\n .join(\"\");\n}\n\nfunction cleanEscapedString(input) {\n const matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default format;\n","import { transpose } from \"../../transpose.mjs\";\nimport { constructFrom } from \"../../constructFrom.mjs\";\n\nconst TIMEZONE_UNIT_PRIORITY = 10;\n\nexport class Setter {\n subPriority = 0;\n\n validate(_utcDate, _options) {\n return true;\n }\n}\n\nexport class ValueSetter extends Setter {\n constructor(\n value,\n\n validateValue,\n\n setValue,\n\n priority,\n subPriority,\n ) {\n super();\n this.value = value;\n this.validateValue = validateValue;\n this.setValue = setValue;\n this.priority = priority;\n if (subPriority) {\n this.subPriority = subPriority;\n }\n }\n\n validate(date, options) {\n return this.validateValue(date, this.value, options);\n }\n\n set(date, flags, options) {\n return this.setValue(date, flags, this.value, options);\n }\n}\n\nexport class DateToSystemTimezoneSetter extends Setter {\n priority = TIMEZONE_UNIT_PRIORITY;\n subPriority = -1;\n set(date, flags) {\n if (flags.timestampIsSet) return date;\n return constructFrom(date, transpose(date, Date));\n }\n}\n","import { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name transpose\n * @category Generic Helpers\n * @summary Transpose the date to the given constructor.\n *\n * @description\n * The function transposes the date to the given constructor. It helps you\n * to transpose the date in the system time zone to say `UTCDate` or any other\n * date extension.\n *\n * @typeParam DateInputType - The input `Date` type derived from the passed argument.\n * @typeParam DateOutputType - The output `Date` type derived from the passed constructor.\n *\n * @param fromDate - The date to use values from\n * @param constructor - The date constructor to use\n *\n * @returns Date transposed to the given constructor\n *\n * @example\n * // Create July 10, 2022 00:00 in locale time zone\n * const date = new Date(2022, 6, 10)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0800 (Singapore Standard Time)'\n *\n * @example\n * // Transpose the date to July 10, 2022 00:00 in UTC\n * transpose(date, UTCDate)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0000 (Coordinated Universal Time)'\n */\nexport function transpose(fromDate, constructor) {\n const date =\n constructor instanceof Date\n ? constructFrom(constructor, 0)\n : new constructor(0);\n date.setFullYear(\n fromDate.getFullYear(),\n fromDate.getMonth(),\n fromDate.getDate(),\n );\n date.setHours(\n fromDate.getHours(),\n fromDate.getMinutes(),\n fromDate.getSeconds(),\n fromDate.getMilliseconds(),\n );\n return date;\n}\n\n// Fallback for modularized imports:\nexport default transpose;\n","import { ValueSetter } from \"./Setter.mjs\";\n\nexport class Parser {\n run(dateString, token, match, options) {\n const result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n\n return {\n setter: new ValueSetter(\n result.value,\n this.validate,\n this.set,\n this.priority,\n this.subPriority,\n ),\n rest: result.rest,\n };\n }\n\n validate(_utcDate, _value, _options) {\n return true;\n }\n}\n","export const numericPatterns = {\n month: /^(1[0-2]|0?\\d)/, // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/, // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/, // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/, // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/, // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/, // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/, // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/, // 0 to 12\n minute: /^[0-5]?\\d/, // 0 to 59\n second: /^[0-5]?\\d/, // 0 to 59\n\n singleDigit: /^\\d/, // 0 to 9\n twoDigits: /^\\d{1,2}/, // 0 to 99\n threeDigits: /^\\d{1,3}/, // 0 to 999\n fourDigits: /^\\d{1,4}/, // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/, // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/, // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/, // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/, // 0 to 9999, -0 to -9999\n};\n\nexport const timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/,\n};\n","import {\n millisecondsInHour,\n millisecondsInMinute,\n millisecondsInSecond,\n} from \"../../constants.mjs\";\nimport { numericPatterns } from \"./constants.mjs\";\n\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest,\n };\n}\n\nexport function parseNumericPattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseTimezonePattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === \"Z\") {\n return {\n value: 0,\n rest: dateString.slice(1),\n };\n }\n\n const sign = matchResult[1] === \"+\" ? 1 : -1;\n const hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n const minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n const seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n\n return {\n value:\n sign *\n (hours * millisecondsInHour +\n minutes * millisecondsInMinute +\n seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\n\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^-?\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case \"morning\":\n return 4;\n case \"evening\":\n return 17;\n case \"pm\":\n case \"noon\":\n case \"afternoon\":\n return 12;\n case \"am\":\n case \"midnight\":\n case \"night\":\n default:\n return 0;\n }\n}\n\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n const isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n const absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n\n let result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n const rangeEnd = absCurrentYear + 50;\n const rangeEndCentury = Math.trunc(rangeEnd / 100) * 100;\n const isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.mjs\";\n\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst DAYS_IN_MONTH_LEAP_YEAR = [\n 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,\n];\n\n// Day of the month\nexport class DateParser extends Parser {\n priority = 90;\n subPriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"d\":\n return parseNumericPattern(numericPatterns.date, dateString);\n case \"do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n const month = date.getMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n\n set(date, _flags, value) {\n date.setDate(value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { addDays } from \"./addDays.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link setDay} function options.\n */\n\n/**\n * @name setDay\n * @category Weekday Helpers\n * @summary Set the day of the week to the given date.\n *\n * @description\n * Set the day of the week to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param day - The day of the week of the new date\n * @param options - An object with options.\n *\n * @returns The new date with the day of the week set\n *\n * @example\n * // Set week day to Sunday, with the default weekStartsOn of Sunday:\n * const result = setDay(new Date(2014, 8, 1), 0)\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Set week day to Sunday, with a weekStartsOn of Monday:\n * const result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setDay(date, day, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date);\n const currentDay = _date.getDay();\n\n const remainder = day % 7;\n const dayIndex = (remainder + 7) % 7;\n\n const delta = 7 - weekStartsOn;\n const diff =\n day < 0 || day > 6\n ? day - ((currentDay + delta) % 7)\n : ((dayIndex + delta) % 7) - ((currentDay + delta) % 7);\n return addDays(_date, diff);\n}\n\n// Fallback for modularized imports:\nexport default setDay;\n","import { addDays } from \"./addDays.mjs\";\nimport { getISODay } from \"./getISODay.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setISODay\n * @category Weekday Helpers\n * @summary Set the day of the ISO week to the given date.\n *\n * @description\n * Set the day of the ISO week to the given date.\n * ISO week starts with Monday.\n * 7 is the index of Sunday, 1 is the index of Monday etc.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param day - The day of the ISO week of the new date\n *\n * @returns The new date with the day of the ISO week set\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * const result = setISODay(new Date(2014, 8, 1), 7)\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setISODay(date, day) {\n const _date = toDate(date);\n const currentDay = getISODay(_date);\n const diff = day - currentDay;\n return addDays(_date, diff);\n}\n\n// Fallback for modularized imports:\nexport default setISODay;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISODay\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The day of ISO week\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * const result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\nexport function getISODay(date) {\n const _date = toDate(date);\n let day = _date.getDay();\n\n if (day === 0) {\n day = 7;\n }\n\n return day;\n}\n\n// Fallback for modularized imports:\nexport default getISODay;\n","import { EraParser } from \"./parsers/EraParser.mjs\";\nimport { YearParser } from \"./parsers/YearParser.mjs\";\nimport { LocalWeekYearParser } from \"./parsers/LocalWeekYearParser.mjs\";\nimport { ISOWeekYearParser } from \"./parsers/ISOWeekYearParser.mjs\";\nimport { ExtendedYearParser } from \"./parsers/ExtendedYearParser.mjs\";\nimport { QuarterParser } from \"./parsers/QuarterParser.mjs\";\nimport { StandAloneQuarterParser } from \"./parsers/StandAloneQuarterParser.mjs\";\nimport { MonthParser } from \"./parsers/MonthParser.mjs\";\nimport { StandAloneMonthParser } from \"./parsers/StandAloneMonthParser.mjs\";\nimport { LocalWeekParser } from \"./parsers/LocalWeekParser.mjs\";\nimport { ISOWeekParser } from \"./parsers/ISOWeekParser.mjs\";\nimport { DateParser } from \"./parsers/DateParser.mjs\";\nimport { DayOfYearParser } from \"./parsers/DayOfYearParser.mjs\";\nimport { DayParser } from \"./parsers/DayParser.mjs\";\nimport { LocalDayParser } from \"./parsers/LocalDayParser.mjs\";\nimport { StandAloneLocalDayParser } from \"./parsers/StandAloneLocalDayParser.mjs\";\nimport { ISODayParser } from \"./parsers/ISODayParser.mjs\";\nimport { AMPMParser } from \"./parsers/AMPMParser.mjs\";\nimport { AMPMMidnightParser } from \"./parsers/AMPMMidnightParser.mjs\";\nimport { DayPeriodParser } from \"./parsers/DayPeriodParser.mjs\";\nimport { Hour1to12Parser } from \"./parsers/Hour1to12Parser.mjs\";\nimport { Hour0to23Parser } from \"./parsers/Hour0to23Parser.mjs\";\nimport { Hour0To11Parser } from \"./parsers/Hour0To11Parser.mjs\";\nimport { Hour1To24Parser } from \"./parsers/Hour1To24Parser.mjs\";\nimport { MinuteParser } from \"./parsers/MinuteParser.mjs\";\nimport { SecondParser } from \"./parsers/SecondParser.mjs\";\nimport { FractionOfSecondParser } from \"./parsers/FractionOfSecondParser.mjs\";\nimport { ISOTimezoneWithZParser } from \"./parsers/ISOTimezoneWithZParser.mjs\";\nimport { ISOTimezoneParser } from \"./parsers/ISOTimezoneParser.mjs\";\nimport { TimestampSecondsParser } from \"./parsers/TimestampSecondsParser.mjs\";\nimport { TimestampMillisecondsParser } from \"./parsers/TimestampMillisecondsParser.mjs\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- It's ok, we want any here\nexport const parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser(),\n};\n","import { Parser } from \"../Parser.mjs\";\n\nexport class EraParser extends Parser {\n priority = 140;\n\n parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return (\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n\n // A, B\n case \"GGGGG\":\n return match.era(dateString, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return (\n match.era(dateString, { width: \"wide\" }) ||\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n }\n }\n\n set(date, flags, value) {\n flags.era = value;\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"R\", \"u\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.mjs\";\n\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport class YearParser extends Parser {\n priority = 130;\n incompatibleTokens = [\"Y\", \"R\", \"u\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"yy\",\n });\n\n switch (token) {\n case \"y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value) {\n const currentYear = date.getFullYear();\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(normalizedTwoDigitYear, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { getWeekYear } from \"../../../getWeekYear.mjs\";\nimport { startOfWeek } from \"../../../startOfWeek.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.mjs\";\n\n// Local week-numbering year\nexport class LocalWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"YY\",\n });\n\n switch (token) {\n case \"Y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"Yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value, options) {\n const currentYear = getWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(\n normalizedTwoDigitYear,\n 0,\n options.firstWeekContainsDate,\n );\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, options.firstWeekContainsDate);\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { startOfISOWeek } from \"../../../startOfISOWeek.mjs\";\nimport { constructFrom } from \"../../../constructFrom.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigitsSigned } from \"../utils.mjs\";\n\n// ISO week-numbering year\nexport class ISOWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"R\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n const firstWeekOfYear = constructFrom(date, 0);\n firstWeekOfYear.setFullYear(value, 0, 4);\n firstWeekOfYear.setHours(0, 0, 0, 0);\n return startOfISOWeek(firstWeekOfYear);\n }\n\n incompatibleTokens = [\n \"G\",\n \"y\",\n \"Y\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { parseNDigitsSigned } from \"../utils.mjs\";\n\nexport class ExtendedYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"u\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"G\", \"y\", \"Y\", \"R\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { parseNDigits } from \"../utils.mjs\";\n\nexport class QuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n case \"QQ\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { parseNDigits } from \"../utils.mjs\";\n\nexport class StandAloneQuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n case \"qq\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class MonthParser extends Parser {\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"L\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"M\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"MM\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // J, F, ..., D\n case \"MMMMM\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class StandAloneMonthParser extends Parser {\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"LL\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // J, F, ..., D\n case \"LLLLL\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setWeek } from \"../../../setWeek.mjs\";\nimport { startOfWeek } from \"../../../startOfWeek.mjs\";\nimport { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\n// Local week of year\nexport class LocalWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"w\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"wo\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value, options) {\n return startOfWeek(setWeek(date, value, options), options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { getWeek } from \"./getWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * The {@link setWeek} function options.\n */\n\n/**\n * @name setWeek\n * @category Week Helpers\n * @summary Set the local week to the given date.\n *\n * @description\n * Set the local week to the given date, saving the weekday number.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param week - The week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the local week set\n *\n * @example\n * // Set the 1st week to 2 January 2005 with default options:\n * const result = setWeek(new Date(2005, 0, 2), 1)\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // Set the 1st week to 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January:\n * const result = setWeek(new Date(2005, 0, 2), 1, {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Sun Jan 4 2004 00:00:00\n */\nexport function setWeek(date, week, options) {\n const _date = toDate(date);\n const diff = getWeek(_date, options) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setWeek;\n","import { setISOWeek } from \"../../../setISOWeek.mjs\";\nimport { startOfISOWeek } from \"../../../startOfISOWeek.mjs\";\nimport { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\n// ISO week of year\nexport class ISOWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"I\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"Io\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value) {\n return startOfISOWeek(setISOWeek(date, value));\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getISOWeek } from \"./getISOWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setISOWeek\n * @category ISO Week Helpers\n * @summary Set the ISO week to the given date.\n *\n * @description\n * Set the ISO week to the given date, saving the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param week - The ISO week of the new date\n *\n * @returns The new date with the ISO week set\n *\n * @example\n * // Set the 53rd ISO week to 7 August 2004:\n * const result = setISOWeek(new Date(2004, 7, 7), 53)\n * //=> Sat Jan 01 2005 00:00:00\n */\nexport function setISOWeek(date, week) {\n const _date = toDate(date);\n const diff = getISOWeek(_date) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setISOWeek;\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.mjs\";\n\nexport class DayOfYearParser extends Parser {\n priority = 90;\n\n subpriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"D\":\n case \"DD\":\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case \"Do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n\n set(date, _flags, value) {\n date.setMonth(0, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"E\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setDay } from \"../../../setDay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\n\n// Day of week\nexport class DayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"EEEEE\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"EEEE\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"D\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { setDay } from \"../../../setDay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\n// Local day of week\nexport class LocalDayParser extends Parser {\n priority = 90;\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"e\":\n case \"ee\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"eo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"eee\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"eeeee\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"eeee\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setDay } from \"../../../setDay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\n// Stand-alone local day of week\nexport class StandAloneLocalDayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"c\":\n case \"cc\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"co\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"ccc\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // T\n case \"ccccc\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return (\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // Tuesday\n case \"cccc\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"e\",\n \"t\",\n \"T\",\n ];\n}\n","import { setISODay } from \"../../../setISODay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\n// ISO day of week\nexport class ISODayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n\n switch (token) {\n // 2\n case \"i\":\n case \"ii\": // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case \"io\":\n return match.ordinalNumber(dateString, { unit: \"day\" });\n // Tue\n case \"iii\":\n return mapValue(\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // T\n case \"iiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tu\n case \"iiiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tuesday\n case \"iiii\":\n default:\n return mapValue(\n match.day(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n\n set(date, _flags, value) {\n date = setISODay(date, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"E\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { dayPeriodEnumToHours } from \"../utils.mjs\";\n\nexport class AMPMParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"a\":\n case \"aa\":\n case \"aaa\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"aaaaa\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"b\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { dayPeriodEnumToHours } from \"../utils.mjs\";\n\nexport class AMPMMidnightParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"b\":\n case \"bb\":\n case \"bbb\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"bbbbb\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { dayPeriodEnumToHours } from \"../utils.mjs\";\n\n// in the morning, in the afternoon, in the evening, at night\nexport class DayPeriodParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"BBBBB\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour1to12Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"h\":\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case \"ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setHours(0, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"H\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour0to23Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"H\":\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case \"Ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n\n set(date, _flags, value) {\n date.setHours(value, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour0To11Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"K\":\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case \"Ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"h\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour1To24Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"k\":\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case \"ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n\n set(date, _flags, value) {\n const hours = value <= 24 ? value % 24 : value;\n date.setHours(hours, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"H\", \"K\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class MinuteParser extends Parser {\n priority = 60;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"m\":\n return parseNumericPattern(numericPatterns.minute, dateString);\n case \"mo\":\n return match.ordinalNumber(dateString, { unit: \"minute\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setMinutes(value, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class SecondParser extends Parser {\n priority = 50;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"s\":\n return parseNumericPattern(numericPatterns.second, dateString);\n case \"so\":\n return match.ordinalNumber(dateString, { unit: \"second\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setSeconds(value, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\nexport class FractionOfSecondParser extends Parser {\n priority = 30;\n\n parse(dateString, token) {\n const valueCallback = (value) =>\n Math.trunc(value * Math.pow(10, -token.length + 3));\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n\n set(date, _flags, value) {\n date.setMilliseconds(value);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.mjs\";\nimport { timezonePatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseTimezonePattern } from \"../utils.mjs\";\n\n// Timezone (ISO-8601. +00:00 is `'Z'`)\nexport class ISOTimezoneWithZParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"X\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"XX\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"XXXX\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"XXXXX\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"XXX\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"x\"];\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.mjs\";\nimport { timezonePatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseTimezonePattern } from \"../utils.mjs\";\n\n// Timezone (ISO-8601)\nexport class ISOTimezoneParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"x\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"xx\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"xxxx\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"xxxxx\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"xxx\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"X\"];\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseAnyDigitsSigned } from \"../utils.mjs\";\n\nexport class TimestampSecondsParser extends Parser {\n priority = 40;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value * 1000), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseAnyDigitsSigned } from \"../utils.mjs\";\n\nexport class TimestampMillisecondsParser extends Parser {\n priority = 20;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { getDefaultOptions } from \"./getDefaultOptions.mjs\";\nimport { defaultLocale } from \"./_lib/defaultLocale.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { longFormatters } from \"./_lib/format/longFormatters.mjs\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.mjs\";\nimport { parsers } from \"./parse/_lib/parsers.mjs\";\nimport { DateToSystemTimezoneSetter } from \"./parse/_lib/Setter.mjs\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { longFormatters, parsers };\n\n/**\n * The {@link parse} function options.\n */\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\n\nconst notWhitespaceRegExp = /\\S/;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear)\n * and [setWeekYear](https://date-fns.org/docs/setWeekYear)).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateStr - The string to parse\n * @param formatStr - The string of tokens\n * @param referenceDate - defines values missing from the parsed dateString\n * @param options - An object with options.\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @returns The parsed date\n *\n * @throws `options.locale` must contain `match` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport function parse(dateStr, formatStr, referenceDate, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n if (formatStr === \"\") {\n if (dateStr === \"\") {\n return toDate(referenceDate);\n } else {\n return constructFrom(referenceDate, NaN);\n }\n }\n\n const subFnOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n // If timezone isn't specified, it will be set to the system timezone\n const setters = [new DateToSystemTimezoneSetter()];\n\n const tokens = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp);\n\n const usedTokens = [];\n\n for (let token of tokens) {\n if (\n !options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n if (\n !options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n\n const firstCharacter = token[0];\n const parser = parsers[firstCharacter];\n if (parser) {\n const { incompatibleTokens } = parser;\n if (Array.isArray(incompatibleTokens)) {\n const incompatibleToken = usedTokens.find(\n (usedToken) =>\n incompatibleTokens.includes(usedToken.token) ||\n usedToken.token === firstCharacter,\n );\n if (incompatibleToken) {\n throw new RangeError(\n `The format string mustn't contain \\`${incompatibleToken.fullToken}\\` and \\`${token}\\` at the same time`,\n );\n }\n } else if (parser.incompatibleTokens === \"*\" && usedTokens.length > 0) {\n throw new RangeError(\n `The format string mustn't contain \\`${token}\\` and any other token at the same time`,\n );\n }\n\n usedTokens.push({ token: firstCharacter, fullToken: token });\n\n const parseResult = parser.run(\n dateStr,\n token,\n locale.match,\n subFnOptions,\n );\n\n if (!parseResult) {\n return constructFrom(referenceDate, NaN);\n }\n\n setters.push(parseResult.setter);\n\n dateStr = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateStr.indexOf(token) === 0) {\n dateStr = dateStr.slice(token.length);\n } else {\n return constructFrom(referenceDate, NaN);\n }\n }\n }\n\n // Check if the remaining input contains something other than whitespace\n if (dateStr.length > 0 && notWhitespaceRegExp.test(dateStr)) {\n return constructFrom(referenceDate, NaN);\n }\n\n const uniquePrioritySetters = setters\n .map((setter) => setter.priority)\n .sort((a, b) => b - a)\n .filter((priority, index, array) => array.indexOf(priority) === index)\n .map((priority) =>\n setters\n .filter((setter) => setter.priority === priority)\n .sort((a, b) => b.subPriority - a.subPriority),\n )\n .map((setterArray) => setterArray[0]);\n\n let date = toDate(referenceDate);\n\n if (isNaN(date.getTime())) {\n return constructFrom(referenceDate, NaN);\n }\n\n const flags = {};\n for (const setter of uniquePrioritySetters) {\n if (!setter.validate(date, subFnOptions)) {\n return constructFrom(referenceDate, NaN);\n }\n\n const result = setter.set(date, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n date = result[0];\n Object.assign(flags, result[1]);\n // Result is date\n } else {\n date = result;\n }\n }\n\n return constructFrom(referenceDate, date);\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default parse;\n","import { getDefaultOptions as getInternalDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * @name getDefaultOptions\n * @category Common Helpers\n * @summary Get default options.\n * @pure false\n *\n * @description\n * Returns an object that contains defaults for\n * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate`\n * arguments for all functions.\n *\n * You can change these with [setDefaultOptions](https://date-fns.org/docs/setDefaultOptions).\n *\n * @returns The default options\n *\n * @example\n * const result = getDefaultOptions()\n * //=> {}\n *\n * @example\n * setDefaultOptions({ weekStarsOn: 1, firstWeekContainsDate: 4 })\n * const result = getDefaultOptions()\n * //=> { weekStarsOn: 1, firstWeekContainsDate: 4 }\n */\nexport function getDefaultOptions() {\n return Object.assign({}, getInternalDefaultOptions());\n}\n\n// Fallback for modularized imports:\nexport default getDefaultOptions;\n","import Resource from '../resource';\nimport { format, parse, isValid } from 'date-fns';\n\nexport default class StoreHour extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'store-hour', options);\n }\n\n get day() {\n return this.getAttribute('day');\n }\n\n get isClosed() {\n return this.getAttribute('start') === null && this.getAttribute('end') === null;\n }\n\n get is24Hours() {\n const start = this.startDateInstance;\n const end = this.endDateInstance;\n const diff = Math.abs(start - end);\n const hours = Math.floor(diff / 1000 / 60) / 60;\n\n return hours > 23;\n }\n\n get startDateInstance() {\n if (!this.hasAttribute('start')) {\n return null;\n }\n\n const start = this.getAttribute('start');\n const includesSeconds = start.split(':').length === 3;\n const format = includesSeconds ? 'HH:mm:ss' : 'HH:mm';\n\n return parse(start, format, new Date());\n }\n\n get endDateInstance() {\n if (!this.hasAttribute('end')) {\n return null;\n }\n\n const end = this.getAttribute('end');\n const includesSeconds = end.split(':').length === 3;\n const format = includesSeconds ? 'HH:mm:ss' : 'HH:mm';\n\n return parse(end, format, new Date());\n }\n\n get humanReadableHoursRange() {\n if (!isValid(this.startDateInstance) || !isValid(this.endDateInstance)) {\n return `${this.start} - ${this.end}`;\n }\n\n return `${format(this.startDateInstance, 'p')} - ${format(this.endDateInstance, 'p')}`;\n }\n\n get humanReadableHours() {\n if (this.isClosed) {\n return 'Closed';\n }\n\n if (this.is24Hours) {\n return '24 Hours';\n }\n\n return this.humanReadableHoursRange;\n }\n\n // remove default resource methods\n create() {\n throw new Error('There is no create() method store location!');\n }\n\n // remove default resource methods\n update() {\n throw new Error('There is no update() method store location!');\n }\n\n // remove default resource methods\n destroy() {\n throw new Error('There is no destroy() method store location!');\n }\n\n // remove default resource methods\n reload() {\n throw new Error('There is no reload() method store location!');\n }\n}\n","import Resource from '../resource';\nimport StoreHour from './store-hour';\nimport { Collection } from '@fleetbase/sdk';\nimport { format } from 'date-fns';\n\nexport default class StoreLocation extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'store-location', options);\n }\n\n get latitude() {\n return this.getAttribute('place.location.coordinates.1');\n }\n\n get longitude() {\n return this.getAttribute('place.location.coordinates.0');\n }\n\n get hours() {\n return new Collection(this.getAttribute('hours').map((attributes) => new StoreHour(attributes)));\n }\n\n get isAlwaysOpen() {\n return this.hours.every((hour) => hour?.is24Hours);\n }\n\n get today() {\n const today = format(new Date(), 'EEEE');\n\n return this.schedule[today];\n }\n\n get schedule() {\n const schedule = {};\n const week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];\n\n for (let i = 0; i < week.length; i++) {\n const day = week[i];\n\n schedule[day] = new Collection();\n }\n\n for (let i = 0; i < this.hours.length; i++) {\n const hour = this.hours.objectAt(i);\n\n schedule[hour.day].pushObject(hour);\n }\n\n return schedule;\n }\n\n // remove default resource methods\n create() {\n throw new Error('There is no create() method store location!');\n }\n\n // remove default resource methods\n update() {\n throw new Error('There is no update() method store location!');\n }\n\n // remove default resource methods\n destroy() {\n throw new Error('There is no destroy() method store location!');\n }\n}\n","import Resource from '../resource';\nimport StoreLocation from './store-location';\nimport PaymentGateway from './payment-gateway';\nimport Review from './review';\nimport { Collection, Place } from '@fleetbase/sdk';\n\nexport default class Store extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'store', options);\n }\n\n getReviews(params = {}) {\n return this.adapter.get('reviews', { store: this.id, ...params }).then((reviews) => {\n return new Collection(reviews.map((attributes) => new Review(attributes, this.adapter)));\n });\n }\n\n getLocations(params = {}) {\n return this.adapter.get('locations', { store: this.id, ...params }).then((storeLocations) => {\n return new Collection(\n storeLocations.map((attributes) => {\n if (attributes.place) {\n attributes.place = new Place(attributes.place);\n }\n\n return new StoreLocation(attributes, this.adapter);\n })\n );\n });\n }\n\n getLocation(id) {\n return this.adapter.get(`locations/${id}`, { store: this.id }).then((attributes) => {\n return new StoreLocation(attributes, this.adapter);\n });\n }\n\n getPaymentGateways(params = {}) {\n return this.adapter.get('gateways', params).then((gateways) => {\n return new Collection(\n gateways.map((attributes) => {\n return new PaymentGateway(attributes, this.adapter);\n })\n );\n });\n }\n\n getPaymentGateway(id) {\n return this.adapter.get(`gateways/${id}`).then((attributes) => {\n return new PaymentGateway(attributes, this.adapter);\n });\n }\n}\n","import { Adapter, Collection, ServiceQuote } from '@fleetbase/sdk';\nimport StorefrontStore from '../store';\nimport { formatCurrency, isEmpty } from '../utils';\n\nconst { isArray } = Array;\n\nexport default class DeliveryServiceQuote extends ServiceQuote {\n constructor(attributes = {}, adapter, options = {}) {\n if (attributes instanceof Adapter) {\n return super({}, attributes, 'service-quote', options);\n }\n\n super(attributes, adapter, 'service-quote', options);\n }\n\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new StorefrontStore(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions,\n });\n\n return this;\n }\n\n get formattedAmount() {\n const { amount, currency } = this.getAttributes(['amount', 'currency']);\n\n if (isEmpty(amount) || isEmpty(currency)) {\n return null;\n }\n\n return formatCurrency(amount / 100, currency);\n }\n\n async fetchServiceQuotesFromCart(origin, destination, cart, config = 'storefront', all = false) {\n if (origin?.id) {\n origin = origin.id;\n }\n if (destination?.id) {\n destination = destination.id;\n }\n if (cart?.id) {\n cart = cart.id;\n }\n\n try {\n const serviceQuotes = await this.adapter.get('service-quotes/from-cart', {\n origin,\n destination,\n cart,\n config,\n all,\n });\n\n if (isArray(serviceQuotes)) {\n return new Collection(serviceQuotes.map((serviceQuote) => new DeliveryServiceQuote(serviceQuote, this.adapter)));\n }\n\n return new DeliveryServiceQuote(serviceQuotes, this.adapter);\n } catch (error) {\n console.error('Error fetching service quotes:', error);\n throw error;\n }\n }\n\n static async getFromCart(adapter, origin, destination, cart, config = 'storefront', all = false) {\n const quote = new DeliveryServiceQuote(adapter);\n return quote.fetchServiceQuotesFromCart(origin, destination, cart, config, all);\n }\n}\n","import { Order, StoreActions, isResource } from '@fleetbase/sdk';\nimport Resource from '../resource';\n\nconst checkoutActions = new StoreActions({\n create: undefined,\n findAll: undefined,\n query: undefined,\n queryRecord: undefined,\n\n initialize: function (customer, cart, serviceQuote, gateway, orderOptions = {}, options = {}) {\n if (isResource(customer)) {\n customer = customer.id;\n }\n\n if (isResource(cart)) {\n cart = cart.id;\n }\n\n if (isResource(serviceQuote)) {\n serviceQuote = serviceQuote.id;\n }\n\n if (isResource(gateway)) {\n gateway = gateway.getAttribute('code');\n }\n\n return this.adapter.get(`${this.namespace}/before`, { ...orderOptions, customer, cart, serviceQuote, gateway }, options);\n },\n\n captureOrder: function (token, transactionDetails = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/capture`, { token, transactionDetails }, options).then((orderJson) => new Order(orderJson));\n },\n\n createStripeSetupIntent: function (customer, options = {}) {\n if (isResource(customer)) {\n customer = customer.id;\n }\n\n return this.adapter.post(`${this.namespace}/stripe-setup-intent`, { customer }, options);\n },\n\n updateStripePaymentIntent: function (paymentIntent, customer, cart, serviceQuote, orderOptions = {}, options = {}) {\n if (isResource(customer)) {\n customer = customer.id;\n }\n\n if (isResource(cart)) {\n cart = cart.id;\n }\n\n if (isResource(serviceQuote)) {\n serviceQuote = serviceQuote.id;\n }\n\n return this.adapter.put(`${this.namespace}/stripe-update-payment-intent`, { paymentIntent, customer, cart, serviceQuote, ...orderOptions }, options);\n },\n});\n\nexport default class Checkout extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'checkout', options);\n }\n\n initialize() {\n return this.store.initialize(...arguments);\n }\n\n captureOrder() {\n return this.store.captureOrder(...arguments);\n }\n}\n\nexport { checkoutActions };\n","import { Product, Category, Customer, Cart, DeliveryServiceQuote, Store, StoreLocation, StoreHour, Checkout, Review } from './resources';\nimport { BrowserAdapter, NodeAdapter, pluralize, singularize } from '@fleetbase/sdk';\n\nexport const resources = {\n Product,\n Category,\n Customer,\n Cart,\n DeliveryServiceQuote,\n Store,\n StoreLocation,\n StoreHour,\n Checkout,\n Review,\n};\n\nconst adapters = {\n BrowserAdapter,\n NodeAdapter,\n};\n\nfunction toStudlyCase(str) {\n return str\n .split(/[^a-zA-Z0-9]/) // Split by non-alphanumeric characters\n .filter(Boolean) // Remove empty elements\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1)) // Capitalize the first letter of each word\n .join(''); // Join the words together without spaces\n}\n\nclass Resolver {\n constructor() {\n this.resources = resources;\n this.adapters = adapters;\n\n return this.lookup(...arguments);\n }\n\n lookup(type, className) {\n const key = pluralize(type);\n const classKey = toStudlyCase(className);\n const params = [...arguments].slice(2);\n\n if (!this[key]) {\n throw new Error('Attempted to resolve invalid type');\n }\n\n if (!this[key][classKey]) {\n throw new Error(`No ${singularize(type)} named ${className} (${classKey}) to resolve`);\n }\n\n return new this[key][classKey](...params);\n }\n}\n\nconst lookup = function () {\n return new Resolver(...arguments);\n};\n\nexport { Resolver, lookup };\nexport default Resolver;","import { Store, classify, extendStoreActions } from '@fleetbase/sdk';\nimport { lookup } from './resolver';\n\nexport default class StorefrontStore extends Store {\n constructor() {\n super(...arguments);\n }\n\n extendActions(actions = []) {\n return extendStoreActions(this, actions);\n }\n\n serialize(json) {\n return lookup('resource', classify(this.resource), json, this.adapter);\n }\n}\n"],"names":["StorefrontResource","_Resource","_classCallCheck","_callSuper","this","arguments","_inherits","Resource","_createClass","key","value","adapter","_this$options","store","StorefrontStore","resource","onAfterFetch","syncAttributes","bind","actions","options","reviewActions","StoreActions","count","storeId","length","undefined","params","get","concat","namespace","Review","attributes","isPhone","phone","test","formatCurrency","amount","currency","currencyDisplay","Intl","NumberFormat","style","format","isEmpty","obj","none","size","objectType","_typeof","Product","getAttribute","_this$getAttributes","getAttributes","price","sale_price","isOnSale","_this","id","then","reviews","Collection","map","Category","category","products","customerActions","login","identity","password","post","Error","_objectSpread","afterFetch","verifyCode","code","requestCreationCode","mode","create","retrieve","findRecord","Customer","_syncDevice","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","wrap","_context","prev","next","abrupt","setHeaders","stop","_x","apply","_performAuthorizedRequest","_callee2","endpoint","method","headers","response","_args2","_context2","toLowerCase","sent","t0","console","error","_x2","_getSavedPlaces","_callee3","places","_this2","_context3","performAuthorizedRequest","Place","_getOrderHistory","_callee4","orders","_this3","_args4","_context4","Order","isArray","Array","cartActions","findAll","query","queryRecord","add","productId","quantity","data","update","cartItemId","put","remove","empty","Cart","destroy","subtotal","contents","forEach","cartItem","findIndex","product_id","PaymentGateway","type","toDate","argument","argStr","Object","prototype","toString","call","Date","constructor","NaN","constructFrom","date","addDays","_date","isNaN","setDate","getDate","defaultOptions","getDefaultOptions","startOfWeek","weekStartsOn","locale","day","getDay","diff","setHours","startOfISOWeek","getISOWeekYear","year","getFullYear","fourthOfJanuaryOfNextYear","setFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","getTime","startOfDay","getTimezoneOffsetInMilliseconds","utcDate","UTC","getMonth","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","isValid","Number","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","args","width","String","defaultWidth","formats","formatLong","full","long","medium","short","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","valuesArray","context","formattingValues","defaultFormattingWidth","values","argumentCallback","buildMatchFn","string","matchPattern","matchPatterns","defaultMatchWidth","matchResult","match","matchedString","parsePatterns","defaultParseWidth","array","predicate","pattern","object","hasOwnProperty","findKey","valueCallback","rest","slice","enUS","formatDistance","result","tokenValue","replace","addSuffix","comparison","formatRelative","_baseDate","_options","localize","ordinalNumber","dirtyNumber","number","rem100","era","narrow","abbreviated","wide","quarter","month","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","parsePattern","parseInt","parseResult","any","index","firstWeekContainsDate","getDayOfYear","dateLeft","dateRight","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","Math","round","differenceInCalendarDays","cleanDate","startOfYear","getISOWeek","fourthOfJanuary","startOfISOWeekYear","getWeekYear","firstWeekOfNextYear","firstWeekOfThisYear","getWeek","firstWeek","startOfWeekYear","addLeadingZeros","targetLength","abs","padStart","lightFormatters","y","signedYear","M","d","a","dayPeriodEnumValue","toUpperCase","h","H","m","s","S","numberOfDigits","milliseconds","trunc","pow","dayPeriodEnum","formatters","G","unit","Y","signedWeekYear","weekYear","R","u","Q","ceil","q","L","w","week","I","isoWeek","D","dayOfYear","E","dayOfWeek","e","localDayOfWeek","c","i","isoDayOfWeek","b","hours","B","K","k","X","_localize","timezoneOffset","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","x","O","formatTimezoneShort","z","t","T","offset","delimiter","sign","absOffset","minutes","dateLongFormatter","timeLongFormatter","longFormatters","p","P","dateTimeLongFormatter","datePattern","timePattern","dateTimeFormat","dayOfYearTokenRE","weekYearTokenRE","throwTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","warnOrThrowProtectedError","input","_message","subject","message","warn","includes","RangeError","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","formatStr","defaultLocale","originalDate","parts","substring","firstCharacter","longFormatter","join","isToken","cleanEscapedString","preprocessor","formatterOptions","part","formatter","matched","Setter","subPriority","validate","_utcDate","ValueSetter","validateValue","setValue","priority","super","set","flags","DateToSystemTimezoneSetter","timestampIsSet","fromDate","transpose","Parser","run","dateString","parse","setter","_value","numericPatterns","timezonePatterns","mapValue","parseFnResult","mapFn","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","n","RegExp","parseNDigitsSigned","dayPeriodEnumToHours","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","isLeapYearIndex","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","setDay","currentDay","delta","setISODay","getISODay","parsers","incompatibleTokens","isTwoDigitYear","normalizedTwoDigitYear","_flags","firstWeekOfYear","setMonth","setWeek","setISOWeek","isLeapYear","subpriority","wholeWeekDays","floor","isPM","setMinutes","setSeconds","setMilliseconds","notWhitespaceRegExp","dateStr","referenceDate","assign","getInternalDefaultOptions","subFnOptions","setters","tokens","usedTokens","parser","incompatibleToken","find","usedToken","fullToken","push","indexOf","uniquePrioritySetters","sort","filter","setterArray","StoreHour","start","startDateInstance","end","endDateInstance","hasAttribute","includesSeconds","split","isClosed","is24Hours","humanReadableHoursRange","StoreLocation","every","hour","schedule","objectAt","pushObject","Store","storeLocations","place","_this4","gateways","_this5","DeliveryServiceQuote","_ServiceQuote","Adapter","_possibleConstructorReturn","ServiceQuote","_fetchServiceQuotesFromCart","origin","destination","cart","_origin","_destination","_cart","config","all","serviceQuotes","_args","serviceQuote","_x3","_getFromCart","quote","fetchServiceQuotesFromCart","_x4","_x5","_x6","_x7","checkoutActions","initialize","customer","gateway","orderOptions","isResource","captureOrder","transactionDetails","orderJson","createStripeSetupIntent","updateStripePaymentIntent","paymentIntent","Checkout","_this$store","_this$store2","resources","adapters","BrowserAdapter","NodeAdapter","toStudlyCase","str","Boolean","word","charAt","Resolver","lookup","className","pluralize","classKey","singularize","_construct","_toConsumableArray","_Store","extendStoreActions","json","classify"],"mappings":"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","x_google_ignoreList":[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89]} \ No newline at end of file diff --git a/dist/esm/storefront.js b/dist/esm/storefront.js index 4c6792c..e072401 100644 --- a/dist/esm/storefront.js +++ b/dist/esm/storefront.js @@ -1,2 +1,909 @@ -function t(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){u=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(u)throw o}}}}function s(t,e,n){return(e=g(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function c(t){return c=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},c(t)}function l(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&p(t,e)}function h(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(h=function(){return!!t})()}function f(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function d(t){for(var e=1;e=0;--o){var a=this.tryEntries[o],u=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),P(n),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;P(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:L(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),g}},e}function p(t,e){return p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},p(t,e)}function y(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,o,a,u=[],s=!0,c=!1;try{if(o=(n=n.call(t)).next,0===e);else for(;!(s=(r=o.call(n)).done)&&(u.push(r.value),u.length!==e);s=!0);}catch(t){c=!0,i=t}finally{try{if(!s&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw i}}return u}}(t,e)||w(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:e+""}function m(t){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},m(t)}function w(e,n){if(e){if("string"==typeof e)return t(e,n);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?t(e,n):void 0}}function b(t,e){this.v=t,this.k=e}function k(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){u=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(u)throw o}}}}function F(t,e,n){return(e=Q(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function M(t){return M=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},M(t)}function q(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&W(t,e)}function I(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(I=function(){return!!t})()}function H(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}function z(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function B(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function $(t){for(var e=1;e=0;--o){var a=this.tryEntries[o],u=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),P(n),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;P(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:L(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),y}},e}function W(t,e){return W=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},W(t,e)}function Y(t,e){return x(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,o,a,u=[],s=!0,c=!1;try{if(o=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=o.call(n)).done)&&(u.push(r.value),u.length!==e);s=!0);}catch(t){c=!0,i=t}finally{try{if(!s&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw i}}return u}}(t,e)||X(t,e)||z()}function G(t){return function(t){if(Array.isArray(t))return k(t)}(t)||H(t)||X(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Q(t){var e=function(t){if("object"!=m(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=m(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==m(e)?e:e+""}function J(t){return J="function"==typeof Symbol&&"symbol"==m(Symbol.iterator)?function(t){return m(t)}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":m(t)},J(t)}function X(t,e){if(t){if("string"==typeof t)return k(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?k(t,e):void 0}}function K(t){return function(){return new V(t.apply(this,arguments))}}function V(t){var e,n;function r(e,n){try{var o=t[e](n),a=o.value,u=a instanceof b;Promise.resolve(u?a.v:a).then((function(n){if(u){var s="return"===e?"return":"next";if(!a.k||n.done)return r(s,n);n=t[s](n).value}i(o.done?"return":"normal",n)}),(function(t){r("throw",t)}))}catch(t){i("throw",t)}}function i(t,i){switch(t){case"return":e.resolve({value:i,done:!0});break;case"throw":e.reject(i);break;default:e.resolve({value:i,done:!1})}(e=e.next)?r(e.key,e.arg):n=null}this._invoke=function(t,i){return new Promise((function(o,a){var u={key:t,arg:i,resolve:o,reject:a,next:null};n?n=n.next=u:(e=n=u,r(t,i))}))},"function"!=typeof t.return&&(this.return=void 0)}function Z(t){var e="function"==typeof Map?new Map:void 0;return Z=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(e){return"function"==typeof t}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return L(t,arguments,M(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),W(n,t)},Z(t)}V.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},V.prototype.next=function(t){return this._invoke("next",t)},V.prototype.throw=function(t){return this._invoke("throw",t)},V.prototype.return=function(t){return this._invoke("return",t)};var tt=function(){function t(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];D(this,t),F(this,"uncountableWords",["equipment","information","rice","money","species","series","fish","sheep","moose","deer","news"]),F(this,"pluralRules",[[new RegExp("(m)an$","gi"),"$1en"],[new RegExp("(pe)rson$","gi"),"$1ople"],[new RegExp("(child)$","gi"),"$1ren"],[new RegExp("^(ox)$","gi"),"$1en"],[new RegExp("(ax|test)is$","gi"),"$1es"],[new RegExp("(octop|vir)us$","gi"),"$1i"],[new RegExp("(alias|status)$","gi"),"$1es"],[new RegExp("(bu)s$","gi"),"$1ses"],[new RegExp("(buffal|tomat|potat)o$","gi"),"$1oes"],[new RegExp("([ti])um$","gi"),"$1a"],[new RegExp("sis$","gi"),"ses"],[new RegExp("(?:([^f])fe|([lr])f)$","gi"),"$1$2ves"],[new RegExp("(hive)$","gi"),"$1s"],[new RegExp("([^aeiouy]|qu)y$","gi"),"$1ies"],[new RegExp("(x|ch|ss|sh)$","gi"),"$1es"],[new RegExp("(matr|vert|ind)ix|ex$","gi"),"$1ices"],[new RegExp("([m|l])ouse$","gi"),"$1ice"],[new RegExp("(quiz)$","gi"),"$1zes"],[new RegExp("s$","gi"),"s"],[new RegExp("$","gi"),"s"]]),F(this,"singularRules",[[new RegExp("(m)en$","gi"),"$1an"],[new RegExp("(pe)ople$","gi"),"$1rson"],[new RegExp("(child)ren$","gi"),"$1"],[new RegExp("([ti])a$","gi"),"$1um"],[new RegExp("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$","gi"),"$1$2sis"],[new RegExp("(hive)s$","gi"),"$1"],[new RegExp("(tive)s$","gi"),"$1"],[new RegExp("(curve)s$","gi"),"$1"],[new RegExp("([lr])ves$","gi"),"$1f"],[new RegExp("([^fo])ves$","gi"),"$1fe"],[new RegExp("([^aeiouy]|qu)ies$","gi"),"$1y"],[new RegExp("(s)eries$","gi"),"$1eries"],[new RegExp("(m)ovies$","gi"),"$1ovie"],[new RegExp("(x|ch|ss|sh)es$","gi"),"$1"],[new RegExp("([m|l])ice$","gi"),"$1ouse"],[new RegExp("(bus)es$","gi"),"$1"],[new RegExp("(o)es$","gi"),"$1"],[new RegExp("(shoe)s$","gi"),"$1"],[new RegExp("(cris|ax|test)es$","gi"),"$1is"],[new RegExp("(octop|vir)i$","gi"),"$1us"],[new RegExp("(alias|status)es$","gi"),"$1"],[new RegExp("^(ox)en","gi"),"$1"],[new RegExp("(vert|ind)ices$","gi"),"$1ex"],[new RegExp("(matr)ices$","gi"),"$1ix"],[new RegExp("(quiz)zes$","gi"),"$1"],[new RegExp("s$","gi"),""]]),F(this,"nonTitlecasedWords",["and","or","nor","a","an","the","so","but","to","of","at","by","from","into","on","onto","off","out","in","over","with","for"]),F(this,"idSuffix",new RegExp("(_ids|_id)$","g")),F(this,"underbar",new RegExp("_","g")),F(this,"spaceOrUnderbar",new RegExp("[ _]","g")),F(this,"uppercase",new RegExp("([A-Z])","g")),F(this,"underbarPrefix",new RegExp("^_")),this.str=e,this.chain=n}return _(t,[{key:"get",value:function(){return this.str}},{key:"applyRules",value:function(t,e,n,r){if(r)t=r;else if(!(n.indexOf(t.toLowerCase())>-1))for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:null;return t=t||this.str,this.applyRules(t,this.pluralRules,this.uncountableWords,e)}},{key:"singularize",value:function(t,e){return t=t||this.str,this.applyRules(t,this.singularRules,this.uncountableWords,e)}},{key:"camelize",value:function(t,e){for(var n=(t=t||this.str).split("/"),r=0;r1&&void 0!==arguments[1]&&arguments[1];return t=t||this.str,t=this.underscore(this.demodulize(t))+(e?"":"_")+"id",this.str=t,!0===this.chain?this:t}},{key:"ordinalize",value:function(t){for(var e=(t=t||this.str).split(" "),n=0;n2?i-2:0),a=2;a2?n-2:0),i=2;i1?e-1:0),r=1;r2?n-2:0),i=2;i3&&void 0!==arguments[3]?arguments[3]:[];if(ct(t))if(r.length<=lt)t.splice.apply(t,[e,n].concat(G(r)));else{t.splice(e,n);for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:0,r=t.length,i=n;i2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3?arguments[3]:void 0,i=t.length;return n<0&&(n+=i),yt(t,r&&e!=e?function(t){return t!=t}:function(t){return t===e},n)}function mt(t,e,n){return ht(t,e,0,[n]),n}function wt(){return L(bt,Array.prototype.slice.call(arguments))}var bt=function(){function t(){return D(this,t),A(ct(arguments[0])?P(this,t,G(arguments[0])):P(this,t,arguments))}return q(t,Z(Array)),_(t,[{key:"notEmpty",get:function(){return this.length>0}},{key:"empty",get:function(){return 0===this.length}},{key:"first",get:function(){return vt(this,0)}},{key:"last",get:function(){return vt(this,this.length-1)}},{key:"replace",value:function(t,e){return ht(this,t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:[]),this}},{key:"objectsAt",value:function(t){var e=this;return t.map((function(t){return vt(e,t)}))}},{key:"objectAt",value:function(t){return vt(this,t)}},{key:"indexOf",value:function(t,e){return gt(this,t,e,!1)}},{key:"lastIndexOf",value:function(t,e){var n=this.length;(void 0===e||e>=n)&&(e=n-1),e<0&&(e+=n);for(var r=e;r>=0;r--)if(vt(this,r)===t)return r;return-1}},{key:"includes",value:function(t,e){return-1!==gt(this,t,e,!0)}},{key:"findBy",value:function(){return-1===(t=yt(this,pt.apply(void 0,arguments).bind(undefined),0))?void 0:vt(this,t);var t}},{key:"findIndexBy",value:function(){return yt(this,pt.apply(void 0,arguments))}},{key:"isEvery",value:function(){return t=pt.apply(void 0,arguments),e=t.bind(undefined),-1===yt(this,(function(t,n,r){return!e(t,n,r)}),0);var t,e}},{key:"isAny",value:function(){return-1!==yt(this,pt.apply(void 0,arguments).bind(undefined),0)}},{key:"invoke",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:ft,n=[],r=new Set,i="function"==typeof e?e:function(t){return get(t,e)};return t.forEach((function(t){var e=i(t);r.has(e)||(r.add(e),n.push(t))})),n}(this,t)}},{key:"without",value:function(t){if(!this.includes(t))return this;var e=t==t?function(e){return e!==t}:function(t){return t==t};return this.filter(e)}},{key:"clear",value:function(){var t=this.length;return 0===t||this.replace(0,t,[]),this}},{key:"insertAt",value:function(t,e){return mt(this,t,e),this}},{key:"replaceAt",value:function(t,e){return this.replace(t,1,[e])}},{key:"removeAt",value:function(t,e){return function(t,e){return ht(t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,[]),t}(this,t,e)}},{key:"pushObject",value:function(t){return this.insertAt(this.length,t)}},{key:"pushObjects",value:function(t){return this.replace(this.length,0,t),this}},{key:"popObject",value:function(){var t=this.length;if(0===t)return null;var e=vt(this,t-1);return this.removeAt(t-1,1),e}},{key:"shiftObject",value:function(){if(0===this.length)return null;var t=vt(this,0);return this.removeAt(0),t}},{key:"unshiftObject",value:function(t){return mt(this,0,t)}},{key:"unshiftObjects",value:function(t){return this.replace(0,0,t),this}},{key:"reverseObjects",value:function(){var t=this.length;if(0===t)return this;var e=this.toArray().reverse();return this.replace(0,t,e),this}},{key:"setObjects",value:function(t){if(0===t.length)return this.clear();var e=this.length;return this.replace(0,e,t),this}},{key:"removeObject",value:function(t){for(var e=this.length||0;--e>=0;)vt(this,e)===t&&this.removeAt(e);return this}},{key:"removeObjects",value:function(t){for(var e=t.length-1;e>=0;e--)this.removeObject(t[e]);return this}},{key:"addObject",value:function(t){return this.includes(t)||this.pushObject(t),this}},{key:"addObjects",value:function(t){var e=this;return t.forEach((function(t){return e.addObject(t)})),this}}])}();function kt(t){var e=null==t;if(e)return e;if("number"==typeof t.size)return!t.size;var n=J(t);if("object"===n){var r=t.size;if("number"==typeof r)return!r}if("number"==typeof t.length&&"function"!==n)return!t.length;if("object"===n){var i=t.length;if("number"==typeof i)return!i}return!1}function xt(){var t,e,n;return!("undefined"==typeof process||"object"!==J(null===(t=process)||void 0===t?void 0:t.env)&&-1===(null===(e=process.release)||void 0===e||null===(e=e.name)||void 0===e?void 0:e.search(/node|io.js/))||"undefined"!=typeof window&&"ReactNative"!==(null===(n=window)||void 0===n||null===(n=n.navigator)||void 0===n?void 0:n.product))}function At(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return xt()?ut("adapter","NodeAdapter",t):ut("adapter","BrowserAdapter",t)}_((function t(e){D(this,t),this.place=e,this.geometry=null==e?void 0:e.geometry,this.components=this.parseComponents(),this.attributes=this.parseProperties()}),[{key:"parse",value:function(){this.parseComponents(),this.parseProperties()}},{key:"parseComponents",value:function(){var t;return((null===(t=this.place)||void 0===t?void 0:t.address_components)||[]).reduce((function(t,e){return e.types.forEach((function(n){t[n]=e})),t}),{})}},{key:"parseProperties",value:function(){var t,e={streetNumber:this.get("street_number"),streetName:this.get("route"),coordinates:null!==(t=this.geometry)&&void 0!==t&&t.location?Object.values(this.geometry.location):[0,0],city:this.or(["locality","sublocality","sublocality_level_1","neighborhood","administrative_area_level_3","administrative_area_level_2"]),county:this.get("administrative_area_level_2"),stateShort:this.get("administrative_area_level_1",!0),stateLong:this.get("administrative_area_level_1"),countryShort:this.get("country",!0),country:this.get("country",!0),countryLong:this.get("country"),postalCode:this.get("postal_code")};return e.address=[e.streetNumber,e.streetName].filter(Boolean).join(" "),e}},{key:"all",value:function(){return this.attributes}},{key:"or",value:function(){var t,e=N(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]);try{for(e.s();!(t=e.n()).done;){var n=t.value;if(ct(n)){var r=n[0],i=n[1];if(this.has(r))return this.get(r,i)}else if(this.has(n))return this.get(n)}}catch(t){e.e(t)}finally{e.f()}return null}},{key:"has",value:function(t){return t in this.components}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t in this.components?e?this.components[t].short_name:this.components[t].long_name:null}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.attributes=$($({},this.attributes),t),this}},{key:"setAttribute",value:function(t,e){return this.attributes[t]=e,this}},{key:"getAttribute",value:function(t){return this.attributes[t]||null}}]);var Et=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;D(this,t),this.type="Point",this.coordinates=[n,e]}return _(t,[{key:"latitude",get:function(){return this.coordinates[1]}},{key:"longitude",get:function(){return this.coordinates[0]}},{key:"lat",value:function(){return this.latitude}},{key:"lng",value:function(){return this.longitude}},{key:"serialize",value:function(){return{type:"Point",coorindates:[this.lat(),this.lng()]}}},{key:"toJson",value:function(){return this.serialize()}},{key:"toString",value:function(){return"(".concat(this.latitude,", ").concat(this.longitude,")")}}],[{key:"fromGeoJson",value:function(e){var n=Y(e.coordinates,2),r=n[0];return new t(n[1],r)}}])}();function Ot(t,e){var n=t();return Array.isArray(n)||"object"===J(n)?St(n,e):null}function St(t,e){var n,r=t,i=J(t),o="object"===i,a="function"===i,u=Array.isArray(t),s="string"===J(e)&&e.includes(".")?e.split("."):[e];if(u||o){for(var c=0;c1&&void 0!==arguments[1]?arguments[1]:[];if(t.actions=ct(e)?e:[e],!ct(e))return e instanceof jt&&e.extend(t),t;var n,r=N(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;t.extendActions(i)}}catch(t){r.e(t)}finally{r.f()}}var jt=_((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;D(this,t),this.actions=e,this.bind=n}),[{key:"extend",value:function(){var t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||this.bind;if(!t)return this;if(null!=this&&this.actions&&"object"===J(this.actions))for(var e in this.actions){var n=this.actions[e];Tt(t,e,"function"==typeof n?n.bind(t):n)}return this}}]);function Pt(t){return t instanceof Dt}var Dt=_((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};D(this,t),this.attributes=e,this.dirtyAttributes={},this.changes={},this.isLoading=!1,this.isSaving=!1,this.isDestroying=!1,this.isReloading=!1,this.resource=r,this.options=i,this.version=i.version||"v1",this.setAdapter(n)}),[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=function(){return at.apply(void 0,["store","Store"].concat(Array.prototype.slice.call(arguments)))}(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"id",get:function(){return this.getAttribute("id")}},{key:"create",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.mergeAttributes(e);return this.setFlags(["isLoading","isSaving"]),this.store.create(n).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"update",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setFlags(["isLoading","isSaving"]),this.store.update(this.attributes.id,e).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"destroy",value:function(){var t=this;return this.setFlags(["isLoading","isDestroying"]),this.store.destroy(this.attributes.id).then((function(e){return t.setFlags(["isLoading","isDestroying"],!1),e}))}},{key:"reload",value:function(){var t=this;return this.setFlags(["isLoading","isReloading"]),this.store.findRecord(this.attributes.id).then((function(e){return t.reset(),e}))}},{key:"setFlags",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=["isLoading","isSaving","isReloading","isDestroying"],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=this.getAttributes();return kt(this.id)?this.create(e):!0===t.onlyDirty?this.savedirty():this.update(e)}},{key:"saveDirty",value:function(){for(var t=Object.keys(this.dirtyAttributes),e={},n=0;n0}},{key:"mutate",value:function(t,e){this.attributes[t]=e}},{key:"setAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null===n&&"object"===J(t))return this.setAttributes(t);var r=null!==(e=null==this?void 0:this.attributes[t])&&void 0!==e?e:null;return Tt(this.attributes,t,n),Tt(this.dirtyAttributes,t,r),ct(null==this?void 0:this.changes[t])||(this.changes[t]=[]),this.changes[t].push({property:t,previousValue:r,value:n,changedAt:new Date}),this}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var e in t)this.setAttribute(e,t[e]);return this}},{key:"getAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=St(null!==(e=null==this?void 0:this.attributes)&&void 0!==e?e:{},t);return void 0===r?n:r}},{key:"hasAttribute",value:function(t){if(ct(t)){var e,n=t,r=Object.keys(null!==(e=this.attributes)&&void 0!==e?e:{});return n.every((function(t){return r.includes(t)}))}return!(null==this||!this.attributes)&&t in this.attributes}},{key:"hasAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.hasAttribute(t)}},{key:"isAttributeFilled",value:function(t){var e=this;return ct(t)?this.hasAttribute(t)&&t.every((function(t){return!kt(e.getAttribute(t))})):this.hasAttribute(t)&&!kt(this.getAttribute(t))}},{key:"getAttributes",value:function(t){var e={};if(null==t)return this.getAttributes(Object.keys(this.attributes));if("string"==typeof t)return this.getAttribute(Array.prototype.slice.call(arguments));if(!ct(t))throw new Error("No attribute properties provided!");var n,r=N(t);try{for(r.s();!(n=r.n()).done;){var i,o,a=n.value;if("string"==typeof a){var u=this.getAttribute(a);"object"!==J(null===(i=u)||void 0===i?void 0:i.attributes)||ct(null===(o=u)||void 0===o?void 0:o.attributes)||(u=u.attributes),e[a]=u}}}catch(t){r.e(t)}finally{r.f()}return e}},{key:"serialize",value:function(){return this.getAttributes()}},{key:"mergeAttributes",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=null!==(t=null==this?void 0:this.attributes)&&void 0!==t?t:{};return this.attributes=$($({},n),e),this.attributes}},{key:"syncAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attributes=t}}]);ot("resource","Resource",Dt);var Lt=function(){return _((function t(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};D(this,t),this.resource=e,this.adapter=n||At(),this.namespace=et(e),this.storage=wt(),this.options=r,this.extendActions(r.actions)}),[{key:"extendActions",value:function(){return Rt(this,arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])}},{key:"deposit",value:function(t){return t}},{key:"serialize",value:function(t){return ut("resource",rt(this.resource),t,this.adapter)}},{key:"afterFetch",value:function(t){return function(t,e){if("function"==typeof t.options.onAfterFetch&&t.options.onAfterFetch(e),ct(e)){var n,r=[],i=N(e);try{for(i.s();!(n=i.n()).done;){var o=n.value;r.push(t.afterFetch(o))}}catch(t){i.e(t)}finally{i.f()}return wt.apply(void 0,r)}var a=t.serialize(e);return t.deposit(a)}(this,t)}},{key:"create",value:(a=R(U().mark((function t(){var e,n,r,i=arguments;return U().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=4,this.adapter.post("".concat(this.namespace),e,n);case 4:return r=t.sent,t.abrupt("return",this.afterFetch(r));case 6:case"end":return t.stop()}}),t,this)}))),function(){return a.apply(this,arguments)})},{key:"update",value:(o=R(U().mark((function t(e){var n,r,i,o=arguments;return U().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=o.length>1&&void 0!==o[1]?o[1]:{},r=o.length>2&&void 0!==o[2]?o[2]:{},t.next=4,this.adapter.put("".concat(this.namespace,"/").concat(e),n,r);case 4:return i=t.sent,t.abrupt("return",this.afterFetch(i));case 6:case"end":return t.stop()}}),t,this)}))),function(t){return o.apply(this,arguments)})},{key:"findRecord",value:(i=R(U().mark((function t(e){var n,r,i=arguments;return U().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=3,this.adapter.get("".concat(this.namespace,"/").concat(e),{},n);case 3:return r=t.sent,t.abrupt("return",this.afterFetch(r));case 5:case"end":return t.stop()}}),t,this)}))),function(t){return i.apply(this,arguments)})},{key:"findAll",value:(r=R(U().mark((function t(){var e,n,r=arguments;return U().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=r.length>0&&void 0!==r[0]?r[0]:{},t.next=3,this.adapter.get("".concat(this.namespace),{},e);case 3:return n=t.sent,t.abrupt("return",this.afterFetch(n));case 5:case"end":return t.stop()}}),t,this)}))),function(){return r.apply(this,arguments)})},{key:"query",value:(n=R(U().mark((function t(){var e,n,r,i=arguments;return U().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=4,this.adapter.get("".concat(this.namespace),e,n);case 4:return r=t.sent,t.abrupt("return",this.afterFetch(r));case 6:case"end":return t.stop()}}),t,this)}))),function(){return n.apply(this,arguments)})},{key:"queryRecord",value:(e=R(U().mark((function t(){var e,n,r,i=arguments;return U().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},(e=i.length>0&&void 0!==i[0]?i[0]:{}).single=!0,t.next=5,this.adapter.get("".concat(this.namespace),e,n);case 5:return r=t.sent,t.abrupt("return",this.afterFetch(r));case 7:case"end":return t.stop()}}),t,this)}))),function(){return e.apply(this,arguments)})},{key:"destroy",value:(t=R(U().mark((function t(e){var n,r,i,o=arguments;return U().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=o.length>1&&void 0!==o[1]?o[1]:{},r=Pt(e)?e.getAttribute("id"):e,t.next=4,this.adapter.delete("".concat(this.namespace,"/").concat(r),{},n);case 4:return i=t.sent,t.abrupt("return",this.afterFetch(i));case 6:case"end":return t.stop()}}),t,this)}))),function(e){return t.apply(this,arguments)})}]);var t,e,n,r,i,o,a}();ot("store","Store",Lt);var Ct=new jt({getDistanceAndTime:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/distance-and-time"),e,n)},getNextActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/next-activity"),e,n)},dispatch:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/dispatch"),e,n).then(this.afterFetch.bind(this))},start:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/start"),e,n).then(this.afterFetch.bind(this))},updateActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/update-activity"),e,n).then(this.afterFetch.bind(this))},setDestination:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return Pt(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/set-destination/").concat(e),n,r).then(this.afterFetch.bind(this))},captureQrCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return Pt(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-qr").concat(e?"/"+e:""),n,r)},captureSignature:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return Pt(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-signature").concat(e?"/"+e:""),n,r)},complete:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/complete"),e,n).then(this.afterFetch.bind(this))},cancel:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete("".concat(this.namespace,"/").concat(t,"/cancel"),e,n).then(this.afterFetch.bind(this))}}),_t=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"order",$({actions:Ct},r)])}return q(t,Dt),_(t,[{key:"getDistanceAndTime",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getDistanceAndTime(this.id,t,e)}},{key:"dispatch",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.dispatch(this.id,t,e)}},{key:"start",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.start(this.id,t,e)}},{key:"setDestination",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.setDestination(this.id,t,e,n)}},{key:"captureQrCode",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureQrCode(this.id,t,e,n)}},{key:"captureSignature",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureSignature(this.id,t,e,n)}},{key:"getNextActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getNextActivity(this.id,t,e)}},{key:"updateActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.updateActivity(this.id,t,e)}},{key:"cancel",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.cancel(this.id,t,e)}},{key:"complete",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.complete(this.id,t,e)}},{key:"isDispatched",get:function(){return null!==this.getAttribute("dispatched_at")}},{key:"isNotDispatched",get:function(){return null==this.getAttribute("dispatched_at")}},{key:"isStarted",get:function(){return null!==this.getAttribute("started_at")}},{key:"isNotStarted",get:function(){return null==this.getAttribute("started_at")}},{key:"isCompleted",get:function(){return"completed"==this.getAttribute("status")}},{key:"isCanceled",get:function(){return"canceled"==this.getAttribute("status")}},{key:"isEnroute",get:function(){return"driver_enroute"==this.getAttribute("status")||"enroute"===this.getAttribute("status")}},{key:"isInProgress",get:function(){return this.isStarted&&!this.isCanceled&&!this.isCompleted}},{key:"scheduledAt",get:function(){return this.isAttributeFilled("scheduled_at")?new Date(this.getAttribute("scheduled_at")):null}},{key:"startedAt",get:function(){return this.isAttributeFilled("started_at")?new Date(this.getAttribute("started_at")):null}},{key:"dispatchedAt",get:function(){return this.isAttributeFilled("dispatched_at")?new Date(this.getAttribute("dispatched_at")):null}},{key:"status",get:function(){return this.getAttribute("status")}}])}();ot("resource","Order",_t);var Nt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"payload",r])}return q(t,Dt),_(t,[{key:"attach",value:function(t){}},{key:"entities",get:function(){var t=this;return wt(this.entities.map((function(e){return st("Entity",e,t.adapter)})))}},{key:"dropoff",get:function(){return this.dropoff?st("Place",this.dropoff,this.adapter):null}},{key:"pickup",get:function(){return this.pickup?st("Place",this.pickup,this.adapter):null}},{key:"waypoints",get:function(){var t=this;return wt(this.waypoints.map((function(e){return st("Waypoint",e,t.adapter)})))}}])}();ot("resource","Payload",Nt);var Ft=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"entity",r])}return q(t,Dt),_(t)}();ot("resource","Entity",Ft);var Mt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"place",r])}return q(t,Dt),_(t,[{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new Et))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new Et))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"setOwner",value:function(t){return Pt(t)&&this.setAttribute("owner",t.id),"string"==typeof t&&this.setAttribute("owner",t),this}}],[{key:"fromGoogleAddress",value:function(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=Y(e.getAttribute("coordinates"),2),o=i[0],a=i[1];return new t({name:null,address:e.getAttribute("address"),location:new Et(o,a),street1:e.getAttribute("address"),street2:null,city:e.getAttribute("city"),province:e.getAttribute("stateLong"),postal_code:e.getAttribute("postalCode"),neighborhood:e.get("neighborhood"),district:e.getAttribute("county"),building:e.get("building"),country:e.getAttribute("countryShort"),phone:null,security_access_code:null},n,r)}}])}();ot("resource","Place",Mt);var qt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"waypoint",r])}return q(t,Mt),_(t)}();ot("resource","Waypoint",qt);var It=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"tracking-status",r])}return q(t,Dt),_(t)}();ot("resource","TrackingStatus",It);var Ht=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"vehicle",r])}return q(t,Dt),_(t)}();ot("resource","Vehicle",Ht);var zt=new jt({current:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.get("".concat(this.namespace,"/current"),t,e)}}),Bt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"organization",$({actions:zt},r)])}return q(t,Dt),_(t)}();ot("resource","Organization",Bt);var $t=function(t,e){return ct(t)?t.map((function(t){return new Bt(t,e)})):new Bt(t,e)},Ut=new jt({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(function(){return/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"")}(t))return this.adapter.post("drivers/login-with-sms",{phone:t});if(!e)throw new Error("Login requires password!");return this.adapter.post("drivers/login",$({identity:t,password:e},n)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/verify-code",$({identity:t,code:e},n)).then(this.afterFetch.bind(this))},track:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/track"),e,n).then(this.afterFetch.bind(this))},listOrganizations:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("drivers/".concat(t,"/organizations"),n,r).then((function(t){return $t(t,e.adapter)}))},switchOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/switch-organization"),n,r).then((function(t){return $t(t,e.adapter)}))},currentOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("drivers/".concat(t,"/current-organization"),n,r).then((function(t){return $t(t,e.adapter)}))},retrieve:function(t){return this.findRecord(t)},syncDevice:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/register-device"),e,n)}}),Wt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"driver",$({actions:Ut},r)])}return q(t,Dt),_(t,[{key:"token",get:function(){return this.getAttribute("token")}},{key:"isOnline",get:function(){return!0===this.getAttribute("online")}},{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new Et))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new Et))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"track",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.track(this.id,t,e)}},{key:"syncDevice",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.syncDevice(this.id,t,e)}},{key:"listOrganizations",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.listOrganizations(this.id,t,e)}},{key:"switchOrganization",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.switchOrganization(this.id,{next:t},e)}},{key:"currentOrganization",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.currentOrganization(this.id,t,e)}}])}();ot("resource","Driver",Wt);var Yt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"vendor",r])}return q(t,Dt),_(t)}();ot("resource","Vendor",Yt);var Gt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"contact",r])}return q(t,Dt),_(t)}();ot("resource","Contact",Gt);var Qt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"zone",r])}return q(t,Dt),_(t)}();ot("resource","Zone",Qt);var Jt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"service-area",r])}return q(t,Dt),_(t)}();ot("resource","ServiceArea",Jt);var Xt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"service-rate",r])}return q(t,Dt),_(t)}();ot("resource","ServiceRate",Xt);var Kt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"service-quote",r])}return q(t,Dt),_(t,[{key:"fromPreliminary",value:function(){}},{key:"fromPayload",value:function(){}}])}();ot("resource","ServiceQuote",Kt);var Vt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return D(this,t),P(this,t,[e,n,"fleet",r])}return q(t,Dt),_(t)}();ot("resource","Fleet",Vt);var Zt=_((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};D(this,t),this.version=e.version||"v1",this.host=e.host||null,this.namespace=e.namespace||null,this.headers=e.headers||{}}));ot("adapter","Adapter",Zt);var te=function(){function t(e){var n;return D(this,t),(n=P(this,t,[e])).setHeaders({Authorization:"Bearer ".concat(e.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;browser"}),n}return q(t,Zt),_(t,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.headers=$($({},this.headers),t),this}},{key:"parseJSON",value:function(t){return new Promise((function(e,n){t.json().then((function(n){e({statusText:t.statusText,status:t.status,ok:t.ok,json:n})})).catch((function(){n(new Error("Oops! Something went wrong when handling your request."))}))}))}},{key:"request",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new Promise((function(o,a){fetch(i.url||"".concat(e.host,"/").concat(e.namespace,"/").concat(t),$({method:n,mode:i.mode||"cors",headers:new Headers($($({},e.headers||{}),i.headers||{}))},r)).then(e.parseJSON).then((function(t){if(t.ok)return o(t.json);a(new Error(t.json.errors?t.json.errors[0]:t.statusText))})).catch((function(t){a(t)}))}))}},{key:"get",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=kt(e=n)||"string"==typeof e&&!1===/\S/.test(e)?"":new URLSearchParams(n).toString();return this.request("".concat(t).concat(i?"?".concat(i):""),"GET",{},r)}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"POST",{body:JSON.stringify(e)},n)}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PUT",{body:JSON.stringify(e)},n)}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(t,"DELETE",{},e)}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PATCH",{body:JSON.stringify(e)},n)}}])}();function ee(t,e){return function(){return t.apply(e,arguments)}}ot("adapter","BrowserAdapter",te);var ne,re=Object.prototype.toString,ie=Object.getPrototypeOf,oe=(ne=Object.create(null),function(t){var e=re.call(t);return ne[e]||(ne[e]=e.slice(8,-1).toLowerCase())}),ae=function(t){return t=t.toLowerCase(),function(e){return oe(e)===t}},ue=function(t){return function(e){return J(e)===t}},se=Array.isArray,ce=ue("undefined"),le=ae("ArrayBuffer"),he=ue("string"),fe=ue("function"),de=ue("number"),ve=function(t){return null!==t&&"object"===J(t)},pe=function(t){if("object"!==oe(t))return!1;var e=ie(t);return!(null!==e&&e!==Object.prototype&&null!==Object.getPrototypeOf(e)||Symbol.toStringTag in t||Symbol.iterator in t)},ye=ae("Date"),ge=ae("File"),me=ae("Blob"),we=ae("FileList"),be=ae("URLSearchParams"),ke=Y(["ReadableStream","Request","Response","Headers"].map(ae),4),xe=ke[0],Ae=ke[1],Ee=ke[2],Oe=ke[3];function Se(t,e){var n,r,i=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).allOwnKeys,o=void 0!==i&&i;if(null!=t)if("object"!==J(t)&&(t=[t]),se(t))for(n=0,r=t.length;n0;)if(e===(n=r[i]).toLowerCase())return n;return null}var Re,je,Pe,De,Le,Ce="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,_e=function(t){return!ce(t)&&t!==Ce},Ne=(Re="undefined"!=typeof Uint8Array&&ie(Uint8Array),function(t){return Re&&t instanceof Re}),Fe=ae("HTMLFormElement"),Me=function(){var t=Object.prototype.hasOwnProperty;return function(e,n){return t.call(e,n)}}(),qe=ae("RegExp"),Ie=function(t,e){var n=Object.getOwnPropertyDescriptors(t),r={};Se(n,(function(n,i){var o;!1!==(o=e(n,i,t))&&(r[i]=o||n)})),Object.defineProperties(t,r)},He="abcdefghijklmnopqrstuvwxyz",ze="0123456789",Be={DIGIT:ze,ALPHA:He,ALPHA_DIGIT:He+He.toUpperCase()+ze},$e=ae("AsyncFunction"),Ue=(je="function"==typeof setImmediate,Pe=fe(Ce.postMessage),je?setImmediate:Pe?(De="axios@".concat(Math.random()),Le=[],Ce.addEventListener("message",(function(t){var e=t.source,n=t.data;e===Ce&&n===De&&Le.length&&Le.shift()()}),!1),function(t){Le.push(t),Ce.postMessage(De,"*")}):function(t){return setTimeout(t)}),We="undefined"!=typeof queueMicrotask?queueMicrotask.bind(Ce):"undefined"!=typeof process&&process.nextTick||Ue,Ye={isArray:se,isArrayBuffer:le,isBuffer:function(t){return null!==t&&!ce(t)&&null!==t.constructor&&!ce(t.constructor)&&fe(t.constructor.isBuffer)&&t.constructor.isBuffer(t)},isFormData:function(t){var e;return t&&("function"==typeof FormData&&t instanceof FormData||fe(t.append)&&("formdata"===(e=oe(t))||"object"===e&&fe(t.toString)&&"[object FormData]"===t.toString()))},isArrayBufferView:function(t){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&le(t.buffer)},isString:he,isNumber:de,isBoolean:function(t){return!0===t||!1===t},isObject:ve,isPlainObject:pe,isReadableStream:xe,isRequest:Ae,isResponse:Ee,isHeaders:Oe,isUndefined:ce,isDate:ye,isFile:ge,isBlob:me,isRegExp:qe,isFunction:fe,isStream:function(t){return ve(t)&&fe(t.pipe)},isURLSearchParams:be,isTypedArray:Ne,isFileList:we,forEach:Se,merge:function t(){for(var e=(_e(this)&&this||{}).caseless,n={},r=function(r,i){var o=e&&Te(n,i)||i;pe(n[o])&&pe(r)?n[o]=t(n[o],r):pe(r)?n[o]=t({},r):se(r)?n[o]=r.slice():n[o]=r},i=0,o=arguments.length;i3&&void 0!==arguments[3]?arguments[3]:{}).allOwnKeys}),t},trim:function(t){return t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")},stripBOM:function(t){return 65279===t.charCodeAt(0)&&(t=t.slice(1)),t},inherits:function(t,e,n,r){t.prototype=Object.create(e.prototype,r),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),n&&Object.assign(t.prototype,n)},toFlatObject:function(t,e,n,r){var i,o,a,u={};if(e=e||{},null==t)return e;do{for(o=(i=Object.getOwnPropertyNames(t)).length;o-- >0;)a=i[o],r&&!r(a,t,e)||u[a]||(e[a]=t[a],u[a]=!0);t=!1!==n&&ie(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},kindOf:oe,kindOfTest:ae,endsWith:function(t,e,n){t=String(t),(void 0===n||n>t.length)&&(n=t.length),n-=e.length;var r=t.indexOf(e,n);return-1!==r&&r===n},toArray:function(t){if(!t)return null;if(se(t))return t;var e=t.length;if(!de(e))return null;for(var n=new Array(e);e-- >0;)n[e]=t[e];return n},forEachEntry:function(t,e){for(var n,r=(t&&t[Symbol.iterator]).call(t);(n=r.next())&&!n.done;){var i=n.value;e.call(t,i[0],i[1])}},matchAll:function(t,e){for(var n,r=[];null!==(n=t.exec(e));)r.push(n);return r},isHTMLForm:Fe,hasOwnProperty:Me,hasOwnProp:Me,reduceDescriptors:Ie,freezeMethods:function(t){Ie(t,(function(e,n){if(fe(t)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;var r=t[n];fe(r)&&(e.enumerable=!1,"writable"in e?e.writable=!1:e.set||(e.set=function(){throw Error("Can not rewrite read-only method '"+n+"'")}))}))},toObjectSet:function(t,e){var n={},r=function(t){t.forEach((function(t){n[t]=!0}))};return se(t)?r(t):r(String(t).split(e)),n},toCamelCase:function(t){return t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(t,e,n){return e.toUpperCase()+n}))},noop:function(){},toFiniteNumber:function(t,e){return null!=t&&Number.isFinite(t=+t)?t:e},findKey:Te,global:Ce,isContextDefined:_e,ALPHABET:Be,generateString:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Be.ALPHA_DIGIT,n="",r=e.length;t--;)n+=e[Math.random()*r|0];return n},isSpecCompliantForm:function(t){return!!(t&&fe(t.append)&&"FormData"===t[Symbol.toStringTag]&&t[Symbol.iterator])},toJSONObject:function(t){var e=new Array(10),n=function(t,r){if(ve(t)){if(e.indexOf(t)>=0)return;if(!("toJSON"in t)){e[r]=t;var i=se(t)?[]:{};return Se(t,(function(t,e){var o=n(t,r+1);!ce(o)&&(i[e]=o)})),e[r]=void 0,i}}return t};return n(t,0)},isAsyncFn:$e,isThenable:function(t){return t&&(ve(t)||fe(t))&&fe(t.then)&&fe(t.catch)},setImmediate:Ue,asap:We};function Ge(t,e,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=t,this.name="AxiosError",e&&(this.code=e),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status?i.status:null)}Ye.inherits(Ge,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Ye.toJSONObject(this.config),code:this.code,status:this.status}}});var Qe=Ge.prototype,Je={};function Xe(t){return Ye.isPlainObject(t)||Ye.isArray(t)}function Ke(t){return Ye.endsWith(t,"[]")?t.slice(0,-2):t}function Ve(t,e,n){return t?t.concat(e).map((function(t,e){return t=Ke(t),!n&&e?"["+t+"]":t})).join(n?".":""):e}["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((function(t){Je[t]={value:t}})),Object.defineProperties(Ge,Je),Object.defineProperty(Qe,"isAxiosError",{value:!0}),Ge.from=function(t,e,n,r,i,o){var a=Object.create(Qe);return Ye.toFlatObject(t,a,(function(t){return t!==Error.prototype}),(function(t){return"isAxiosError"!==t})),Ge.call(a,t.message,e,n,r,i),a.cause=t,a.name=t.name,o&&Object.assign(a,o),a};var Ze=Ye.toFlatObject(Ye,{},null,(function(t){return/^is[A-Z]/.test(t)}));function tn(t,e,n){if(!Ye.isObject(t))throw new TypeError("target must be an object");e=e||new FormData;var r=(n=Ye.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(t,e){return!Ye.isUndefined(e[t])}))).metaTokens,i=n.visitor||c,o=n.dots,a=n.indexes,u=(n.Blob||"undefined"!=typeof Blob&&Blob)&&Ye.isSpecCompliantForm(e);if(!Ye.isFunction(i))throw new TypeError("visitor must be a function");function s(t){if(null===t)return"";if(Ye.isDate(t))return t.toISOString();if(!u&&Ye.isBlob(t))throw new Ge("Blob is not supported. Use a Buffer instead.");return Ye.isArrayBuffer(t)||Ye.isTypedArray(t)?u&&"function"==typeof Blob?new Blob([t]):Buffer.from(t):t}function c(t,n,i){var u=t;if(t&&!i&&"object"===J(t))if(Ye.endsWith(n,"{}"))n=r?n:n.slice(0,-2),t=JSON.stringify(t);else if(Ye.isArray(t)&&function(t){return Ye.isArray(t)&&!t.some(Xe)}(t)||(Ye.isFileList(t)||Ye.endsWith(n,"[]"))&&(u=Ye.toArray(t)))return n=Ke(n),u.forEach((function(t,r){!Ye.isUndefined(t)&&null!==t&&e.append(!0===a?Ve([n],r,o):null===a?n:n+"[]",s(t))})),!1;return!!Xe(t)||(e.append(Ve(i,n,o),s(t)),!1)}var l=[],h=Object.assign(Ze,{defaultVisitor:c,convertValue:s,isVisitable:Xe});if(!Ye.isObject(t))throw new TypeError("data must be an object");return function t(n,r){if(!Ye.isUndefined(n)){if(-1!==l.indexOf(n))throw Error("Circular reference detected in "+r.join("."));l.push(n),Ye.forEach(n,(function(n,o){!0===(!(Ye.isUndefined(n)||null===n)&&i.call(e,n,Ye.isString(o)?o.trim():o,r,h))&&t(n,r?r.concat(o):[o])})),l.pop()}}(t),e}function en(t){var e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,(function(t){return e[t]}))}function nn(t,e){this._pairs=[],t&&tn(t,this,e)}var rn=nn.prototype;function on(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function an(t,e,n){if(!e)return t;var r=n&&n.encode||on;Ye.isFunction(n)&&(n={serialize:n});var i,o=n&&n.serialize;if(i=o?o(e,n):Ye.isURLSearchParams(e)?e.toString():new nn(e,n).toString(r)){var a=t.indexOf("#");-1!==a&&(t=t.slice(0,a)),t+=(-1===t.indexOf("?")?"?":"&")+i}return t}rn.append=function(t,e){this._pairs.push([t,e])},rn.toString=function(t){var e=t?function(e){return t.call(this,e,en)}:en;return this._pairs.map((function(t){return e(t[0])+"="+e(t[1])}),"").join("&")};var un=_((function t(){D(this,t),this.handlers=[]}),[{key:"use",value:function(t,e,n){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}},{key:"eject",value:function(t){this.handlers[t]&&(this.handlers[t]=null)}},{key:"clear",value:function(){this.handlers&&(this.handlers=[])}},{key:"forEach",value:function(t){Ye.forEach(this.handlers,(function(e){null!==e&&t(e)}))}}]),sn={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},cn={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:nn,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},ln="undefined"!=typeof window&&"undefined"!=typeof document,hn="object"===("undefined"==typeof navigator?"undefined":J(navigator))&&navigator||void 0,fn=ln&&(!hn||["ReactNative","NativeScript","NS"].indexOf(hn.product)<0),dn="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,vn=ln&&window.location.href||"http://localhost",pn=$($({},Object.freeze({__proto__:null,hasBrowserEnv:ln,hasStandardBrowserEnv:fn,hasStandardBrowserWebWorkerEnv:dn,navigator:hn,origin:vn})),cn);function yn(t){function e(t,n,r,i){var o=t[i++];if("__proto__"===o)return!0;var a=Number.isFinite(+o),u=i>=t.length;return o=!o&&Ye.isArray(r)?r.length:o,u?(Ye.hasOwnProp(r,o)?r[o]=[r[o],n]:r[o]=n,!a):(r[o]&&Ye.isObject(r[o])||(r[o]=[]),e(t,n,r[o],i)&&Ye.isArray(r[o])&&(r[o]=function(t){var e,n,r={},i=Object.keys(t),o=i.length;for(e=0;e-1,o=Ye.isObject(t);if(o&&Ye.isHTMLForm(t)&&(t=new FormData(t)),Ye.isFormData(t))return i?JSON.stringify(yn(t)):t;if(Ye.isArrayBuffer(t)||Ye.isBuffer(t)||Ye.isStream(t)||Ye.isFile(t)||Ye.isBlob(t)||Ye.isReadableStream(t))return t;if(Ye.isArrayBufferView(t))return t.buffer;if(Ye.isURLSearchParams(t))return e.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return function(t,e){return tn(t,new pn.classes.URLSearchParams,Object.assign({visitor:function(t,e,n,r){return pn.isNode&&Ye.isBuffer(t)?(this.append(e,t.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},e))}(t,this.formSerializer).toString();if((n=Ye.isFileList(t))||r.indexOf("multipart/form-data")>-1){var a=this.env&&this.env.FormData;return tn(n?{"files[]":t}:t,a&&new a,this.formSerializer)}}return o||i?(e.setContentType("application/json",!1),function(t){if(Ye.isString(t))try{return(0,JSON.parse)(t),Ye.trim(t)}catch(t){if("SyntaxError"!==t.name)throw t}return(0,JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){var e=this.transitional||gn.transitional,n=e&&e.forcedJSONParsing,r="json"===this.responseType;if(Ye.isResponse(t)||Ye.isReadableStream(t))return t;if(t&&Ye.isString(t)&&(n&&!this.responseType||r)){var i=!(e&&e.silentJSONParsing)&&r;try{return JSON.parse(t)}catch(t){if(i){if("SyntaxError"===t.name)throw Ge.from(t,Ge.ERR_BAD_RESPONSE,this,null,this.response);throw t}}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:pn.classes.FormData,Blob:pn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};Ye.forEach(["delete","get","head","post","put","patch"],(function(t){gn.headers[t]={}}));var mn=Ye.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),wn=Symbol("internals");function bn(t){return t&&String(t).trim().toLowerCase()}function kn(t){return!1===t||null==t?t:Ye.isArray(t)?t.map(kn):String(t)}function xn(t,e,n,r,i){return Ye.isFunction(r)?r.call(this,e,n):(i&&(e=n),Ye.isString(e)?Ye.isString(r)?-1!==e.indexOf(r):Ye.isRegExp(r)?r.test(e):void 0:void 0)}var An=_((function t(e){D(this,t),e&&this.set(e)}),[{key:"set",value:function(t,e,n){var r=this;function i(t,e,n){var i=bn(e);if(!i)throw new Error("header name must be a non-empty string");var o=Ye.findKey(r,i);(!o||void 0===r[o]||!0===n||void 0===n&&!1!==r[o])&&(r[o||e]=kn(t))}var o=function(t,e){return Ye.forEach(t,(function(t,n){return i(t,n,e)}))};if(Ye.isPlainObject(t)||t instanceof this.constructor)o(t,e);else if(Ye.isString(t)&&(t=t.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim()))o(function(t){var e,n,r,i={};return t&&t.split("\n").forEach((function(t){r=t.indexOf(":"),e=t.substring(0,r).trim().toLowerCase(),n=t.substring(r+1).trim(),!e||i[e]&&mn[e]||("set-cookie"===e?i[e]?i[e].push(n):i[e]=[n]:i[e]=i[e]?i[e]+", "+n:n)})),i}(t),e);else if(Ye.isHeaders(t)){var a,u=N(t.entries());try{for(u.s();!(a=u.n()).done;){var s=Y(a.value,2),c=s[0];i(s[1],c,n)}}catch(t){u.e(t)}finally{u.f()}}else null!=t&&i(e,t,n);return this}},{key:"get",value:function(t,e){if(t=bn(t)){var n=Ye.findKey(this,t);if(n){var r=this[n];if(!e)return r;if(!0===e)return function(t){for(var e,n=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;e=r.exec(t);)n[e[1]]=e[2];return n}(r);if(Ye.isFunction(e))return e.call(this,r,n);if(Ye.isRegExp(e))return e.exec(r);throw new TypeError("parser must be boolean|regexp|function")}}}},{key:"has",value:function(t,e){if(t=bn(t)){var n=Ye.findKey(this,t);return!(!n||void 0===this[n]||e&&!xn(0,this[n],n,e))}return!1}},{key:"delete",value:function(t,e){var n=this,r=!1;function i(t){if(t=bn(t)){var i=Ye.findKey(n,t);!i||e&&!xn(0,n[i],i,e)||(delete n[i],r=!0)}}return Ye.isArray(t)?t.forEach(i):i(t),r}},{key:"clear",value:function(t){for(var e=Object.keys(this),n=e.length,r=!1;n--;){var i=e[n];t&&!xn(0,this[i],i,t,!0)||(delete this[i],r=!0)}return r}},{key:"normalize",value:function(t){var e=this,n={};return Ye.forEach(this,(function(r,i){var o=Ye.findKey(n,i);if(o)return e[o]=kn(r),void delete e[i];var a=t?function(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(function(t,e,n){return e.toUpperCase()+n}))}(i):String(i).trim();a!==i&&delete e[i],e[a]=kn(r),n[a]=!0})),this}},{key:"concat",value:function(){for(var t,e=arguments.length,n=new Array(e),r=0;r1?n-1:0),i=1;i2&&void 0!==arguments[2]?arguments[2]:3,r=0,i=function(t,e){t=t||10;var n,r=new Array(t),i=new Array(t),o=0,a=0;return e=void 0!==e?e:1e3,function(u){var s=Date.now(),c=i[a];n||(n=s),r[o]=u,i[o]=s;for(var l=a,h=0;l!==o;)h+=r[l++],l%=t;if((o=(o+1)%t)===a&&(a=(a+1)%t),!(s-n1&&void 0!==arguments[1]?arguments[1]:Date.now();i=o,n=null,r&&(clearTimeout(r),r=null),t.apply(null,e)};return[function(){for(var t=Date.now(),e=t-i,u=arguments.length,s=new Array(u),c=0;c=o?a(s,t):(n=s,r||(r=setTimeout((function(){r=null,a(n)}),o-e)))},function(){return n&&a(n)}]}((function(n){var o=n.loaded,a=n.lengthComputable?n.total:void 0,u=o-r,s=i(u);r=o;var c=F({loaded:o,total:a,progress:a?o/a:void 0,bytes:u,rate:s||void 0,estimated:s&&a&&o<=a?(a-o)/s:void 0,event:n,lengthComputable:null!=a},e?"download":"upload",!0);t(c)}),n)},jn=function(t,e){var n=null!=t;return[function(r){return e[0]({lengthComputable:n,total:t,loaded:r})},e[1]]},Pn=function(t){return function(){for(var e=arguments.length,n=new Array(e),r=0;r1?e-1:0),r=1;r1?"since :\n"+u.map(nr).join("\n"):" "+nr(u[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return n};function or(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new Sn(null,t)}function ar(t){return or(t),t.headers=An.from(t.headers),t.data=En.call(t,t.transformRequest),-1!==["post","put","patch"].indexOf(t.method)&&t.headers.setContentType("application/x-www-form-urlencoded",!1),ir(t.adapter||gn.adapter)(t).then((function(e){return or(t),e.data=En.call(t,t.transformResponse,e),e.headers=An.from(e.headers),e}),(function(e){return On(e)||(or(t),e&&e.response&&(e.response.data=En.call(t,t.transformResponse,e.response),e.response.headers=An.from(e.response.headers))),Promise.reject(e)}))}var ur={};["object","boolean","number","function","string","symbol"].forEach((function(t,e){ur[t]=function(n){return J(n)===t||"a"+(e<1?"n ":" ")+t}}));var sr={};ur.transitional=function(t,e,n){function r(t,e){return"[Axios v1.7.9] Transitional option '"+t+"'"+e+(n?". "+n:"")}return function(n,i,o){if(!1===t)throw new Ge(r(i," has been removed"+(e?" in "+e:"")),Ge.ERR_DEPRECATED);return e&&!sr[i]&&(sr[i]=!0,console.warn(r(i," has been deprecated since v"+e+" and will be removed in the near future"))),!t||t(n,i,o)}},ur.spelling=function(t){return function(e,n){return console.warn("".concat(n," is likely a misspelling of ").concat(t)),!0}};var cr={assertOptions:function(t,e,n){if("object"!==J(t))throw new Ge("options must be an object",Ge.ERR_BAD_OPTION_VALUE);for(var r=Object.keys(t),i=r.length;i-- >0;){var o=r[i],a=e[o];if(a){var u=t[o],s=void 0===u||a(u,o,t);if(!0!==s)throw new Ge("option "+o+" must be "+s,Ge.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new Ge("Unknown option "+o,Ge.ERR_BAD_OPTION)}},validators:ur},lr=cr.validators,hr=function(){return _((function t(e){D(this,t),this.defaults=e,this.interceptors={request:new un,response:new un}}),[{key:"request",value:(t=R(U().mark((function t(e,n){var r,i;return U().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,this._request(e,n);case 3:return t.abrupt("return",t.sent);case 6:if(t.prev=6,t.t0=t.catch(0),t.t0 instanceof Error){r={},Error.captureStackTrace?Error.captureStackTrace(r):r=new Error,i=r.stack?r.stack.replace(/^.+\n/,""):"";try{t.t0.stack?i&&!String(t.t0.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(t.t0.stack+="\n"+i):t.t0.stack=i}catch(t){}}throw t.t0;case 10:case"end":return t.stop()}}),t,this,[[0,6]])}))),function(e,n){return t.apply(this,arguments)})},{key:"_request",value:function(t,e){"string"==typeof t?(e=e||{}).url=t:e=t||{};var n=e=Nn(this.defaults,e),r=n.transitional,i=n.paramsSerializer,o=n.headers;void 0!==r&&cr.assertOptions(r,{silentJSONParsing:lr.transitional(lr.boolean),forcedJSONParsing:lr.transitional(lr.boolean),clarifyTimeoutError:lr.transitional(lr.boolean)},!1),null!=i&&(Ye.isFunction(i)?e.paramsSerializer={serialize:i}:cr.assertOptions(i,{encode:lr.function,serialize:lr.function},!0)),cr.assertOptions(e,{baseUrl:lr.spelling("baseURL"),withXsrfToken:lr.spelling("withXSRFToken")},!0),e.method=(e.method||this.defaults.method||"get").toLowerCase();var a=o&&Ye.merge(o.common,o[e.method]);o&&Ye.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete o[t]})),e.headers=An.concat(a,o);var u=[],s=!0;this.interceptors.request.forEach((function(t){"function"==typeof t.runWhen&&!1===t.runWhen(e)||(s=s&&t.synchronous,u.unshift(t.fulfilled,t.rejected))}));var c,l=[];this.interceptors.response.forEach((function(t){l.push(t.fulfilled,t.rejected)}));var h,f=0;if(!s){var d=[ar.bind(this),void 0];for(d.unshift.apply(d,u),d.push.apply(d,l),h=d.length,c=Promise.resolve(e);f0;)r._listeners[e](t);r._listeners=null}})),this.promise.then=function(t){var e,n=new Promise((function(t){r.subscribe(t),e=t})).then(t);return n.cancel=function(){r.unsubscribe(e)},n},e((function(t,e,i){r.reason||(r.reason=new Sn(t,e,i),n(r.reason))}))}return _(t,[{key:"throwIfRequested",value:function(){if(this.reason)throw this.reason}},{key:"subscribe",value:function(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t]}},{key:"unsubscribe",value:function(t){if(this._listeners){var e=this._listeners.indexOf(t);-1!==e&&this._listeners.splice(e,1)}}},{key:"toAbortSignal",value:function(){var t=this,e=new AbortController,n=function(t){e.abort(t)};return this.subscribe(n),e.signal.unsubscribe=function(){return t.unsubscribe(n)},e.signal}}],[{key:"source",value:function(){var e;return{token:new t((function(t){e=t})),cancel:e}}}])}(),dr={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(dr).forEach((function(t){var e=Y(t,2),n=e[0],r=e[1];dr[r]=n}));var vr=function t(e){var n=new hr(e),r=ee(hr.prototype.request,n);return Ye.extend(r,hr.prototype,n,{allOwnKeys:!0}),Ye.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return t(Nn(e,n))},r}(gn);vr.Axios=hr,vr.CanceledError=Sn,vr.CancelToken=fr,vr.isCancel=On,vr.VERSION="1.7.9",vr.toFormData=tn,vr.AxiosError=Ge,vr.Cancel=vr.CanceledError,vr.all=function(t){return Promise.all(t)},vr.spread=function(t){return function(e){return t.apply(null,e)}},vr.isAxiosError=function(t){return Ye.isObject(t)&&!0===t.isAxiosError},vr.mergeConfig=Nn,vr.AxiosHeaders=An,vr.formToJSON=function(t){return yn(Ye.isHTMLForm(t)?new FormData(t):t)},vr.getAdapter=ir,vr.HttpStatusCode=dr,vr.default=vr,vr.Axios,vr.AxiosError,vr.CanceledError,vr.isCancel,vr.CancelToken,vr.VERSION,vr.all,vr.Cancel,vr.isAxiosError,vr.spread,vr.toFormData,vr.AxiosHeaders,vr.HttpStatusCode,vr.formToJSON,vr.getAdapter,vr.mergeConfig;var pr=function(){function t(e){var n;return D(this,t),(n=P(this,t,[e])).axiosInstance=vr.create({baseURL:"".concat(n.host,"/").concat(n.namespace),headers:{Authorization:"Bearer ".concat(e.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;node"}}),n.axiosInstance.interceptors.response.use((function(t){return t.data}),(function(t){if(t.response){var e=t.response.data;if(ct(e.errors)&&e.errors.length)throw new Error(e.errors[0]);if(e.error)throw new Error(e.error)}throw t})),n}return q(t,Zt),_(t,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.axiosInstance.defaults.headers.common=$($({},this.axiosInstance.defaults.headers.common),t),this}},{key:"request",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axiosInstance.request($({method:t,url:e},n))}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request("GET",t,$({params:e},n))}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request("POST",t,$({data:e},n))}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request("PUT",t,$({data:e},n))}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request("DELETE",t,e)}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request("PATCH",t,$({data:e},n))}}])}();ot("adapter","NodeAdapter",pr);var yr=function(){function t(){return D(this,t),P(this,t,arguments)}return q(t,Zt),_(t)}();ot("adapter","EmberJsAdapter",yr),function(){function t(e){var n,r,i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(D(this,t),this.version=null!==(n=o.version)&&void 0!==n?n:"v1",this.options={version:this.version,host:null!==(r=o.host)&&void 0!==r?r:"https://api.fleetbase.io",namespace:null!==(i=o.namespace)&&void 0!==i?i:this.version,debug:a,publicKey:e},"string"!=typeof e||0===e.length)throw new Error("⚠️ Invalid public key given to Fleetbase SDK");if(!xt()&&e.toLowerCase().startsWith("$"))throw new Error("Secret key provided. You must use a public key with Fleetbase Javascript SDK!");this.adapter=o.adapter||At(this.options),this.orders=new Lt("order",this.adapter).extendActions(Ct),this.entities=new Lt("entity",this.adapter),this.places=new Lt("place",this.adapter),this.drivers=new Lt("driver",this.adapter).extendActions(Ut),this.vehicles=new Lt("vehicle",this.adapter),this.vendors=new Lt("vendor",this.adapter),this.contacts=new Lt("contact",this.adapter),this.serviceAreas=new Lt("service-area",this.adapter),this.zones=new Lt("zone",this.adapter),this.fleets=new Lt("fleet",this.adapter),this.organizations=new Lt("organization",this.adapter).extendActions(zt)}_(t,[{key:"setAdapter",value:function(t){this.adapter=t}},{key:"getAdapter",value:function(){return this.adapter}}],[{key:"newInstance",value:function(){return L(t,Array.prototype.slice.call(arguments))}}])}();var gr=function(){function t(){return i(this,t),r(this,t,arguments)}return l(t,Lt),a(t,[{key:"extendActions",value:function(){return Rt(this,arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])}},{key:"serialize",value:function(t){return ut("resource",rt(this.resource),t,this.adapter)}}])}();function mr(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"USD",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"symbol";return new Intl.NumberFormat("en-US",{style:"currency",currency:e,currencyDisplay:n}).format(t)}function wr(t){var e=null==t;if(e)return e;if("number"==typeof t.size)return!t.size;var n=m(t);if("object"===n){var r=t.size;if("number"==typeof r)return!r}if("number"==typeof t.length&&"function"!==n)return!t.length;if("object"===n){var i=t.length;if("number"==typeof i)return!i}return!1}var br=Array.isArray,kr=function(){function t(){return i(this,t),r(this,t,arguments)}return l(t,Dt),a(t,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new gr(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}}])}();ot("resource","StorefrontResource",kr);var xr=new jt({count:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={};return t&&(n.store=t),this.adapter.get("".concat(this.namespace,"/count"),n,e)}}),Ar=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,t),r(this,t,[e,n,"review",o])}return l(t,kr),a(t,[{key:"getMedia",value:function(){}},{key:"getPhotos",value:function(){}},{key:"getVideos",value:function(){}}])}();ot("resource","Review",Ar);var Er=6048e5,Or=Symbol.for("constructDateFrom");function Sr(t,e){return"function"==typeof t?t(e):t&&"object"===m(t)&&Or in t?t[Or](e):t instanceof Date?new t.constructor(e):new Date(e)}function Tr(t,e){return Sr(e||t,t)}function Rr(t,e,n){var r=Tr(t,null==n?void 0:n.in);return isNaN(e)?Sr((null==n?void 0:n.in)||t,NaN):e?(r.setDate(r.getDate()+e),r):r}var jr={};function Pr(){return jr}function Dr(t,e){var n,r,i,o,a,u,s=Pr(),c=null!==(n=null!==(r=null!==(i=null!==(o=null==e?void 0:e.weekStartsOn)&&void 0!==o?o:null==e||null===(a=e.locale)||void 0===a||null===(a=a.options)||void 0===a?void 0:a.weekStartsOn)&&void 0!==i?i:s.weekStartsOn)&&void 0!==r?r:null===(u=s.locale)||void 0===u||null===(u=u.options)||void 0===u?void 0:u.weekStartsOn)&&void 0!==n?n:0,l=Tr(t,null==e?void 0:e.in),h=l.getDay(),f=(h=o.getTime()?r+1:n.getTime()>=u.getTime()?r:r-1}function _r(t){var e=Tr(t),n=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return n.setUTCFullYear(e.getFullYear()),+t-+n}function Nr(t,e){var n=Tr(t,void 0);return n.setHours(0,0,0,0),n}function Fr(t,e,n){var r=function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r0&&void 0!==arguments[0]?arguments[0]:{},n=e.width?String(e.width):t.defaultWidth;return t.formats[n]||t.formats[t.defaultWidth]}}var Hr={date:Ir({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:Ir({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:Ir({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},zr={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function Br(t){return function(e,n){var r;if("formatting"===(null!=n&&n.context?String(n.context):"standalone")&&t.formattingValues){var i=t.defaultFormattingWidth||t.defaultWidth,o=null!=n&&n.width?String(n.width):i;r=t.formattingValues[o]||t.formattingValues[i]}else{var a=t.defaultWidth,u=null!=n&&n.width?String(n.width):t.defaultWidth;r=t.values[u]||t.values[a]}return r[t.argumentCallback?t.argumentCallback(e):e]}}function $r(t){return function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.width,i=r&&t.matchPatterns[r]||t.matchPatterns[t.defaultMatchWidth],o=e.match(i);if(!o)return null;var a,u=o[0],s=r&&t.parsePatterns[r]||t.parsePatterns[t.defaultParseWidth],c=Array.isArray(s)?function(t,e){for(var n=0;n0?"in "+r:r+" ago":r},formatLong:Hr,formatRelative:function(t,e,n,r){return zr[t]},localize:{ordinalNumber:function(t,e){var n=Number(t),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:Br({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:Br({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(t){return t-1}}),month:Br({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:Br({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:Br({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(Ur={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(t){return parseInt(t,10)}},function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.match(Ur.matchPattern);if(!n)return null;var r=n[0],i=t.match(Ur.parsePattern);if(!i)return null;var o=Ur.valueCallback?Ur.valueCallback(i[0]):i[0];return{value:o=e.valueCallback?e.valueCallback(o):o,rest:t.slice(r.length)}}),era:$r({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:$r({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:$r({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:$r({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:$r({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function Yr(t,e){var n=Tr(t,void 0),r=Fr(n,function(t){var e=Tr(t,void 0);return e.setFullYear(e.getFullYear(),0,1),e.setHours(0,0,0,0),e}(n));return r+1}function Gr(t,e){var n=Tr(t,void 0),r=+Lr(n)-+function(t){var e=Cr(t),n=Sr(t,0);return n.setFullYear(e,0,4),n.setHours(0,0,0,0),Lr(n)}(n);return Math.round(r/Er)+1}function Qr(t,e){var n,r,i,o,a,u,s=Tr(t,null==e?void 0:e.in),c=s.getFullYear(),l=Pr(),h=null!==(n=null!==(r=null!==(i=null!==(o=null==e?void 0:e.firstWeekContainsDate)&&void 0!==o?o:null==e||null===(a=e.locale)||void 0===a||null===(a=a.options)||void 0===a?void 0:a.firstWeekContainsDate)&&void 0!==i?i:l.firstWeekContainsDate)&&void 0!==r?r:null===(u=l.locale)||void 0===u||null===(u=u.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==n?n:1,f=Sr((null==e?void 0:e.in)||t,0);f.setFullYear(c+1,0,h),f.setHours(0,0,0,0);var d=Dr(f,e),v=Sr((null==e?void 0:e.in)||t,0);v.setFullYear(c,0,h),v.setHours(0,0,0,0);var p=Dr(v,e);return+s>=+d?c+1:+s>=+p?c:c-1}function Jr(t,e){var n=Tr(t,null==e?void 0:e.in),r=+Dr(n,e)-+function(t,e){var n,r,i,o,a,u,s=Pr(),c=null!==(n=null!==(r=null!==(i=null!==(o=null==e?void 0:e.firstWeekContainsDate)&&void 0!==o?o:null==e||null===(a=e.locale)||void 0===a||null===(a=a.options)||void 0===a?void 0:a.firstWeekContainsDate)&&void 0!==i?i:s.firstWeekContainsDate)&&void 0!==r?r:null===(u=s.locale)||void 0===u||null===(u=u.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==n?n:1,l=Qr(t,e),h=Sr((null==e?void 0:e.in)||t,0);return h.setFullYear(l,0,c),h.setHours(0,0,0,0),Dr(h,e)}(n,e);return Math.round(r/Er)+1}function Xr(t,e){return(t<0?"-":"")+Math.abs(t).toString().padStart(e,"0")}var Kr=function(t,e){var n=t.getFullYear(),r=n>0?n:1-n;return Xr("yy"===e?r%100:r,e.length)},Vr=function(t,e){var n=t.getMonth();return"M"===e?String(n+1):Xr(n+1,2)},Zr=function(t,e){return Xr(t.getDate(),e.length)},ti=function(t,e){return Xr(t.getHours()%12||12,e.length)},ei=function(t,e){return Xr(t.getHours(),e.length)},ni=function(t,e){return Xr(t.getMinutes(),e.length)},ri=function(t,e){return Xr(t.getSeconds(),e.length)},ii=function(t,e){var n=e.length,r=t.getMilliseconds();return Xr(Math.trunc(r*Math.pow(10,n-3)),e.length)},oi="midnight",ai="noon",ui="morning",si="afternoon",ci="evening",li="night",hi={G:function(t,e,n){var r=t.getFullYear()>0?1:0;switch(e){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});default:return n.era(r,{width:"wide"})}},y:function(t,e,n){if("yo"===e){var r=t.getFullYear(),i=r>0?r:1-r;return n.ordinalNumber(i,{unit:"year"})}return Kr(t,e)},Y:function(t,e,n,r){var i=Qr(t,r),o=i>0?i:1-i;return"YY"===e?Xr(o%100,2):"Yo"===e?n.ordinalNumber(o,{unit:"year"}):Xr(o,e.length)},R:function(t,e){return Xr(Cr(t),e.length)},u:function(t,e){return Xr(t.getFullYear(),e.length)},Q:function(t,e,n){var r=Math.ceil((t.getMonth()+1)/3);switch(e){case"Q":return String(r);case"QQ":return Xr(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(t,e,n){var r=Math.ceil((t.getMonth()+1)/3);switch(e){case"q":return String(r);case"qq":return Xr(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(t,e,n){var r=t.getMonth();switch(e){case"M":case"MM":return Vr(t,e);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(t,e,n){var r=t.getMonth();switch(e){case"L":return String(r+1);case"LL":return Xr(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(t,e,n,r){var i=Jr(t,r);return"wo"===e?n.ordinalNumber(i,{unit:"week"}):Xr(i,e.length)},I:function(t,e,n){var r=Gr(t);return"Io"===e?n.ordinalNumber(r,{unit:"week"}):Xr(r,e.length)},d:function(t,e,n){return"do"===e?n.ordinalNumber(t.getDate(),{unit:"date"}):Zr(t,e)},D:function(t,e,n){var r=Yr(t);return"Do"===e?n.ordinalNumber(r,{unit:"dayOfYear"}):Xr(r,e.length)},E:function(t,e,n){var r=t.getDay();switch(e){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(t,e,n,r){var i=t.getDay(),o=(i-r.weekStartsOn+8)%7||7;switch(e){case"e":return String(o);case"ee":return Xr(o,2);case"eo":return n.ordinalNumber(o,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(t,e,n,r){var i=t.getDay(),o=(i-r.weekStartsOn+8)%7||7;switch(e){case"c":return String(o);case"cc":return Xr(o,e.length);case"co":return n.ordinalNumber(o,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(t,e,n){var r=t.getDay(),i=0===r?7:r;switch(e){case"i":return String(i);case"ii":return Xr(i,e.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(t,e,n){var r=t.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},b:function(t,e,n){var r,i=t.getHours();switch(r=12===i?ai:0===i?oi:i/12>=1?"pm":"am",e){case"b":case"bb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},B:function(t,e,n){var r,i=t.getHours();switch(r=i>=17?ci:i>=12?si:i>=4?ui:li,e){case"B":case"BB":case"BBB":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},h:function(t,e,n){if("ho"===e){var r=t.getHours()%12;return 0===r&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return ti(t,e)},H:function(t,e,n){return"Ho"===e?n.ordinalNumber(t.getHours(),{unit:"hour"}):ei(t,e)},K:function(t,e,n){var r=t.getHours()%12;return"Ko"===e?n.ordinalNumber(r,{unit:"hour"}):Xr(r,e.length)},k:function(t,e,n){var r=t.getHours();return 0===r&&(r=24),"ko"===e?n.ordinalNumber(r,{unit:"hour"}):Xr(r,e.length)},m:function(t,e,n){return"mo"===e?n.ordinalNumber(t.getMinutes(),{unit:"minute"}):ni(t,e)},s:function(t,e,n){return"so"===e?n.ordinalNumber(t.getSeconds(),{unit:"second"}):ri(t,e)},S:function(t,e){return ii(t,e)},X:function(t,e,n){var r=t.getTimezoneOffset();if(0===r)return"Z";switch(e){case"X":return di(r);case"XXXX":case"XX":return vi(r);default:return vi(r,":")}},x:function(t,e,n){var r=t.getTimezoneOffset();switch(e){case"x":return di(r);case"xxxx":case"xx":return vi(r);default:return vi(r,":")}},O:function(t,e,n){var r=t.getTimezoneOffset();switch(e){case"O":case"OO":case"OOO":return"GMT"+fi(r,":");default:return"GMT"+vi(r,":")}},z:function(t,e,n){var r=t.getTimezoneOffset();switch(e){case"z":case"zz":case"zzz":return"GMT"+fi(r,":");default:return"GMT"+vi(r,":")}},t:function(t,e,n){return Xr(Math.trunc(+t/1e3),e.length)},T:function(t,e,n){return Xr(+t,e.length)}};function fi(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=t>0?"-":"+",r=Math.abs(t),i=Math.trunc(r/60),o=r%60;return 0===o?n+String(i):n+String(i)+e+Xr(o,2)}function di(t,e){return t%60==0?(t>0?"-":"+")+Xr(Math.abs(t)/60,2):vi(t,e)}function vi(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=t>0?"-":"+",r=Math.abs(t);return n+Xr(Math.trunc(r/60),2)+e+Xr(r%60,2)}var pi=function(t,e){switch(t){case"P":return e.date({width:"short"});case"PP":return e.date({width:"medium"});case"PPP":return e.date({width:"long"});default:return e.date({width:"full"})}},yi=function(t,e){switch(t){case"p":return e.time({width:"short"});case"pp":return e.time({width:"medium"});case"ppp":return e.time({width:"long"});default:return e.time({width:"full"})}},gi={p:yi,P:function(t,e){var n,r=t.match(/(P+)(p+)?/)||[],i=r[1],o=r[2];if(!o)return pi(t,e);switch(i){case"P":n=e.dateTime({width:"short"});break;case"PP":n=e.dateTime({width:"medium"});break;case"PPP":n=e.dateTime({width:"long"});break;default:n=e.dateTime({width:"full"})}return n.replace("{{date}}",pi(i,e)).replace("{{time}}",yi(o,e))}},mi=/^D+$/,wi=/^Y+$/,bi=["D","DD","YY","YYYY"];function ki(t){return mi.test(t)}function xi(t){return wi.test(t)}function Ai(t,e,n){var r=function(t,e,n){var r="Y"===t[0]?"years":"days of the month";return"Use `".concat(t.toLowerCase(),"` instead of `").concat(t,"` (in `").concat(e,"`) for formatting ").concat(r," to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md")}(t,e,n);if(console.warn(r),bi.includes(t))throw new RangeError(r)}var Ei=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Oi=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Si=/^'([^]*?)'?$/,Ti=/''/g,Ri=/[a-zA-Z]/;function ji(t,e,n){var r,i,o,a,u,s,c,l,h,f=Pr(),d=null!==(r=f.locale)&&void 0!==r?r:Wr,v=null!==(i=null!==(o=null!==(a=void 0)&&void 0!==a?a:f.firstWeekContainsDate)&&void 0!==o?o:null===(u=f.locale)||void 0===u||null===(u=u.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==i?i:1,p=null!==(s=null!==(c=null!==(l=void 0)&&void 0!==l?l:f.weekStartsOn)&&void 0!==c?c:null===(h=f.locale)||void 0===h||null===(h=h.options)||void 0===h?void 0:h.weekStartsOn)&&void 0!==s?s:0,y=Tr(t,void 0);if(!Mr(y))throw new RangeError("Invalid time value");var g=e.match(Oi).map((function(t){var e=t[0];return"p"===e||"P"===e?(0,gi[e])(t,d.formatLong):t})).join("").match(Ei).map((function(t){if("''"===t)return{isToken:!1,value:"'"};var e=t[0];if("'"===e)return{isToken:!1,value:Pi(t)};if(hi[e])return{isToken:!0,value:t};if(e.match(Ri))throw new RangeError("Format string contains an unescaped latin alphabet character `"+e+"`");return{isToken:!1,value:t}}));d.localize.preprocessor&&(g=d.localize.preprocessor(y,g));var m={firstWeekContainsDate:v,weekStartsOn:p,locale:d};return g.map((function(n){if(!n.isToken)return n.value;var r=n.value;return(xi(r)||ki(r))&&Ai(r,e,String(t)),(0,hi[r[0]])(y,r,d.localize,m)})).join("")}function Pi(t){var e=t.match(Si);return e?e[1].replace(Ti,"'"):t}var Di=function(){return a((function t(){i(this,t),s(this,"subPriority",0)}),[{key:"validate",value:function(t,e){return!0}}])}(),Li=function(){function t(e,n,o,a,u){var s;return i(this,t),(s=r(this,t)).value=e,s.validateValue=n,s.setValue=o,s.priority=a,u&&(s.subPriority=u),s}return l(t,Di),a(t,[{key:"validate",value:function(t,e){return this.validateValue(t,this.value,e)}},{key:"set",value:function(t,e,n){return this.setValue(t,e,this.value,n)}}])}(),Ci=function(){function t(e,n){var o;return i(this,t),s(o=r(this,t),"priority",10),s(o,"subPriority",-1),o.context=e||function(t){return Sr(n,t)},o}return l(t,Di),a(t,[{key:"set",value:function(t,e){return e.timestampIsSet?t:Sr(t,function(t,e){var n=function(t){var e;return"function"==typeof t&&(null===(e=t.prototype)||void 0===e?void 0:e.constructor)===t}(e)?new e(0):Sr(e,0);return n.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),n.setHours(t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()),n}(t,this.context))}}])}(),_i=function(){return a((function t(){i(this,t)}),[{key:"run",value:function(t,e,n,r){var i=this.parse(t,e,n,r);return i?{setter:new Li(i.value,this.validate,this.set,this.priority,this.subPriority),rest:i.rest}:null}},{key:"validate",value:function(t,e,n){return!0}}])}(),Ni=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a0,i=r?e:1-e;if(i<=50)n=t||100;else{var o=i+50;n=t+100*Math.trunc(o/100)-(t>=o%100?100:0)}return r?n:1-n}function po(t){return t%400==0||t%4==0&&t%100!=0}var yo=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a0}},{key:"set",value:function(t,e,n){var r=t.getFullYear();if(n.isTwoDigitYear){var i=vo(n.year,r);return t.setFullYear(i,0,1),t.setHours(0,0,0,0),t}var o="era"in e&&1!==e.era?1-n.year:n.year;return t.setFullYear(o,0,1),t.setHours(0,0,0,0),t}}])}(),go=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a0}},{key:"set",value:function(t,e,n,r){var i=Qr(t,r);if(n.isTwoDigitYear){var o=vo(n.year,i);return t.setFullYear(o,0,r.firstWeekContainsDate),t.setHours(0,0,0,0),Dr(t,r)}var a="era"in e&&1!==e.era?1-n.year:n.year;return t.setFullYear(a,0,r.firstWeekContainsDate),t.setHours(0,0,0,0),Dr(t,r)}}])}(),mo=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=1&&e<=4}},{key:"set",value:function(t,e,n){return t.setMonth(3*(n-1),1),t.setHours(0,0,0,0),t}}])}(),ko=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=1&&e<=4}},{key:"set",value:function(t,e,n){return t.setMonth(3*(n-1),1),t.setHours(0,0,0,0),t}}])}(),xo=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=0&&e<=11}},{key:"set",value:function(t,e,n){return t.setMonth(n,1),t.setHours(0,0,0,0),t}}])}(),Ao=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=0&&e<=11}},{key:"set",value:function(t,e,n){return t.setMonth(n,1),t.setHours(0,0,0,0),t}}])}();var Eo=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=1&&e<=53}},{key:"set",value:function(t,e,n,r){return Dr(function(t,e,n){var r=Tr(t,null==n?void 0:n.in),i=Jr(r,n)-e;return r.setDate(r.getDate()-7*i),Tr(r,null==n?void 0:n.in)}(t,n,r),r)}}])}();var Oo=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=1&&e<=53}},{key:"set",value:function(t,e,n){return Lr(function(t,e){var n=Tr(t,void 0),r=Gr(n)-e;return n.setDate(n.getDate()-7*r),n}(t,n))}}])}(),So=[31,28,31,30,31,30,31,31,30,31,30,31],To=[31,29,31,30,31,30,31,31,30,31,30,31],Ro=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=1&&e<=To[r]:e>=1&&e<=So[r]}},{key:"set",value:function(t,e,n){return t.setDate(n),t.setHours(0,0,0,0),t}}])}(),jo=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=1&&e<=366:e>=1&&e<=365}},{key:"set",value:function(t,e,n){return t.setMonth(0,n),t.setHours(0,0,0,0),t}}])}();function Po(t,e,n){var r,i,o,a,u,s,c=Pr(),l=null!==(r=null!==(i=null!==(o=null!==(a=null==n?void 0:n.weekStartsOn)&&void 0!==a?a:null==n||null===(u=n.locale)||void 0===u||null===(u=u.options)||void 0===u?void 0:u.weekStartsOn)&&void 0!==o?o:c.weekStartsOn)&&void 0!==i?i:null===(s=c.locale)||void 0===s||null===(s=s.options)||void 0===s?void 0:s.weekStartsOn)&&void 0!==r?r:0,h=Tr(t,null==n?void 0:n.in),f=h.getDay(),d=7-l;return Rr(h,e<0||e>6?e-(f+d)%7:((e%7+7)%7+d)%7-(f+d)%7,n)}var Do=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=0&&e<=6}},{key:"set",value:function(t,e,n,r){return(t=Po(t,n,r)).setHours(0,0,0,0),t}}])}(),Lo=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=0&&e<=6}},{key:"set",value:function(t,e,n,r){return(t=Po(t,n,r)).setHours(0,0,0,0),t}}])}(),Co=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=0&&e<=6}},{key:"set",value:function(t,e,n,r){return(t=Po(t,n,r)).setHours(0,0,0,0),t}}])}();function _o(t,e,n){var r=Tr(t,void 0),i=function(t){var e=Tr(t,void 0).getDay();return 0===e?7:e}(r);return Rr(r,e-i,n)}var No=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=1&&e<=7}},{key:"set",value:function(t,e,n){return(t=_o(t,n)).setHours(0,0,0,0),t}}])}(),Fo=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=1&&e<=12}},{key:"set",value:function(t,e,n){var r=t.getHours()>=12;return r&&n<12?t.setHours(n+12,0,0,0):r||12!==n?t.setHours(n,0,0,0):t.setHours(0,0,0,0),t}}])}(),Ho=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=0&&e<=23}},{key:"set",value:function(t,e,n){return t.setHours(n,0,0,0),t}}])}(),zo=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=0&&e<=11}},{key:"set",value:function(t,e,n){return t.getHours()>=12&&n<12?t.setHours(n+12,0,0,0):t.setHours(n,0,0,0),t}}])}(),Bo=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=1&&e<=24}},{key:"set",value:function(t,e,n){var r=n<=24?n%24:n;return t.setHours(r,0,0,0),t}}])}(),$o=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=0&&e<=59}},{key:"set",value:function(t,e,n){return t.setMinutes(n,0,0),t}}])}(),Uo=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a=0&&e<=59}},{key:"set",value:function(t,e,n){return t.setSeconds(n,0),t}}])}(),Wo=function(){function t(){var e;i(this,t);for(var n=arguments.length,o=new Array(n),a=0;a0)throw new RangeError("The format string mustn't contain `".concat(n,"` and any other token at the same time"));A.push({token:i,fullToken:n});var s=o.run(t,n,y.match,b);if(!s)return{v:v()};k.push(s.setter),t=s.rest}else{if(i.match(na))throw new RangeError("Format string contains an unescaped latin alphabet character `"+i+"`");if("''"===n?n="'":"'"===i&&(n=n.match(Zo)[1].replace(ta,"'")),0!==t.indexOf(n))return{v:v()};t=t.slice(n.length)}};for(E.s();!(w=E.n()).done;)if(O=S())return O.v}catch(t){E.e(t)}finally{E.f()}if(t.length>0&&ea.test(t))return v();var T=k.map((function(t){return t.priority})).sort((function(t,e){return e-t})).filter((function(t,e,n){return n.indexOf(t)===e})).map((function(t){return k.filter((function(e){return e.priority===t})).sort((function(t,e){return e.subPriority-t.subPriority}))})).map((function(t){return t[0]})),R=Tr(n,void 0);if(isNaN(+R))return v();var j,P={},D=u(T);try{for(D.s();!(j=D.n()).done;){var L=j.value;if(!L.validate(R,b))return v();var C=L.set(R,P,b);Array.isArray(C)?(R=C[0],Object.assign(P,C[1])):R=C}}catch(t){D.e(t)}finally{D.f()}return R}var ia=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,t),r(this,t,[e,n,"store-hour",o])}return l(t,kr),a(t,[{key:"day",get:function(){return this.getAttribute("day")}},{key:"isClosed",get:function(){return null===this.getAttribute("start")&&null===this.getAttribute("end")}},{key:"is24Hours",get:function(){var t=this.startDateInstance,e=this.endDateInstance,n=Math.abs(t-e);return Math.floor(n/1e3/60)/60>23}},{key:"startDateInstance",get:function(){if(!this.hasAttribute("start"))return null;var t=this.getAttribute("start"),e=3===t.split(":").length;return ra(t,e?"HH:mm:ss":"HH:mm",new Date)}},{key:"endDateInstance",get:function(){if(!this.hasAttribute("end"))return null;var t=this.getAttribute("end"),e=3===t.split(":").length;return ra(t,e?"HH:mm:ss":"HH:mm",new Date)}},{key:"humanReadableHoursRange",get:function(){return Mr(this.startDateInstance)&&Mr(this.endDateInstance)?"".concat(ji(this.startDateInstance,"p")," - ").concat(ji(this.endDateInstance,"p")):"".concat(this.start," - ").concat(this.end)}},{key:"humanReadableHours",get:function(){return this.isClosed?"Closed":this.is24Hours?"24 Hours":this.humanReadableHoursRange}},{key:"create",value:function(){throw new Error("There is no create() method store location!")}},{key:"update",value:function(){throw new Error("There is no update() method store location!")}},{key:"destroy",value:function(){throw new Error("There is no destroy() method store location!")}},{key:"reload",value:function(){throw new Error("There is no reload() method store location!")}}])}();ot("resource","StoreHour",ia);var oa=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,t),r(this,t,[e,n,"store-location",o])}return l(t,kr),a(t,[{key:"latitude",get:function(){return this.getAttribute("place.location.coordinates.1")}},{key:"longitude",get:function(){return this.getAttribute("place.location.coordinates.0")}},{key:"hours",get:function(){var t=this;return new bt((this.getAttribute("hours")||[]).map((function(e){return new ia(e,t.adapter)})))}},{key:"storeData",get:function(){var t=this.getAttribute("store_data"),e=this.getAttribute("store");return t||(e&&"object"===m(e)?e:null)}},{key:"storeId",get:function(){var t,e,n=this.getAttribute("store");return"string"==typeof n?n:(null===(t=this.storeData)||void 0===t?void 0:t.id)||(null===(e=this.storeData)||void 0===e?void 0:e.public_id)}},{key:"merchant",get:function(){return this.storeData?ut("resource","Store",this.storeData,this.adapter):null}},{key:"isAlwaysOpen",get:function(){return this.hours.every((function(t){return null==t?void 0:t.is24Hours}))}},{key:"today",get:function(){var t=ji(new Date,"EEEE");return this.schedule[t]}},{key:"schedule",get:function(){for(var t={},e=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],n=0;n0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,t),r(this,t,[e,n,"payment-gateway",o])}return l(t,kr),a(t,[{key:"type",get:function(){return this.getAttribute("type")}},{key:"code",get:function(){return this.getAttribute("code")}},{key:"isCashGateway",get:function(){return"cash"===this.type}},{key:"isStripeGateway",get:function(){return"stripe"===this.type}},{key:"setCheckoutToken",value:function(t){this.token=t}},{key:"getCheckoutToken",value:function(){return this.token}},{key:"findRecord",value:function(){throw new Error("There is no findRecord() method for payment gateways!")}},{key:"create",value:function(){throw new Error("There is no create() method for payment gateways!")}},{key:"update",value:function(){throw new Error("There is no update() method for payment gateways!")}},{key:"destroy",value:function(){throw new Error("There is no destroy() method for payment gateways!")}},{key:"reload",value:function(){throw new Error("There is no reload() method for payment gateways!")}}])}();ot("resource","PaymentGateway",aa);var ua=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,t),r(this,t,[e,n,"store",o])}return l(t,kr),a(t,[{key:"getReviews",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("reviews",d({store:this.id},e)).then((function(e){return new bt(e.map((function(e){return new Ar(e,t.adapter)})))}))}},{key:"getLocations",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("locations",d({store:this.id},e)).then((function(e){return new bt(e.map((function(e){return e.place&&(e.place=new Mt(e.place)),new oa(e,t.adapter)})))}))}},{key:"getLocation",value:function(t){var e=this;return this.adapter.get("locations/".concat(t),{store:this.id}).then((function(t){return new oa(t,e.adapter)}))}},{key:"getPaymentGateways",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("gateways",e).then((function(e){return new bt(e.map((function(e){return new aa(e,t.adapter)})))}))}},{key:"getPaymentGateway",value:function(t){var e=this;return this.adapter.get("gateways/".concat(t)).then((function(t){return new aa(t,e.adapter)}))}}])}();ot("resource","Store",ua);var sa=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,t),r(this,t,[e,n,"product",o])}return l(t,kr),a(t,[{key:"variants",value:function(){return this.getAttribute("variants")}},{key:"addons",value:function(){return this.getAttribute("addon_categories")}},{key:"isOnSale",get:function(){return this.getAttribute("is_on_sale")}},{key:"isNotOnSale",get:function(){return!this.getAttribute("is_on_sale")}},{key:"formattedAmount",get:function(){var t=this.getAttributes(["price","sale_price","currency"]),e=t.price,n=t.sale_price,r=t.currency;return this.isOnSale?wr(n)||wr(r)?null:mr(n/100,r):wr(e)||wr(r)?null:mr(e/100,r)}},{key:"merchant",get:function(){var t=this.getAttribute("store");return t&&"object"===m(t)?new ua(t,this.adapter):null}},{key:"getReviews",value:function(){var t=this;return this.adapter.get("reviews",{store:this.id}).then((function(e){return new bt(e.map((function(e){return new Ar(e,t.adapter)})))}))}}])}();ot("resource","Product",sa);var ca=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,t),r(this,t,[e,n,"category",o])}return l(t,kr),a(t,[{key:"getProducts",value:function(){var t=this;return this.adapter.get("products",{category:this.id}).then((function(e){return new bt(e.map((function(e){return new sa(e,t.adapter)})))}))}}])}();ot("resource","Category",ca);var la=new jt({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(function(){return/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"")}(t))return this.adapter.post("customers/login-with-sms",{phone:t});if(!e)throw new Error("Login requires password!");return this.adapter.post("customers/login",d({identity:t,password:e},n)).then(this.afterFetch.bind(this))},loginWithApple:function(t,e,n,r,i){var o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return this.adapter.post("customers/login-with-apple",d({appleUserId:t,identityToken:e,authorizationCode:n,email:r,name:i},o)).then(this.afterFetch.bind(this))},loginWithFacebook:function(t,e,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return this.adapter.post("customers/login-with-facebook",d({facebookUserId:t,email:e,name:n,avatarUrl:r},i)).then(this.afterFetch.bind(this))},loginWithGoogle:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("customers/login-with-google",d({idToken:t,clientId:e},n)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("customers/verify-code",d({identity:t,code:e},n)).then(this.afterFetch.bind(this))},requestCreationCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"email";return this.adapter.post("customers/request-creation-code",{identity:t,mode:e})},create:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("customers",d({identity:t,code:e},n)).then(this.afterFetch.bind(this))},retrieve:function(t){return this.findRecord(t)}}),ha=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,t),r(this,t,[e,n,"customer",d({actions:la},o)])}return l(t,kr),a(t,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new gr(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"token",get:function(){return this.getAttribute("token")}},{key:"syncDevice",value:(s=n(v().mark((function t(e,n){var r,i;return v().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,r={"Customer-Token":this.token},t.next=4,this.adapter.setHeaders(r).post("customers/register-device",{token:e,platform:n});case 4:return i=t.sent,t.abrupt("return",i);case 8:throw t.prev=8,t.t0=t.catch(0),console.error("Error making request to register customer device token:",t.t0),t.t0;case 12:case"end":return t.stop()}}),t,this,[[0,8]])}))),function(t,e){return s.apply(this,arguments)})},{key:"performAuthorizedRequest",value:(u=n(v().mark((function t(e){var n,r,i,o,a=arguments;return v().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=a.length>1&&void 0!==a[1]?a[1]:{},r=a.length>2&&void 0!==a[2]?a[2]:"GET",t.prev=2,i={"Customer-Token":this.token},t.next=6,this.adapter.setHeaders(i)[r.toLowerCase()](e,n);case 6:return o=t.sent,t.abrupt("return",o);case 10:throw t.prev=10,t.t0=t.catch(2),console.error("Error in ".concat(r," request to ").concat(e,":"),t.t0),t.t0;case 14:case"end":return t.stop()}}),t,this,[[2,10]])}))),function(t){return u.apply(this,arguments)})},{key:"getSavedPlaces",value:(o=n(v().mark((function t(){var e,n=this;return v().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,this.performAuthorizedRequest("customers/places");case 3:return e=t.sent,t.abrupt("return",new bt(e.map((function(t){return new Mt(t,n.adapter)}))));case 7:throw t.prev=7,t.t0=t.catch(0),console.error("Failed to retrieve saved places"),t.t0;case 11:case"end":return t.stop()}}),t,this,[[0,7]])}))),function(){return o.apply(this,arguments)})},{key:"getOrderHistory",value:(e=n(v().mark((function t(){var e,n,r=this,i=arguments;return v().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},t.prev=1,t.next=4,this.performAuthorizedRequest("customers/orders",e);case 4:return n=t.sent,t.abrupt("return",new bt(n.map((function(t){return new _t(t,r.adapter)}))));case 8:throw t.prev=8,t.t0=t.catch(1),console.error("Failed to retrieve order history"),t.t0;case 12:case"end":return t.stop()}}),t,this,[[1,8]])}))),function(){return e.apply(this,arguments)})},{key:"getStripeEphemeralKey",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.setHeaders({"Customer-Token":this.token}).post("customers/stripe-ephemeral-key",t)}},{key:"getStripeSetupIntent",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.setHeaders({"Customer-Token":this.token}).post("customers/stripe-setup-intent",t)}}]);var e,o,u,s}();ot("resource","Customer",ha);var fa=Array.isArray,da=new jt({create:void 0,findAll:void 0,query:void 0,queryRecord:void 0,add:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/").concat(e),d(d({},r),{},{quantity:n}),i).then(this.afterFetch.bind(this))},update:function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return this.adapter.put("".concat(this.namespace,"/").concat(t,"/").concat(e),d(d({},r),{},{quantity:n}),i).then(this.afterFetch.bind(this))},remove:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete("".concat(this.namespace,"/").concat(t,"/").concat(e),{},n).then(this.afterFetch.bind(this))},empty:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.put("".concat(this.namespace,"/").concat(t,"/empty"),{},e).then(this.afterFetch.bind(this))},retrieve:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return this.findRecord(t)}}),va=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,t),r(this,t,[e,n,"cart",d({actions:da},o)])}return l(t,kr),a(t,[{key:"add",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return t instanceof sa&&(t=t.id),this.store.add(this.id,t,e,n,r)}},{key:"update",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.store.update(this.id,t,e,n,r)}},{key:"remove",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.remove(this.id,t,e)}},{key:"empty",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.store.empty(this.id,t)}},{key:"delete",value:function(){return this.destroy()}},{key:"refresh",value:function(){return this.store.retrieve(this.id)}},{key:"subtotal",value:function(){var t=0;return this.contents().forEach((function(e){t+=e.subtotal})),t}},{key:"contents",value:function(){return this.getAttribute("items",[])}},{key:"hasProduct",value:function(t){return-1!==this.contents().findIndex((function(e){return e.product_id===t}))}},{key:"isEmpty",get:function(){var t=this.contents();return!fa(t)||0===t.length}},{key:"isNotEmpty",get:function(){return!this.isEmpty}}])}();ot("resource","Cart",va);var pa=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,t),r(this,t,[e,n,"network",o])}return l(t,kr),a(t,[{key:"getTags",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("tags",t)}},{key:"getResourceCollection",value:(p=n(v().mark((function t(e,n){var r,i,o=this,a=arguments;return v().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=a.length>2&&void 0!==a[2]?a[2]:{},t.next=3,this.adapter.get(e,r);case 3:return i=t.sent,t.abrupt("return",new bt(i.map((function(t){return new n(t,o.adapter)}))));case 5:case"end":return t.stop()}}),t,this)}))),function(t,e){return p.apply(this,arguments)})},{key:"getStores",value:(f=n(v().mark((function t(){var e,n=arguments;return v().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=n.length>0&&void 0!==n[0]?n[0]:{},t.abrupt("return",this.getResourceCollection("stores",ua,e));case 2:case"end":return t.stop()}}),t,this)}))),function(){return f.apply(this,arguments)})},{key:"getStoreLocations",value:(h=n(v().mark((function t(){var e,n=arguments;return v().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=n.length>0&&void 0!==n[0]?n[0]:{},t.abrupt("return",this.getResourceCollection("store-locations",oa,e));case 2:case"end":return t.stop()}}),t,this)}))),function(){return h.apply(this,arguments)})},{key:"getCategories",value:(c=n(v().mark((function t(){var e,n=arguments;return v().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=n.length>0&&void 0!==n[0]?n[0]:{},t.abrupt("return",this.getResourceCollection("categories",ca,e));case 2:case"end":return t.stop()}}),t,this)}))),function(){return c.apply(this,arguments)})},{key:"search",value:(s=n(v().mark((function t(e){var n,r=arguments;return v().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=r.length>1&&void 0!==r[1]?r[1]:{},t.abrupt("return",this.getResourceCollection("search",sa,d({query:e,with_store:!0},n)));case 2:case"end":return t.stop()}}),t,this)}))),function(t){return s.apply(this,arguments)})},{key:"lookupStore",value:(u=n(v().mark((function t(e){var n;return v().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.adapter.get("lookup/".concat(e));case 2:return n=t.sent,t.abrupt("return",new ua(n,this.adapter));case 4:case"end":return t.stop()}}),t,this)}))),function(t){return u.apply(this,arguments)})},{key:"getReviews",value:(o=n(v().mark((function t(e){var n,r=arguments;return v().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=r.length>1&&void 0!==r[1]?r[1]:{},t.abrupt("return",this.getResourceCollection("reviews",Ar,d({store:e},n)));case 2:case"end":return t.stop()}}),t,this)}))),function(t){return o.apply(this,arguments)})},{key:"getPaymentGateways",value:(e=n(v().mark((function t(){var e,n=arguments;return v().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=n.length>0&&void 0!==n[0]?n[0]:{},t.abrupt("return",this.getResourceCollection("gateways",aa,e));case 2:case"end":return t.stop()}}),t,this)}))),function(){return e.apply(this,arguments)})}]);var e,o,u,s,c,h,f,p}();ot("resource","Network",pa);var ya=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};i(this,t);var a=e,u=n;return e instanceof Zt&&(a={},u=e),r(this,t,[a,u,"service-quote",o])}return l(t,Kt),a(t,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new gr(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"formattedAmount",get:function(){var t=this.getAttributes(["amount","currency"]),e=t.amount,n=t.currency;return wr(e)||wr(n)?null:mr(e/100,n)}},{key:"fromCart",value:(u=n(v().mark((function t(){var e=arguments;return v().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this.fetchServiceQuotesFromCart.apply(this,e));case 1:case"end":return t.stop()}}),t,this)}))),function(){return u.apply(this,arguments)})},{key:"fetchServiceQuotesFromCart",value:(o=n(v().mark((function e(n,r,i){var o,a,u,s,c,l,h=this,f=arguments;return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=f.length>3&&void 0!==f[3]?f[3]:"storefront",c=f.length>4&&void 0!==f[4]&&f[4],null!==(o=n)&&void 0!==o&&o.id&&(n=n.id),null!==(a=r)&&void 0!==a&&a.id&&(r=r.id),null!==(u=i)&&void 0!==u&&u.id&&(i=i.id),e.prev=5,e.next=8,this.adapter.get("service-quotes/from-cart",{origin:n,destination:r,cart:i,config:s,all:c});case 8:if(l=e.sent,!br(l)){e.next=11;break}return e.abrupt("return",new bt(l.map((function(e){return new t(e,h.adapter)}))));case 11:return e.abrupt("return",new t(l,this.adapter));case 14:throw e.prev=14,e.t0=e.catch(5),console.error("Error fetching service quotes:",e.t0),e.t0;case 18:case"end":return e.stop()}}),e,this,[[5,14]])}))),function(t,e,n){return o.apply(this,arguments)})}],[{key:"getFromCart",value:(e=n(v().mark((function e(n,r,i,o){var a,u,s,c=arguments;return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=c.length>4&&void 0!==c[4]?c[4]:"storefront",u=c.length>5&&void 0!==c[5]&&c[5],s=new t(n),e.abrupt("return",s.fetchServiceQuotesFromCart(r,i,o,a,u));case 4:case"end":return e.stop()}}),e)}))),function(t,n,r,i){return e.apply(this,arguments)})}]);var e,o,u}();ot("resource","DeliveryServiceQuote",ya);var ga=new jt({create:void 0,findAll:void 0,query:void 0,queryRecord:void 0,initialize:function(t,e,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return Pt(t)&&(t=t.id),Pt(e)&&(e=e.id),Pt(n)&&(n=n.id),Pt(r)&&(r=r.getAttribute("code")),this.adapter.get("".concat(this.namespace,"/before"),d(d({},i),{},{customer:t,cart:e,serviceQuote:n,gateway:r}),o)},captureOrder:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/capture"),d({token:t},e),n).then((function(t){return new _t(t)}))},createStripeSetupIntent:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return Pt(t)&&(t=t.id),this.adapter.post("".concat(this.namespace,"/stripe-setup-intent"),d({customer:t},e),n)},updateStripePaymentIntent:function(t,e,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return Pt(e)&&(e=e.id),Pt(n)&&(n=n.id),Pt(r)&&(r=r.id),this.adapter.put("".concat(this.namespace,"/stripe-update-payment-intent"),d({paymentIntent:t,customer:e,cart:n,serviceQuote:r},i),o)}}),ma=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,t),r(this,t,[e,n,"checkout",d({actions:ga},o)])}return l(t,kr),a(t,[{key:"initialize",value:function(){var t;return(t=this.store).initialize.apply(t,arguments)}},{key:"captureOrder",value:function(){var t;return(t=this.store).captureOrder.apply(t,arguments)}}])}();ot("resource","Checkout",ma);var wa=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i(this,t),r(this,t,[e,n,"food-truck",o])}return l(t,kr),a(t)}();ot("resource","FoodTruck",wa);var ba=function(){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(i(this,t),this.version=r.version||"v1",this.options={version:this.version,host:r.host||"https://api.fleetbase.io",namespace:r.namespace||"storefront/".concat(this.version),publicKey:e,debug:o},!("string"==typeof(n=e)&&n.length>30&&(n.startsWith("store_")||n.startsWith("network_"))))throw new Error("⚠️ Invalid Storefront key given to Storefront SDK");this.adapter=r.adapter||At(this.options),this.initializeStores()}return a(t,[{key:"initializeStores",value:function(){return this.products=new gr("product",this.adapter),this.categories=new gr("category",this.adapter),this.foodTrucks=new gr("food-truck",this.adapter),this.reviews=new gr("review",this.adapter).extendActions(xr),this.customers=new gr("customer",this.adapter).extendActions(la),this.cart=new gr("cart",this.adapter).extendActions(da),this.checkout=new gr("checkout",this.adapter).extendActions(ga),this}},{key:"about",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.adapter.get("about").then((function(n){return e.resource?t.hydrateOwner(n):n}))}},{key:"getOwner",value:function(){return this.about({resource:!0})}},{key:"lookup",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.get("lookup/".concat(t)).then((function(t){return n.resource?e.hydrateOwner(t):t}))}},{key:"lookupResource",value:function(t){return this.lookup(t,{resource:!0})}},{key:"search",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.get("search",d({query:t},n)).then((function(t){return new bt(t.map((function(t){return new sa(t,e.adapter)})))}))}},{key:"hydrateOwner",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return!0===(null==t?void 0:t.is_network)?new pa(t,this.adapter):new ua(t,this.adapter)}},{key:"setAdapter",value:function(t){return this.adapter=t,this.initializeStores()}},{key:"getAdapter",value:function(){return this.adapter}}],[{key:"newInstance",value:function(){return function(t,e,n){if(h())return Reflect.construct.apply(null,arguments);var r=[null];return r.push.apply(r,e),new(t.bind.apply(t,r))}(t,Array.prototype.slice.call(arguments))}}])}();export{va as Cart,ca as Category,ma as Checkout,ha as Customer,ya as DeliveryServiceQuote,wa as FoodTruck,pa as Network,aa as PaymentGateway,sa as Product,Ar as Review,ua as Store,ia as StoreHour,oa as StoreLocation,ba as default,ut as lookup}; +import 'countries-list'; +import { isValid, parse, format } from 'date-fns'; + +function t(t,e){this.v=t,this.k=e;}function e(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:true}:{done:false,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=true,s=false;return {s:function(){n=n.call(t);},n:function(){var t=n.next();return a=t.done,t},e:function(t){s=true,o=t;},f:function(){try{a||null==n.return||n.return();}finally{if(s)throw o}}}}function g(t,e,n){return (e=j(e))in t?Object.defineProperty(t,e,{value:n,enumerable:true,configurable:true,writable:true}):t[e]=n,t}function y(t){return y=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},y(t)}function b(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:true,configurable:true}}),Object.defineProperty(t,"prototype",{writable:false}),e&&O(t,e);}function m(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));}catch(t){}return (m=function(){return !!t})()}function w(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}function k(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function E(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r);}return n}function A(t){for(var e=1;e=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var u=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(u&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),_(n),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;_(n);}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:L(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),g}},e}function O(t,e){return O=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},O(t,e)}function R(t,e){return n(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,o,a,s=[],u=true,c=false;try{if(o=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;u=!1;}else for(;!(u=(r=o.call(n)).done)&&(s.push(r.value),s.length!==e);u=!0);}catch(t){c=true,i=t;}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw i}}return s}}(t,e)||_(t,e)||k()}function S(t){return function(t){if(Array.isArray(t))return e(t)}(t)||w(t)||_(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function j(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return ("string"===e?String:Number)(t)}(t,"string");return "symbol"==typeof e?e:e+""}function T(t){return T="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},T(t)}function _(t,n){if(t){if("string"==typeof t)return e(t,n);var r={}.toString.call(t).slice(8,-1);return "Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?e(t,n):void 0}}function P(t){return function(){return new L(t.apply(this,arguments))}}function L(e){var n,r;function i(n,r){try{var a=e[n](r),s=a.value,u=s instanceof t;Promise.resolve(u?s.v:s).then((function(t){if(u){var r="return"===n?"return":"next";if(!s.k||t.done)return i(r,t);t=e[r](t).value;}o(a.done?"return":"normal",t);}),(function(t){i("throw",t);}));}catch(t){o("throw",t);}}function o(t,e){switch(t){case "return":n.resolve({value:e,done:true});break;case "throw":n.reject(e);break;default:n.resolve({value:e,done:false});}(n=n.next)?i(n.key,n.arg):r=null;}this._invoke=function(t,e){return new Promise((function(o,a){var s={key:t,arg:e,resolve:o,reject:a,next:null};r?r=r.next=s:(n=r=s,i(t,e));}))},"function"!=typeof e.return&&(this.return=void 0);}function C(t){var e="function"==typeof Map?new Map:void 0;return C=function(t){if(null===t||!function(t){try{return -1!==Function.toString.call(t).indexOf("[native code]")}catch(e){return "function"==typeof t}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n);}function n(){return f(t,arguments,y(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:false,writable:true,configurable:true}}),O(n,t)},C(t)}L.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},L.prototype.next=function(t){return this._invoke("next",t)},L.prototype.throw=function(t){return this._invoke("throw",t)},L.prototype.return=function(t){return this._invoke("return",t)};var N=function(){function t(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];h(this,t),g(this,"uncountableWords",["equipment","information","rice","money","species","series","fish","sheep","moose","deer","news"]),g(this,"pluralRules",[[new RegExp("(m)an$","gi"),"$1en"],[new RegExp("(pe)rson$","gi"),"$1ople"],[new RegExp("(child)$","gi"),"$1ren"],[new RegExp("^(ox)$","gi"),"$1en"],[new RegExp("(ax|test)is$","gi"),"$1es"],[new RegExp("(octop|vir)us$","gi"),"$1i"],[new RegExp("(alias|status)$","gi"),"$1es"],[new RegExp("(bu)s$","gi"),"$1ses"],[new RegExp("(buffal|tomat|potat)o$","gi"),"$1oes"],[new RegExp("([ti])um$","gi"),"$1a"],[new RegExp("sis$","gi"),"ses"],[new RegExp("(?:([^f])fe|([lr])f)$","gi"),"$1$2ves"],[new RegExp("(hive)$","gi"),"$1s"],[new RegExp("([^aeiouy]|qu)y$","gi"),"$1ies"],[new RegExp("(x|ch|ss|sh)$","gi"),"$1es"],[new RegExp("(matr|vert|ind)ix|ex$","gi"),"$1ices"],[new RegExp("([m|l])ouse$","gi"),"$1ice"],[new RegExp("(quiz)$","gi"),"$1zes"],[new RegExp("s$","gi"),"s"],[new RegExp("$","gi"),"s"]]),g(this,"singularRules",[[new RegExp("(m)en$","gi"),"$1an"],[new RegExp("(pe)ople$","gi"),"$1rson"],[new RegExp("(child)ren$","gi"),"$1"],[new RegExp("([ti])a$","gi"),"$1um"],[new RegExp("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$","gi"),"$1$2sis"],[new RegExp("(hive)s$","gi"),"$1"],[new RegExp("(tive)s$","gi"),"$1"],[new RegExp("(curve)s$","gi"),"$1"],[new RegExp("([lr])ves$","gi"),"$1f"],[new RegExp("([^fo])ves$","gi"),"$1fe"],[new RegExp("([^aeiouy]|qu)ies$","gi"),"$1y"],[new RegExp("(s)eries$","gi"),"$1eries"],[new RegExp("(m)ovies$","gi"),"$1ovie"],[new RegExp("(x|ch|ss|sh)es$","gi"),"$1"],[new RegExp("([m|l])ice$","gi"),"$1ouse"],[new RegExp("(bus)es$","gi"),"$1"],[new RegExp("(o)es$","gi"),"$1"],[new RegExp("(shoe)s$","gi"),"$1"],[new RegExp("(cris|ax|test)es$","gi"),"$1is"],[new RegExp("(octop|vir)i$","gi"),"$1us"],[new RegExp("(alias|status)es$","gi"),"$1"],[new RegExp("^(ox)en","gi"),"$1"],[new RegExp("(vert|ind)ices$","gi"),"$1ex"],[new RegExp("(matr)ices$","gi"),"$1ix"],[new RegExp("(quiz)zes$","gi"),"$1"],[new RegExp("s$","gi"),""]]),g(this,"nonTitlecasedWords",["and","or","nor","a","an","the","so","but","to","of","at","by","from","into","on","onto","off","out","in","over","with","for"]),g(this,"idSuffix",new RegExp("(_ids|_id)$","g")),g(this,"underbar",new RegExp("_","g")),g(this,"spaceOrUnderbar",new RegExp("[ _]","g")),g(this,"uppercase",new RegExp("([A-Z])","g")),g(this,"underbarPrefix",new RegExp("^_")),this.str=e,this.chain=n;}return v(t,[{key:"get",value:function(){return this.str}},{key:"applyRules",value:function(t,e,n,r){if(r)t=r;else if(!(n.indexOf(t.toLowerCase())>-1))for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:null;return t=t||this.str,this.applyRules(t,this.pluralRules,this.uncountableWords,e)}},{key:"singularize",value:function(t,e){return t=t||this.str,this.applyRules(t,this.singularRules,this.uncountableWords,e)}},{key:"camelize",value:function(t,e){for(var n=(t=t||this.str).split("/"),r=0;r1&&void 0!==arguments[1]&&arguments[1];return t=t||this.str,t=this.underscore(this.demodulize(t))+(e?"":"_")+"id",this.str=t,true===this.chain?this:t}},{key:"ordinalize",value:function(t){for(var e=(t=t||this.str).split(" "),n=0;n2?i-2:0),a=2;a2?n-2:0),i=2;i2?n-2:0),i=2;i1?e-1:0),r=1;r3&&void 0!==arguments[3]?arguments[3]:[];if(V(t))if(r.length<=X)t.splice.apply(t,[e,n].concat(S(r)));else {t.splice(e,n);for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:0,r=t.length,i=n;i2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3?arguments[3]:void 0,i=t.length;return n<0&&(n+=i),nt(t,r&&e!=e?function(t){return t!=t}:function(t){return t===e},n)}function it(t,e,n){return Q(t,e,0,[n]),n}function ot(){return f(at,Array.prototype.slice.call(arguments))}var at=function(){function t(){return h(this,t),r(V(arguments[0])?l(this,t,S(arguments[0])):l(this,t,arguments))}return b(t,C(Array)),v(t,[{key:"notEmpty",get:function(){return this.length>0}},{key:"empty",get:function(){return 0===this.length}},{key:"first",get:function(){return tt(this,0)}},{key:"last",get:function(){return tt(this,this.length-1)}},{key:"replace",value:function(t,e){return Q(this,t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:[]),this}},{key:"objectsAt",value:function(t){var e=this;return t.map((function(t){return tt(e,t)}))}},{key:"objectAt",value:function(t){return tt(this,t)}},{key:"indexOf",value:function(t,e){return rt(this,t,e,false)}},{key:"lastIndexOf",value:function(t,e){var n=this.length;(void 0===e||e>=n)&&(e=n-1),e<0&&(e+=n);for(var r=e;r>=0;r--)if(tt(this,r)===t)return r;return -1}},{key:"includes",value:function(t,e){return -1!==rt(this,t,e,true)}},{key:"findBy",value:function(){return t=this,e=et.apply(void 0,arguments),-1===(r=nt(t,e.bind(n),0))?void 0:tt(t,r);var t,e,n,r;}},{key:"findIndexBy",value:function(){return nt(this,et.apply(void 0,arguments))}},{key:"isEvery",value:function(){return t=this,e=et.apply(void 0,arguments),r=e.bind(n),-1===nt(t,(function(t,e,n){return !r(t,e,n)}),0);var t,e,n,r;}},{key:"isAny",value:function(){return t=this,e=et.apply(void 0,arguments),-1!==nt(t,e.bind(n),0);var t,e,n;}},{key:"invoke",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:Y,n=[],r=new Set,i="function"==typeof e?e:function(t){return get(t,e)};return t.forEach((function(t){var e=i(t);r.has(e)||(r.add(e),n.push(t));})),n}(this,t)}},{key:"without",value:function(t){if(!this.includes(t))return this;var e=t==t?function(e){return e!==t}:function(t){return t==t};return this.filter(e)}},{key:"clear",value:function(){var t=this.length;return 0===t||this.replace(0,t,[]),this}},{key:"insertAt",value:function(t,e){return it(this,t,e),this}},{key:"replaceAt",value:function(t,e){return this.replace(t,1,[e])}},{key:"removeAt",value:function(t,e){return function(t,e){return Q(t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,[]),t}(this,t,e)}},{key:"pushObject",value:function(t){return this.insertAt(this.length,t)}},{key:"pushObjects",value:function(t){return this.replace(this.length,0,t),this}},{key:"popObject",value:function(){var t=this.length;if(0===t)return null;var e=tt(this,t-1);return this.removeAt(t-1,1),e}},{key:"shiftObject",value:function(){if(0===this.length)return null;var t=tt(this,0);return this.removeAt(0),t}},{key:"unshiftObject",value:function(t){return it(this,0,t)}},{key:"unshiftObjects",value:function(t){return this.replace(0,0,t),this}},{key:"reverseObjects",value:function(){var t=this.length;if(0===t)return this;var e=this.toArray().reverse();return this.replace(0,t,e),this}},{key:"setObjects",value:function(t){if(0===t.length)return this.clear();var e=this.length;return this.replace(0,e,t),this}},{key:"removeObject",value:function(t){for(var e=this.length||0;--e>=0;){tt(this,e)===t&&this.removeAt(e);}return this}},{key:"removeObjects",value:function(t){for(var e=t.length-1;e>=0;e--)this.removeObject(t[e]);return this}},{key:"addObject",value:function(t){return this.includes(t)||this.pushObject(t),this}},{key:"addObjects",value:function(t){var e=this;return t.forEach((function(t){return e.addObject(t)})),this}}])}();function st(t){var e=null==t;if(e)return e;if("number"==typeof t.size)return !t.size;var n=T(t);if("object"===n){var r=t.size;if("number"==typeof r)return !r}if("number"==typeof t.length&&"function"!==n)return !t.length;if("object"===n){var i=t.length;if("number"==typeof i)return !i}return false}function lt(){var t,e,n;return !("undefined"==typeof process||"object"!==T(null===(t=process)||void 0===t?void 0:t.env)&&-1===(null===(e=process.release)||void 0===e||null===(e=e.name)||void 0===e?void 0:e.search(/node|io.js/))||"undefined"!=typeof window&&"ReactNative"!==(null===(n=window)||void 0===n||null===(n=n.navigator)||void 0===n?void 0:n.product))}function ht(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return lt()?W("adapter","NodeAdapter",t):W("adapter","BrowserAdapter",t)}(function(){return v((function t(e){h(this,t),this.place=e,this.geometry=null==e?void 0:e.geometry,this.components=this.parseComponents(),this.attributes=this.parseProperties();}),[{key:"parse",value:function(){this.parseComponents(),this.parseProperties();}},{key:"parseComponents",value:function(){var t;return ((null===(t=this.place)||void 0===t?void 0:t.address_components)||[]).reduce((function(t,e){return e.types.forEach((function(n){t[n]=e;})),t}),{})}},{key:"parseProperties",value:function(){var t,e={streetNumber:this.get("street_number"),streetName:this.get("route"),coordinates:null!==(t=this.geometry)&&void 0!==t&&t.location?Object.values(this.geometry.location):[0,0],city:this.or(["locality","sublocality","sublocality_level_1","neighborhood","administrative_area_level_3","administrative_area_level_2"]),county:this.get("administrative_area_level_2"),stateShort:this.get("administrative_area_level_1",true),stateLong:this.get("administrative_area_level_1"),countryShort:this.get("country",true),country:this.get("country",true),countryLong:this.get("country"),postalCode:this.get("postal_code")};return e.address=[e.streetNumber,e.streetName].filter(Boolean).join(" "),e}},{key:"all",value:function(){return this.attributes}},{key:"or",value:function(){var t,e=p(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]);try{for(e.s();!(t=e.n()).done;){var n=t.value;if(V(n)){var r=n[0],i=n[1];if(this.has(r))return this.get(r,i)}else if(this.has(n))return this.get(n)}}catch(t){e.e(t);}finally{e.f();}return null}},{key:"has",value:function(t){return t in this.components}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t in this.components?e?this.components[t].short_name:this.components[t].long_name:null}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.attributes=A(A({},this.attributes),t),this}},{key:"setAttribute",value:function(t,e){return this.attributes[t]=e,this}},{key:"getAttribute",value:function(t){return this.attributes[t]||null}}])})();var dt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;h(this,t),this.type="Point",this.coordinates=[n,e];}return v(t,[{key:"latitude",get:function(){return this.coordinates[1]}},{key:"longitude",get:function(){return this.coordinates[0]}},{key:"lat",value:function(){return this.latitude}},{key:"lng",value:function(){return this.longitude}},{key:"serialize",value:function(){return {type:"Point",coorindates:[this.lat(),this.lng()]}}},{key:"toJson",value:function(){return this.serialize()}},{key:"toString",value:function(){return "(".concat(this.latitude,", ").concat(this.longitude,")")}}],[{key:"fromGeoJson",value:function(e){var n=R(e.coordinates,2),r=n[0];return new t(n[1],r)}}])}();function vt(t,e){var n=t();return Array.isArray(n)||"object"===T(n)?pt(n,e):null}function pt(t,e){var n,r=t,i=T(t),o="object"===i,a="function"===i,s=Array.isArray(t),u="string"===T(e)&&e.includes(".")?e.split("."):[e];if(s||o){for(var c=0;c1&&void 0!==arguments[1]?arguments[1]:[];if(t.actions=V(e)?e:[e],!V(e))return e instanceof mt&&e.extend(t),t;var n,r=p(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;t.extendActions(i);}}catch(t){r.e(t);}finally{r.f();}}var mt=function(){return v((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;h(this,t),this.actions=e,this.bind=n;}),[{key:"extend",value:function(){var t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||this.bind;if(!t)return this;if(null!=this&&this.actions&&"object"===T(this.actions))for(var e in this.actions){var n=this.actions[e];"function"==typeof n?gt(t,e,n.bind(t)):gt(t,e,n);}return this}}])}();function wt(t){return t instanceof kt}var kt=function(){return v((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};h(this,t),this.attributes=e,this.dirtyAttributes={},this.changes={},this.isLoading=false,this.isSaving=false,this.isDestroying=false,this.isReloading=false,this.resource=r,this.options=i,this.version=i.version||"v1",this.setAdapter(n);}),[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=M(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"id",get:function(){return this.getAttribute("id")}},{key:"create",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.mergeAttributes(e);return this.setFlags(["isLoading","isSaving"]),this.store.create(n).then((function(e){return t.setFlags(["isLoading","isSaving"],false),e}))}},{key:"update",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setFlags(["isLoading","isSaving"]),this.store.update(this.attributes.id,e).then((function(e){return t.setFlags(["isLoading","isSaving"],false),e}))}},{key:"destroy",value:function(){var t=this;return this.setFlags(["isLoading","isDestroying"]),this.store.destroy(this.attributes.id).then((function(e){return t.setFlags(["isLoading","isDestroying"],false),e}))}},{key:"reload",value:function(){var t=this;return this.setFlags(["isLoading","isReloading"]),this.store.findRecord(this.attributes.id).then((function(e){return t.reset(),e}))}},{key:"setFlags",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=["isLoading","isSaving","isReloading","isDestroying"],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=this.getAttributes();return st(this.id)?this.create(e):true===t.onlyDirty?this.savedirty():this.update(e)}},{key:"saveDirty",value:function(){for(var t=Object.keys(this.dirtyAttributes),e={},n=0;n0}},{key:"mutate",value:function(t,e){this.attributes[t]=e;}},{key:"setAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null===n&&"object"===T(t))return this.setAttributes(t);var r=null!==(e=null==this?void 0:this.attributes[t])&&void 0!==e?e:null;return gt(this.attributes,t,n),gt(this.dirtyAttributes,t,r),V(null==this?void 0:this.changes[t])||(this.changes[t]=[]),this.changes[t].push({property:t,previousValue:r,value:n,changedAt:new Date}),this}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var e in t)this.setAttribute(e,t[e]);return this}},{key:"getAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=pt(null!==(e=null==this?void 0:this.attributes)&&void 0!==e?e:{},t);return void 0===r?n:r}},{key:"hasAttribute",value:function(t){if(V(t)){var e,n=t,r=Object.keys(null!==(e=this.attributes)&&void 0!==e?e:{});return n.every((function(t){return r.includes(t)}))}return !(null==this||!this.attributes)&&t in this.attributes}},{key:"hasAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.hasAttribute(t)}},{key:"isAttributeFilled",value:function(t){var e=this;return V(t)?this.hasAttribute(t)&&t.every((function(t){return !st(e.getAttribute(t))})):this.hasAttribute(t)&&!st(this.getAttribute(t))}},{key:"getAttributes",value:function(t){var e={};if(null==t)return this.getAttributes(Object.keys(this.attributes));if("string"==typeof t)return this.getAttribute(Array.prototype.slice.call(arguments));if(!V(t))throw new Error("No attribute properties provided!");var n,r=p(t);try{for(r.s();!(n=r.n()).done;){var i,o,a=n.value;if("string"==typeof a){var s=this.getAttribute(a);"object"!==T(null===(i=s)||void 0===i?void 0:i.attributes)||V(null===(o=s)||void 0===o?void 0:o.attributes)||(s=s.attributes),e[a]=s;}}}catch(t){r.e(t);}finally{r.f();}return e}},{key:"serialize",value:function(){return this.getAttributes()}},{key:"mergeAttributes",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=null!==(t=null==this?void 0:this.attributes)&&void 0!==t?t:{};return this.attributes=A(A({},n),e),this.attributes}},{key:"syncAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attributes=t;}}])}();q("resource","Resource",kt);var Et=function(){return v((function t(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};h(this,t),this.resource=e,this.adapter=n||ht(),this.namespace=F(e),this.storage=ot(),this.options=r,this.extendActions(r.actions);}),[{key:"extendActions",value:function(){return yt(this,arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])}},{key:"deposit",value:function(t){return t}},{key:"serialize",value:function(t){return W("resource",z(this.resource),t,this.adapter)}},{key:"afterFetch",value:function(t){return function(t,e){if("function"==typeof t.options.onAfterFetch&&t.options.onAfterFetch(e),V(e)){var n,r=[],i=p(e);try{for(i.s();!(n=i.n()).done;){var o=n.value;r.push(t.afterFetch(o));}}catch(t){i.e(t);}finally{i.f();}return ot.apply(void 0,r)}var a=t.serialize(e);return t.deposit(a)}(this,t)}},{key:"create",value:(a=u(x().mark((function t(){var e,n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=4,this.adapter.post("".concat(this.namespace),e,n);case 4:return r=t.sent,t.abrupt("return",this.afterFetch(r));case 6:case "end":return t.stop()}}),t,this)}))),function(){return a.apply(this,arguments)})},{key:"update",value:(o=u(x().mark((function t(e){var n,r,i,o=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=o.length>1&&void 0!==o[1]?o[1]:{},r=o.length>2&&void 0!==o[2]?o[2]:{},t.next=4,this.adapter.put("".concat(this.namespace,"/").concat(e),n,r);case 4:return i=t.sent,t.abrupt("return",this.afterFetch(i));case 6:case "end":return t.stop()}}),t,this)}))),function(t){return o.apply(this,arguments)})},{key:"findRecord",value:(i=u(x().mark((function t(e){var n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=3,this.adapter.get("".concat(this.namespace,"/").concat(e),{},n);case 3:return r=t.sent,t.abrupt("return",this.afterFetch(r));case 5:case "end":return t.stop()}}),t,this)}))),function(t){return i.apply(this,arguments)})},{key:"findAll",value:(r=u(x().mark((function t(){var e,n,r=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=r.length>0&&void 0!==r[0]?r[0]:{},t.next=3,this.adapter.get("".concat(this.namespace),{},e);case 3:return n=t.sent,t.abrupt("return",this.afterFetch(n));case 5:case "end":return t.stop()}}),t,this)}))),function(){return r.apply(this,arguments)})},{key:"query",value:(n=u(x().mark((function t(){var e,n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=4,this.adapter.get("".concat(this.namespace),e,n);case 4:return r=t.sent,t.abrupt("return",this.afterFetch(r));case 6:case "end":return t.stop()}}),t,this)}))),function(){return n.apply(this,arguments)})},{key:"queryRecord",value:(e=u(x().mark((function t(){var e,n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},(e=i.length>0&&void 0!==i[0]?i[0]:{}).single=true,t.next=5,this.adapter.get("".concat(this.namespace),e,n);case 5:return r=t.sent,t.abrupt("return",this.afterFetch(r));case 7:case "end":return t.stop()}}),t,this)}))),function(){return e.apply(this,arguments)})},{key:"destroy",value:(t=u(x().mark((function t(e){var n,r,i,o=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=o.length>1&&void 0!==o[1]?o[1]:{},r=wt(e)?e.getAttribute("id"):e,t.next=4,this.adapter.delete("".concat(this.namespace,"/").concat(r),{},n);case 4:return i=t.sent,t.abrupt("return",this.afterFetch(i));case 6:case "end":return t.stop()}}),t,this)}))),function(e){return t.apply(this,arguments)})}]);var t,e,n,r,i,o,a;}();q("store","Store",Et);var At=new mt({getDistanceAndTime:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/distance-and-time"),e,n)},getNextActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/next-activity"),e,n)},dispatch:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/dispatch"),e,n).then(this.afterFetch.bind(this))},start:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/start"),e,n).then(this.afterFetch.bind(this))},updateActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/update-activity"),e,n).then(this.afterFetch.bind(this))},setDestination:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return wt(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/set-destination/").concat(e),n,r).then(this.afterFetch.bind(this))},captureQrCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return wt(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-qr").concat(e?"/"+e:""),n,r)},captureSignature:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return wt(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-signature").concat(e?"/"+e:""),n,r)},complete:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/complete"),e,n).then(this.afterFetch.bind(this))},cancel:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete("".concat(this.namespace,"/").concat(t,"/cancel"),e,n).then(this.afterFetch.bind(this))}}),xt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"order",A({actions:At},r)])}return b(t,kt),v(t,[{key:"getDistanceAndTime",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getDistanceAndTime(this.id,t,e)}},{key:"dispatch",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.dispatch(this.id,t,e)}},{key:"start",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.start(this.id,t,e)}},{key:"setDestination",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.setDestination(this.id,t,e,n)}},{key:"captureQrCode",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureQrCode(this.id,t,e,n)}},{key:"captureSignature",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureSignature(this.id,t,e,n)}},{key:"getNextActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getNextActivity(this.id,t,e)}},{key:"updateActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.updateActivity(this.id,t,e)}},{key:"cancel",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.cancel(this.id,t,e)}},{key:"complete",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.complete(this.id,t,e)}},{key:"isDispatched",get:function(){return null!==this.getAttribute("dispatched_at")}},{key:"isNotDispatched",get:function(){return null==this.getAttribute("dispatched_at")}},{key:"isStarted",get:function(){return null!==this.getAttribute("started_at")}},{key:"isNotStarted",get:function(){return null==this.getAttribute("started_at")}},{key:"isCompleted",get:function(){return "completed"==this.getAttribute("status")}},{key:"isCanceled",get:function(){return "canceled"==this.getAttribute("status")}},{key:"isEnroute",get:function(){return "driver_enroute"==this.getAttribute("status")||"enroute"===this.getAttribute("status")}},{key:"isInProgress",get:function(){return this.isStarted&&!this.isCanceled&&!this.isCompleted}},{key:"scheduledAt",get:function(){return this.isAttributeFilled("scheduled_at")?new Date(this.getAttribute("scheduled_at")):null}},{key:"startedAt",get:function(){return this.isAttributeFilled("started_at")?new Date(this.getAttribute("started_at")):null}},{key:"dispatchedAt",get:function(){return this.isAttributeFilled("dispatched_at")?new Date(this.getAttribute("dispatched_at")):null}},{key:"status",get:function(){return this.getAttribute("status")}}])}();q("resource","Order",xt);var Ot=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"payload",r])}return b(t,kt),v(t,[{key:"attach",value:function(t){}},{key:"entities",get:function(){var t=this;return ot(this.entities.map((function(e){return G("Entity",e,t.adapter)})))}},{key:"dropoff",get:function(){return this.dropoff?G("Place",this.dropoff,this.adapter):null}},{key:"pickup",get:function(){return this.pickup?G("Place",this.pickup,this.adapter):null}},{key:"waypoints",get:function(){var t=this;return ot(this.waypoints.map((function(e){return G("Waypoint",e,t.adapter)})))}}])}();q("resource","Payload",Ot);var Rt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"entity",r])}return b(t,kt),v(t)}();q("resource","Entity",Rt);var St=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"place",r])}return b(t,kt),v(t,[{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new dt))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new dt))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return [this.latitude,this.longitude]}},{key:"setOwner",value:function(t){return wt(t)&&this.setAttribute("owner",t.id),"string"==typeof t&&this.setAttribute("owner",t),this}}],[{key:"fromGoogleAddress",value:function(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=R(e.getAttribute("coordinates"),2),o=i[0],a=i[1];return new t({name:null,address:e.getAttribute("address"),location:new dt(o,a),street1:e.getAttribute("address"),street2:null,city:e.getAttribute("city"),province:e.getAttribute("stateLong"),postal_code:e.getAttribute("postalCode"),neighborhood:e.get("neighborhood"),district:e.getAttribute("county"),building:e.get("building"),country:e.getAttribute("countryShort"),phone:null,security_access_code:null},n,r)}}])}();q("resource","Place",St);var jt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"waypoint",r])}return b(t,St),v(t)}();q("resource","Waypoint",jt);var Tt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"tracking-status",r])}return b(t,kt),v(t)}();q("resource","TrackingStatus",Tt);var _t=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"vehicle",r])}return b(t,kt),v(t)}();q("resource","Vehicle",_t);var Pt=new mt({current:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.get("".concat(this.namespace,"/current"),t,e)}}),Lt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"organization",A({actions:Pt},r)])}return b(t,kt),v(t)}();q("resource","Organization",Lt);var Ct=function(t,e){return V(t)?t.map((function(t){return new Lt(t,e)})):new Lt(t,e)},Nt=new mt({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(function(){return /^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"")}(t))return this.adapter.post("drivers/login-with-sms",{phone:t});if(!e)throw new Error("Login requires password!");return this.adapter.post("drivers/login",A({identity:t,password:e},n)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/verify-code",A({identity:t,code:e},n)).then(this.afterFetch.bind(this))},track:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/track"),e,n).then(this.afterFetch.bind(this))},listOrganizations:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("drivers/".concat(t,"/organizations"),n,r).then((function(t){return Ct(t,e.adapter)}))},switchOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/switch-organization"),n,r).then((function(t){return Ct(t,e.adapter)}))},currentOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("drivers/".concat(t,"/current-organization"),n,r).then((function(t){return Ct(t,e.adapter)}))},retrieve:function(t){return this.findRecord(t)},syncDevice:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/register-device"),e,n)}}),Ft=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"driver",A({actions:Nt},r)])}return b(t,kt),v(t,[{key:"token",get:function(){return this.getAttribute("token")}},{key:"isOnline",get:function(){return true===this.getAttribute("online")}},{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new dt))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new dt))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return [this.latitude,this.longitude]}},{key:"track",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.track(this.id,t,e)}},{key:"syncDevice",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.syncDevice(this.id,t,e)}},{key:"listOrganizations",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.listOrganizations(this.id,t,e)}},{key:"switchOrganization",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.switchOrganization(this.id,{next:t},e)}},{key:"currentOrganization",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.currentOrganization(this.id,t,e)}}])}();q("resource","Driver",Ft);var Dt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"vendor",r])}return b(t,kt),v(t)}();q("resource","Vendor",Dt);var $t=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"contact",r])}return b(t,kt),v(t)}();q("resource","Contact",$t);var Ut=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"zone",r])}return b(t,kt),v(t)}();q("resource","Zone",Ut);var zt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"service-area",r])}return b(t,kt),v(t)}();q("resource","ServiceArea",zt);var Bt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"service-rate",r])}return b(t,kt),v(t)}();q("resource","ServiceRate",Bt);var qt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"service-quote",r])}return b(t,kt),v(t,[{key:"fromPreliminary",value:function(){}},{key:"fromPayload",value:function(){}}])}();q("resource","ServiceQuote",qt);var It=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,"fleet",r])}return b(t,kt),v(t)}();q("resource","Fleet",It);var Mt=v((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};h(this,t),this.version=e.version||"v1",this.host=e.host||null,this.namespace=e.namespace||null,this.headers=e.headers||{};}));q("adapter","Adapter",Mt);var Ht=function(){function t(e){var n;return h(this,t),(n=l(this,t,[e])).setHeaders({Authorization:"Bearer ".concat(e.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;browser"}),n}return b(t,Mt),v(t,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.headers=A(A({},this.headers),t),this}},{key:"parseJSON",value:function(t){return new Promise((function(e,n){t.json().then((function(n){e({statusText:t.statusText,status:t.status,ok:t.ok,json:n});})).catch((function(){n(new Error("Oops! Something went wrong when handling your request."));}));}))}},{key:"request",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new Promise((function(o,a){fetch(i.url||"".concat(e.host,"/").concat(e.namespace,"/").concat(t),A({method:n,mode:i.mode||"cors",headers:new Headers(A(A({},e.headers||{}),i.headers||{}))},r)).then(e.parseJSON).then((function(t){if(t.ok)return o(t.json);a(new Error(t.json.errors?t.json.errors[0]:t.statusText));})).catch((function(t){a(t);}));}))}},{key:"get",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=st(e=n)||"string"==typeof e&&false===/\S/.test(e)?"":new URLSearchParams(n).toString();return this.request("".concat(t).concat(i?"?".concat(i):""),"GET",{},r)}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"POST",{body:JSON.stringify(e)},n)}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PUT",{body:JSON.stringify(e)},n)}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(t,"DELETE",{},e)}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PATCH",{body:JSON.stringify(e)},n)}}])}();function Jt(t,e){return function(){return t.apply(e,arguments)}}q("adapter","BrowserAdapter",Ht);var Wt,Kt=Object.prototype.toString,Gt=Object.getPrototypeOf,Vt=(Wt=Object.create(null),function(t){var e=Kt.call(t);return Wt[e]||(Wt[e]=e.slice(8,-1).toLowerCase())}),Xt=function(t){return t=t.toLowerCase(),function(e){return Vt(e)===t}},Qt=function(t){return function(e){return T(e)===t}},Yt=Array.isArray,Zt=Qt("undefined");var te=Xt("ArrayBuffer");var ee=Qt("string"),ne=Qt("function"),re=Qt("number"),ie=function(t){return null!==t&&"object"===T(t)},oe=function(t){if("object"!==Vt(t))return false;var e=Gt(t);return !(null!==e&&e!==Object.prototype&&null!==Object.getPrototypeOf(e)||Symbol.toStringTag in t||Symbol.iterator in t)},ae=Xt("Date"),se=Xt("File"),ue=Xt("Blob"),ce=Xt("FileList"),le=Xt("URLSearchParams"),he=R(["ReadableStream","Request","Response","Headers"].map(Xt),4),fe=he[0],de=he[1],ve=he[2],pe=he[3];function ge(t,e){var n,r,i=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).allOwnKeys,o=void 0!==i&&i;if(null!=t)if("object"!==T(t)&&(t=[t]),Yt(t))for(n=0,r=t.length;n0;)if(e===(n=r[i]).toLowerCase())return n;return null}var be="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,me=function(t){return !Zt(t)&&t!==be};var we,ke=(we="undefined"!=typeof Uint8Array&&Gt(Uint8Array),function(t){return we&&t instanceof we}),Ee=Xt("HTMLFormElement"),Ae=function(){var t=Object.prototype.hasOwnProperty;return function(e,n){return t.call(e,n)}}(),xe=Xt("RegExp"),Oe=function(t,e){var n=Object.getOwnPropertyDescriptors(t),r={};ge(n,(function(n,i){var o;false!==(o=e(n,i,t))&&(r[i]=o||n);})),Object.defineProperties(t,r);},Re="abcdefghijklmnopqrstuvwxyz",Se="0123456789",je={DIGIT:Se,ALPHA:Re,ALPHA_DIGIT:Re+Re.toUpperCase()+Se};var Te,_e,Pe,Le,Ce=Xt("AsyncFunction"),Ne=(Te="function"==typeof setImmediate,_e=ne(be.postMessage),Te?setImmediate:_e?(Pe="axios@".concat(Math.random()),Le=[],be.addEventListener("message",(function(t){var e=t.source,n=t.data;e===be&&n===Pe&&Le.length&&Le.shift()();}),false),function(t){Le.push(t),be.postMessage(Pe,"*");}):function(t){return setTimeout(t)}),Fe="undefined"!=typeof queueMicrotask?queueMicrotask.bind(be):"undefined"!=typeof process&&process.nextTick||Ne,De={isArray:Yt,isArrayBuffer:te,isBuffer:function(t){return null!==t&&!Zt(t)&&null!==t.constructor&&!Zt(t.constructor)&&ne(t.constructor.isBuffer)&&t.constructor.isBuffer(t)},isFormData:function(t){var e;return t&&("function"==typeof FormData&&t instanceof FormData||ne(t.append)&&("formdata"===(e=Vt(t))||"object"===e&&ne(t.toString)&&"[object FormData]"===t.toString()))},isArrayBufferView:function(t){return "undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&te(t.buffer)},isString:ee,isNumber:re,isBoolean:function(t){return true===t||false===t},isObject:ie,isPlainObject:oe,isReadableStream:fe,isRequest:de,isResponse:ve,isHeaders:pe,isUndefined:Zt,isDate:ae,isFile:se,isBlob:ue,isRegExp:xe,isFunction:ne,isStream:function(t){return ie(t)&&ne(t.pipe)},isURLSearchParams:le,isTypedArray:ke,isFileList:ce,forEach:ge,merge:function t(){for(var e=(me(this)&&this||{}).caseless,n={},r=function(r,i){var o=e&&ye(n,i)||i;oe(n[o])&&oe(r)?n[o]=t(n[o],r):oe(r)?n[o]=t({},r):Yt(r)?n[o]=r.slice():n[o]=r;},i=0,o=arguments.length;i3&&void 0!==arguments[3]?arguments[3]:{}).allOwnKeys}),t},trim:function(t){return t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")},stripBOM:function(t){return 65279===t.charCodeAt(0)&&(t=t.slice(1)),t},inherits:function(t,e,n,r){t.prototype=Object.create(e.prototype,r),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),n&&Object.assign(t.prototype,n);},toFlatObject:function(t,e,n,r){var i,o,a,s={};if(e=e||{},null==t)return e;do{for(o=(i=Object.getOwnPropertyNames(t)).length;o-- >0;)a=i[o],r&&!r(a,t,e)||s[a]||(e[a]=t[a],s[a]=true);t=false!==n&&Gt(t);}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},kindOf:Vt,kindOfTest:Xt,endsWith:function(t,e,n){t=String(t),(void 0===n||n>t.length)&&(n=t.length),n-=e.length;var r=t.indexOf(e,n);return -1!==r&&r===n},toArray:function(t){if(!t)return null;if(Yt(t))return t;var e=t.length;if(!re(e))return null;for(var n=new Array(e);e-- >0;)n[e]=t[e];return n},forEachEntry:function(t,e){for(var n,r=(t&&t[Symbol.iterator]).call(t);(n=r.next())&&!n.done;){var i=n.value;e.call(t,i[0],i[1]);}},matchAll:function(t,e){for(var n,r=[];null!==(n=t.exec(e));)r.push(n);return r},isHTMLForm:Ee,hasOwnProperty:Ae,hasOwnProp:Ae,reduceDescriptors:Oe,freezeMethods:function(t){Oe(t,(function(e,n){if(ne(t)&&-1!==["arguments","caller","callee"].indexOf(n))return false;var r=t[n];ne(r)&&(e.enumerable=false,"writable"in e?e.writable=false:e.set||(e.set=function(){throw Error("Can not rewrite read-only method '"+n+"'")}));}));},toObjectSet:function(t,e){var n={},r=function(t){t.forEach((function(t){n[t]=true;}));};return Yt(t)?r(t):r(String(t).split(e)),n},toCamelCase:function(t){return t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(t,e,n){return e.toUpperCase()+n}))},noop:function(){},toFiniteNumber:function(t,e){return null!=t&&Number.isFinite(t=+t)?t:e},findKey:ye,global:be,isContextDefined:me,ALPHABET:je,generateString:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:je.ALPHA_DIGIT,n="",r=e.length;t--;)n+=e[Math.random()*r|0];return n},isSpecCompliantForm:function(t){return !!(t&&ne(t.append)&&"FormData"===t[Symbol.toStringTag]&&t[Symbol.iterator])},toJSONObject:function(t){var e=new Array(10),n=function(t,r){if(ie(t)){if(e.indexOf(t)>=0)return;if(!("toJSON"in t)){e[r]=t;var i=Yt(t)?[]:{};return ge(t,(function(t,e){var o=n(t,r+1);!Zt(o)&&(i[e]=o);})),e[r]=void 0,i}}return t};return n(t,0)},isAsyncFn:Ce,isThenable:function(t){return t&&(ie(t)||ne(t))&&ne(t.then)&&ne(t.catch)},setImmediate:Ne,asap:Fe};function $e(t,e,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=t,this.name="AxiosError",e&&(this.code=e),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status?i.status:null);}De.inherits($e,Error,{toJSON:function(){return {message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:De.toJSONObject(this.config),code:this.code,status:this.status}}});var Ue=$e.prototype,ze={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((function(t){ze[t]={value:t};})),Object.defineProperties($e,ze),Object.defineProperty(Ue,"isAxiosError",{value:true}),$e.from=function(t,e,n,r,i,o){var a=Object.create(Ue);return De.toFlatObject(t,a,(function(t){return t!==Error.prototype}),(function(t){return "isAxiosError"!==t})),$e.call(a,t.message,e,n,r,i),a.cause=t,a.name=t.name,o&&Object.assign(a,o),a};function Be(t){return De.isPlainObject(t)||De.isArray(t)}function qe(t){return De.endsWith(t,"[]")?t.slice(0,-2):t}function Ie(t,e,n){return t?t.concat(e).map((function(t,e){return t=qe(t),!n&&e?"["+t+"]":t})).join(n?".":""):e}var Me=De.toFlatObject(De,{},null,(function(t){return /^is[A-Z]/.test(t)}));function He(t,e,n){if(!De.isObject(t))throw new TypeError("target must be an object");e=e||new FormData;var r=(n=De.toFlatObject(n,{metaTokens:true,dots:false,indexes:false},false,(function(t,e){return !De.isUndefined(e[t])}))).metaTokens,i=n.visitor||c,o=n.dots,a=n.indexes,s=(n.Blob||"undefined"!=typeof Blob&&Blob)&&De.isSpecCompliantForm(e);if(!De.isFunction(i))throw new TypeError("visitor must be a function");function u(t){if(null===t)return "";if(De.isDate(t))return t.toISOString();if(!s&&De.isBlob(t))throw new $e("Blob is not supported. Use a Buffer instead.");return De.isArrayBuffer(t)||De.isTypedArray(t)?s&&"function"==typeof Blob?new Blob([t]):Buffer.from(t):t}function c(t,n,i){var s=t;if(t&&!i&&"object"===T(t))if(De.endsWith(n,"{}"))n=r?n:n.slice(0,-2),t=JSON.stringify(t);else if(De.isArray(t)&&function(t){return De.isArray(t)&&!t.some(Be)}(t)||(De.isFileList(t)||De.endsWith(n,"[]"))&&(s=De.toArray(t)))return n=qe(n),s.forEach((function(t,r){!De.isUndefined(t)&&null!==t&&e.append(true===a?Ie([n],r,o):null===a?n:n+"[]",u(t));})),false;return !!Be(t)||(e.append(Ie(i,n,o),u(t)),false)}var l=[],h=Object.assign(Me,{defaultVisitor:c,convertValue:u,isVisitable:Be});if(!De.isObject(t))throw new TypeError("data must be an object");return function t(n,r){if(!De.isUndefined(n)){if(-1!==l.indexOf(n))throw Error("Circular reference detected in "+r.join("."));l.push(n),De.forEach(n,(function(n,o){ true===(!(De.isUndefined(n)||null===n)&&i.call(e,n,De.isString(o)?o.trim():o,r,h))&&t(n,r?r.concat(o):[o]);})),l.pop();}}(t),e}function Je(t){var e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,(function(t){return e[t]}))}function We(t,e){this._pairs=[],t&&He(t,this,e);}var Ke=We.prototype;function Ge(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Ve(t,e,n){if(!e)return t;var r=n&&n.encode||Ge;De.isFunction(n)&&(n={serialize:n});var i,o=n&&n.serialize;if(i=o?o(e,n):De.isURLSearchParams(e)?e.toString():new We(e,n).toString(r)){var a=t.indexOf("#");-1!==a&&(t=t.slice(0,a)),t+=(-1===t.indexOf("?")?"?":"&")+i;}return t}Ke.append=function(t,e){this._pairs.push([t,e]);},Ke.toString=function(t){var e=t?function(e){return t.call(this,e,Je)}:Je;return this._pairs.map((function(t){return e(t[0])+"="+e(t[1])}),"").join("&")};var Xe=function(){return v((function t(){h(this,t),this.handlers=[];}),[{key:"use",value:function(t,e,n){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}},{key:"eject",value:function(t){this.handlers[t]&&(this.handlers[t]=null);}},{key:"clear",value:function(){this.handlers&&(this.handlers=[]);}},{key:"forEach",value:function(t){De.forEach(this.handlers,(function(e){null!==e&&t(e);}));}}])}(),Qe={silentJSONParsing:true,forcedJSONParsing:true,clarifyTimeoutError:false},Ye={isBrowser:true,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:We,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},Ze="undefined"!=typeof window&&"undefined"!=typeof document,tn="object"===("undefined"==typeof navigator?"undefined":T(navigator))&&navigator||void 0,en=Ze&&(!tn||["ReactNative","NativeScript","NS"].indexOf(tn.product)<0),nn="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,rn=Ze&&window.location.href||"http://localhost",on=A(A({},Object.freeze({__proto__:null,hasBrowserEnv:Ze,hasStandardBrowserEnv:en,hasStandardBrowserWebWorkerEnv:nn,navigator:tn,origin:rn})),Ye);function an(t){function e(t,n,r,i){var o=t[i++];if("__proto__"===o)return true;var a=Number.isFinite(+o),s=i>=t.length;return o=!o&&De.isArray(r)?r.length:o,s?(De.hasOwnProp(r,o)?r[o]=[r[o],n]:r[o]=n,!a):(r[o]&&De.isObject(r[o])||(r[o]=[]),e(t,n,r[o],i)&&De.isArray(r[o])&&(r[o]=function(t){var e,n,r={},i=Object.keys(t),o=i.length;for(e=0;e-1,o=De.isObject(t);if(o&&De.isHTMLForm(t)&&(t=new FormData(t)),De.isFormData(t))return i?JSON.stringify(an(t)):t;if(De.isArrayBuffer(t)||De.isBuffer(t)||De.isStream(t)||De.isFile(t)||De.isBlob(t)||De.isReadableStream(t))return t;if(De.isArrayBufferView(t))return t.buffer;if(De.isURLSearchParams(t))return e.setContentType("application/x-www-form-urlencoded;charset=utf-8",false),t.toString();if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return function(t,e){return He(t,new on.classes.URLSearchParams,Object.assign({visitor:function(t,e,n,r){return on.isNode&&De.isBuffer(t)?(this.append(e,t.toString("base64")),false):r.defaultVisitor.apply(this,arguments)}},e))}(t,this.formSerializer).toString();if((n=De.isFileList(t))||r.indexOf("multipart/form-data")>-1){var a=this.env&&this.env.FormData;return He(n?{"files[]":t}:t,a&&new a,this.formSerializer)}}return o||i?(e.setContentType("application/json",false),function(t,e){if(De.isString(t))try{return (e||JSON.parse)(t),De.trim(t)}catch(t){if("SyntaxError"!==t.name)throw t}return (0, JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){var e=this.transitional||sn.transitional,n=e&&e.forcedJSONParsing,r="json"===this.responseType;if(De.isResponse(t)||De.isReadableStream(t))return t;if(t&&De.isString(t)&&(n&&!this.responseType||r)){var i=!(e&&e.silentJSONParsing)&&r;try{return JSON.parse(t)}catch(t){if(i){if("SyntaxError"===t.name)throw $e.from(t,$e.ERR_BAD_RESPONSE,this,null,this.response);throw t}}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:on.classes.FormData,Blob:on.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};De.forEach(["delete","get","head","post","put","patch"],(function(t){sn.headers[t]={};}));var un=De.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),cn=Symbol("internals");function ln(t){return t&&String(t).trim().toLowerCase()}function hn(t){return false===t||null==t?t:De.isArray(t)?t.map(hn):String(t)}function fn(t,e,n,r,i){return De.isFunction(r)?r.call(this,e,n):(i&&(e=n),De.isString(e)?De.isString(r)?-1!==e.indexOf(r):De.isRegExp(r)?r.test(e):void 0:void 0)}var dn=function(){return v((function t(e){h(this,t),e&&this.set(e);}),[{key:"set",value:function(t,e,n){var r=this;function i(t,e,n){var i=ln(e);if(!i)throw new Error("header name must be a non-empty string");var o=De.findKey(r,i);(!o||void 0===r[o]||true===n||void 0===n&&false!==r[o])&&(r[o||e]=hn(t));}var o=function(t,e){return De.forEach(t,(function(t,n){return i(t,n,e)}))};if(De.isPlainObject(t)||t instanceof this.constructor)o(t,e);else if(De.isString(t)&&(t=t.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim()))o(function(t){var e,n,r,i={};return t&&t.split("\n").forEach((function(t){r=t.indexOf(":"),e=t.substring(0,r).trim().toLowerCase(),n=t.substring(r+1).trim(),!e||i[e]&&un[e]||("set-cookie"===e?i[e]?i[e].push(n):i[e]=[n]:i[e]=i[e]?i[e]+", "+n:n);})),i}(t),e);else if(De.isHeaders(t)){var a,s=p(t.entries());try{for(s.s();!(a=s.n()).done;){var u=R(a.value,2),c=u[0];i(u[1],c,n);}}catch(t){s.e(t);}finally{s.f();}}else null!=t&&i(e,t,n);return this}},{key:"get",value:function(t,e){if(t=ln(t)){var n=De.findKey(this,t);if(n){var r=this[n];if(!e)return r;if(true===e)return function(t){for(var e,n=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;e=r.exec(t);)n[e[1]]=e[2];return n}(r);if(De.isFunction(e))return e.call(this,r,n);if(De.isRegExp(e))return e.exec(r);throw new TypeError("parser must be boolean|regexp|function")}}}},{key:"has",value:function(t,e){if(t=ln(t)){var n=De.findKey(this,t);return !(!n||void 0===this[n]||e&&!fn(0,this[n],n,e))}return false}},{key:"delete",value:function(t,e){var n=this,r=false;function i(t){if(t=ln(t)){var i=De.findKey(n,t);!i||e&&!fn(0,n[i],i,e)||(delete n[i],r=true);}}return De.isArray(t)?t.forEach(i):i(t),r}},{key:"clear",value:function(t){for(var e=Object.keys(this),n=e.length,r=false;n--;){var i=e[n];t&&!fn(0,this[i],i,t,true)||(delete this[i],r=true);}return r}},{key:"normalize",value:function(t){var e=this,n={};return De.forEach(this,(function(r,i){var o=De.findKey(n,i);if(o)return e[o]=hn(r),void delete e[i];var a=t?function(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(function(t,e,n){return e.toUpperCase()+n}))}(i):String(i).trim();a!==i&&delete e[i],e[a]=hn(r),n[a]=true;})),this}},{key:"concat",value:function(){for(var t,e=arguments.length,n=new Array(e),r=0;r1?n-1:0),i=1;i2&&void 0!==arguments[2]?arguments[2]:3,r=0,i=function(t,e){t=t||10;var n,r=new Array(t),i=new Array(t),o=0,a=0;return e=void 0!==e?e:1e3,function(s){var u=Date.now(),c=i[a];n||(n=u),r[o]=s,i[o]=u;for(var l=a,h=0;l!==o;)h+=r[l++],l%=t;if((o=(o+1)%t)===a&&(a=(a+1)%t),!(u-n1&&void 0!==arguments[1]?arguments[1]:Date.now();i=o,n=null,r&&(clearTimeout(r),r=null),t.apply(null,e);};return [function(){for(var t=Date.now(),e=t-i,s=arguments.length,u=new Array(s),c=0;c=o?a(u,t):(n=u,r||(r=setTimeout((function(){r=null,a(n);}),o-e)));},function(){return n&&a(n)}]}((function(n){var o=n.loaded,a=n.lengthComputable?n.total:void 0,s=o-r,u=i(s);r=o;var c=g({loaded:o,total:a,progress:a?o/a:void 0,bytes:s,rate:u||void 0,estimated:u&&a&&o<=a?(a-o)/u:void 0,event:n,lengthComputable:null!=a},e?"download":"upload",true);t(c);}),n)},mn=function(t,e){var n=null!=t;return [function(r){return e[0]({lengthComputable:n,total:t,loaded:r})},e[1]]},wn=function(t){return function(){for(var e=arguments.length,n=new Array(e),r=0;r1?e-1:0),r=1;r1?"since :\n"+s.map(Wn).join("\n"):" "+Wn(s[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return n};function Vn(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new gn(null,t)}function Xn(t){return Vn(t),t.headers=dn.from(t.headers),t.data=vn.call(t,t.transformRequest),-1!==["post","put","patch"].indexOf(t.method)&&t.headers.setContentType("application/x-www-form-urlencoded",false),Gn(t.adapter||sn.adapter)(t).then((function(e){return Vn(t),e.data=vn.call(t,t.transformResponse,e),e.headers=dn.from(e.headers),e}),(function(e){return pn(e)||(Vn(t),e&&e.response&&(e.response.data=vn.call(t,t.transformResponse,e.response),e.response.headers=dn.from(e.response.headers))),Promise.reject(e)}))}var Qn="1.7.9",Yn={};["object","boolean","number","function","string","symbol"].forEach((function(t,e){Yn[t]=function(n){return T(n)===t||"a"+(e<1?"n ":" ")+t};}));var Zn={};Yn.transitional=function(t,e,n){function r(t,e){return "[Axios v1.7.9] Transitional option '"+t+"'"+e+(n?". "+n:"")}return function(n,i,o){if(false===t)throw new $e(r(i," has been removed"+(e?" in "+e:"")),$e.ERR_DEPRECATED);return e&&!Zn[i]&&(Zn[i]=true,console.warn(r(i," has been deprecated since v"+e+" and will be removed in the near future"))),!t||t(n,i,o)}},Yn.spelling=function(t){return function(e,n){return console.warn("".concat(n," is likely a misspelling of ").concat(t)),true}};var tr={assertOptions:function(t,e,n){if("object"!==T(t))throw new $e("options must be an object",$e.ERR_BAD_OPTION_VALUE);for(var r=Object.keys(t),i=r.length;i-- >0;){var o=r[i],a=e[o];if(a){var s=t[o],u=void 0===s||a(s,o,t);if(true!==u)throw new $e("option "+o+" must be "+u,$e.ERR_BAD_OPTION_VALUE)}else if(true!==n)throw new $e("Unknown option "+o,$e.ERR_BAD_OPTION)}},validators:Yn},er=tr.validators,nr=function(){return v((function t(e){h(this,t),this.defaults=e,this.interceptors={request:new Xe,response:new Xe};}),[{key:"request",value:(t=u(x().mark((function t(e,n){var r,i;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,this._request(e,n);case 3:return t.abrupt("return",t.sent);case 6:if(t.prev=6,t.t0=t.catch(0),t.t0 instanceof Error){r={},Error.captureStackTrace?Error.captureStackTrace(r):r=new Error,i=r.stack?r.stack.replace(/^.+\n/,""):"";try{t.t0.stack?i&&!String(t.t0.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(t.t0.stack+="\n"+i):t.t0.stack=i;}catch(t){}}throw t.t0;case 10:case "end":return t.stop()}}),t,this,[[0,6]])}))),function(e,n){return t.apply(this,arguments)})},{key:"_request",value:function(t,e){"string"==typeof t?(e=e||{}).url=t:e=t||{};var n=e=On(this.defaults,e),r=n.transitional,i=n.paramsSerializer,o=n.headers;void 0!==r&&tr.assertOptions(r,{silentJSONParsing:er.transitional(er.boolean),forcedJSONParsing:er.transitional(er.boolean),clarifyTimeoutError:er.transitional(er.boolean)},false),null!=i&&(De.isFunction(i)?e.paramsSerializer={serialize:i}:tr.assertOptions(i,{encode:er.function,serialize:er.function},true)),tr.assertOptions(e,{baseUrl:er.spelling("baseURL"),withXsrfToken:er.spelling("withXSRFToken")},true),e.method=(e.method||this.defaults.method||"get").toLowerCase();var a=o&&De.merge(o.common,o[e.method]);o&&De.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete o[t];})),e.headers=dn.concat(a,o);var s=[],u=true;this.interceptors.request.forEach((function(t){"function"==typeof t.runWhen&&false===t.runWhen(e)||(u=u&&t.synchronous,s.unshift(t.fulfilled,t.rejected));}));var c,l=[];this.interceptors.response.forEach((function(t){l.push(t.fulfilled,t.rejected);}));var h,f=0;if(!u){var d=[Xn.bind(this),void 0];for(d.unshift.apply(d,s),d.push.apply(d,l),h=d.length,c=Promise.resolve(e);f0;)r._listeners[e](t);r._listeners=null;}})),this.promise.then=function(t){var e,n=new Promise((function(t){r.subscribe(t),e=t;})).then(t);return n.cancel=function(){r.unsubscribe(e);},n},e((function(t,e,i){r.reason||(r.reason=new gn(t,e,i),n(r.reason));}));}return v(t,[{key:"throwIfRequested",value:function(){if(this.reason)throw this.reason}},{key:"subscribe",value:function(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t];}},{key:"unsubscribe",value:function(t){if(this._listeners){var e=this._listeners.indexOf(t);-1!==e&&this._listeners.splice(e,1);}}},{key:"toAbortSignal",value:function(){var t=this,e=new AbortController,n=function(t){e.abort(t);};return this.subscribe(n),e.signal.unsubscribe=function(){return t.unsubscribe(n)},e.signal}}],[{key:"source",value:function(){var e;return {token:new t((function(t){e=t;})),cancel:e}}}])}();var ir={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(ir).forEach((function(t){var e=R(t,2),n=e[0],r=e[1];ir[r]=n;}));var or=function t(e){var n=new nr(e),r=Jt(nr.prototype.request,n);return De.extend(r,nr.prototype,n,{allOwnKeys:true}),De.extend(r,n,null,{allOwnKeys:true}),r.create=function(n){return t(On(e,n))},r}(sn);or.Axios=nr,or.CanceledError=gn,or.CancelToken=rr,or.isCancel=pn,or.VERSION=Qn,or.toFormData=He,or.AxiosError=$e,or.Cancel=or.CanceledError,or.all=function(t){return Promise.all(t)},or.spread=function(t){return function(e){return t.apply(null,e)}},or.isAxiosError=function(t){return De.isObject(t)&&true===t.isAxiosError},or.mergeConfig=On,or.AxiosHeaders=dn,or.formToJSON=function(t){return an(De.isHTMLForm(t)?new FormData(t):t)},or.getAdapter=Gn,or.HttpStatusCode=ir,or.default=or,or.Axios,or.AxiosError,or.CanceledError,or.isCancel,or.CancelToken,or.VERSION,or.all,or.Cancel,or.isAxiosError,or.spread,or.toFormData,or.AxiosHeaders,or.HttpStatusCode,or.formToJSON,or.getAdapter,or.mergeConfig;var ar=function(){function t(e){var n;return h(this,t),(n=l(this,t,[e])).axiosInstance=or.create({baseURL:"".concat(n.host,"/").concat(n.namespace),headers:{Authorization:"Bearer ".concat(e.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;node"}}),n.axiosInstance.interceptors.response.use((function(t){return t.data}),(function(t){if(t.response){var e=t.response.data;if(V(e.errors)&&e.errors.length)throw new Error(e.errors[0]);if(e.error)throw new Error(e.error)}throw t})),n}return b(t,Mt),v(t,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.axiosInstance.defaults.headers.common=A(A({},this.axiosInstance.defaults.headers.common),t),this}},{key:"request",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axiosInstance.request(A({method:t,url:e},n))}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request("GET",t,A({params:e},n))}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request("POST",t,A({data:e},n))}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request("PUT",t,A({data:e},n))}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request("DELETE",t,e)}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request("PATCH",t,A({data:e},n))}}])}();q("adapter","NodeAdapter",ar);var sr=function(){function t(){return h(this,t),l(this,t,arguments)}return b(t,Mt),v(t)}();q("adapter","EmberJsAdapter",sr);(function(){function t(e){var n,r,i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(h(this,t),this.version=null!==(n=o.version)&&void 0!==n?n:"v1",this.options={version:this.version,host:null!==(r=o.host)&&void 0!==r?r:"https://api.fleetbase.io",namespace:null!==(i=o.namespace)&&void 0!==i?i:this.version,debug:a,publicKey:e},"string"!=typeof e||0===e.length)throw new Error("⚠️ Invalid public key given to Fleetbase SDK");if(!lt()&&e.toLowerCase().startsWith("$"))throw new Error("Secret key provided. You must use a public key with Fleetbase Javascript SDK!");this.adapter=o.adapter||ht(this.options),this.orders=new Et("order",this.adapter).extendActions(At),this.entities=new Et("entity",this.adapter),this.places=new Et("place",this.adapter),this.drivers=new Et("driver",this.adapter).extendActions(Nt),this.vehicles=new Et("vehicle",this.adapter),this.vendors=new Et("vendor",this.adapter),this.contacts=new Et("contact",this.adapter),this.serviceAreas=new Et("service-area",this.adapter),this.zones=new Et("zone",this.adapter),this.fleets=new Et("fleet",this.adapter),this.organizations=new Et("organization",this.adapter).extendActions(Pt);}return v(t,[{key:"setAdapter",value:function(t){this.adapter=t;}},{key:"getAdapter",value:function(){return this.adapter}}],[{key:"newInstance",value:function(){return f(t,Array.prototype.slice.call(arguments))}}])})(); + +class StorefrontStore extends Et { + constructor(resource, adapter, options = {}) { + super(resource, adapter, options); + } + extendActions(actions = []) { + return yt(this, actions); + } + serialize(json) { + return W('resource', z(this.resource), json, this.adapter); + } +} + +function isPhone(phone = '') { + return /^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/.test(phone); +} + +function formatCurrency(amount = 0, currency = 'USD', currencyDisplay = 'symbol') { + return new Intl.NumberFormat('en-US', { + style: 'currency', + currency, + currencyDisplay, + }).format(amount); +} + +function isKeyValid(key) { + return typeof key === 'string' && key.length > 30 && (key.startsWith('store_') || key.startsWith('network_')); +} + +function isEmpty(obj) { + const none = obj === null || obj === undefined; + if (none) { + return none; + } + const objectType = typeof obj; + if (typeof obj === 'object' && typeof obj.size === 'number') { + return !obj.size; + } + if ((typeof obj === 'object' || typeof obj === 'string') && typeof obj.length === 'number' && objectType !== 'function') { + return !obj.length; + } + return false; +} + +function isArray$1(value) { + return Array.isArray(value); +} + +class StorefrontResource extends kt { + /** + * Set a new adapter to the resource instance, this will update the Store instance + * + * @param {import('@fleetbase/sdk').Adapter} adapter + * @return {this} + */ + setAdapter(adapter) { + this.adapter = adapter; + this.store = new StorefrontStore(this.resource, adapter, { + onAfterFetch: this.syncAttributes.bind(this), + actions: this.options?.actions, + }); + return this; + } +} +q('resource', 'StorefrontResource', StorefrontResource); + +const reviewActions = new mt({ + count: function (storeId, options = {}) { + const params = {}; + if (storeId) { + params.store = storeId; + } + return this.adapter.get(`${this.namespace}/count`, params, options); + }, +}); +class Review extends StorefrontResource { + constructor(attributes = {}, adapter, options = {}) { + super(attributes, adapter, 'review', options); + } + getMedia() { + return this.getPhotos(); + } + getPhotos() { + return (this.getAttribute('photos') ?? []); + } + getVideos() { + return this.getMedia().filter((media) => typeof media?.type === 'string' && media.type.startsWith('video/')); + } +} +q('resource', 'Review', Review); + +class StoreHour extends StorefrontResource { + constructor(attributes = {}, adapter, options = {}) { + super(attributes, adapter, 'store-hour', options); + } + get day() { + return this.getAttribute('day'); + } + get isClosed() { + return this.getAttribute('start') === null && this.getAttribute('end') === null; + } + get is24Hours() { + const start = this.startDateInstance; + const end = this.endDateInstance; + if (start === null || end === null || !isValid(start) || !isValid(end)) { + return false; + } + const diff = Math.abs(start.getTime() - end.getTime()); + const hours = Math.floor(diff / 1000 / 60) / 60; + return hours > 23; + } + get startDateInstance() { + if (!this.hasAttribute('start')) { + return null; + } + const start = this.getAttribute('start'); + if (typeof start !== 'string') { + return null; + } + const includesSeconds = start.split(':').length === 3; + const format = includesSeconds ? 'HH:mm:ss' : 'HH:mm'; + return parse(start, format, new Date()); + } + get endDateInstance() { + if (!this.hasAttribute('end')) { + return null; + } + const end = this.getAttribute('end'); + if (typeof end !== 'string') { + return null; + } + const includesSeconds = end.split(':').length === 3; + const format = includesSeconds ? 'HH:mm:ss' : 'HH:mm'; + return parse(end, format, new Date()); + } + get humanReadableHoursRange() { + const start = this.startDateInstance; + const end = this.endDateInstance; + if (start === null || end === null || !isValid(start) || !isValid(end)) { + return `${this.getAttribute('start')} - ${this.getAttribute('end')}`; + } + return `${format(start, 'p')} - ${format(end, 'p')}`; + } + get humanReadableHours() { + if (this.isClosed) { + return 'Closed'; + } + if (this.is24Hours) { + return '24 Hours'; + } + return this.humanReadableHoursRange; + } + // remove default resource methods + create() { + throw new Error('There is no create() method store location!'); + } + // remove default resource methods + update() { + throw new Error('There is no update() method store location!'); + } + // remove default resource methods + destroy() { + throw new Error('There is no destroy() method store location!'); + } + // remove default resource methods + reload() { + throw new Error('There is no reload() method store location!'); + } +} +q('resource', 'StoreHour', StoreHour); + +class StoreLocation extends StorefrontResource { + constructor(attributes = {}, adapter, options = {}) { + super(attributes, adapter, 'store-location', options); + } + get latitude() { + return this.getAttribute('place.location.coordinates.1'); + } + get longitude() { + return this.getAttribute('place.location.coordinates.0'); + } + get hours() { + const hours = this.getAttribute('hours', []); + return new at((hours || []).map((attributes) => new StoreHour(attributes, this.adapter))); + } + /** Raw embedded merchant payload, normalized across API response versions. */ + get storeData() { + const embeddedStore = this.getAttribute('store_data'); + const legacyStore = this.getAttribute('store'); + return embeddedStore || (legacyStore && typeof legacyStore === 'object' ? legacyStore : null); + } + /** Public store identifier for this location. */ + get storeId() { + const store = this.getAttribute('store'); + const data = this.storeData; + return (typeof store === 'string' ? store : data?.id || data?.public_id); + } + /** Typed embedded merchant when requested with `with_store`. */ + get merchant() { + return this.storeData ? W('resource', 'Store', this.storeData, this.adapter) : null; + } + get isAlwaysOpen() { + return this.hours.length > 0 && this.hours.every((hour) => hour?.is24Hours); + } + get today() { + const today = format(new Date(), 'EEEE'); + return this.schedule[today]; + } + get schedule() { + const schedule = {}; + const week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']; + for (let i = 0; i < week.length; i++) { + const day = week[i]; + schedule[day] = new at(); + } + for (let i = 0; i < this.hours.length; i++) { + const hour = this.hours.objectAt(i); + if (hour && schedule[hour.day]) { + schedule[hour.day].pushObject(hour); + } + } + return schedule; + } + // remove default resource methods + create() { + throw new Error('There is no create() method store location!'); + } + // remove default resource methods + update() { + throw new Error('There is no update() method store location!'); + } + // remove default resource methods + destroy() { + throw new Error('There is no destroy() method store location!'); + } +} +q('resource', 'StoreLocation', StoreLocation); + +class PaymentGateway extends StorefrontResource { + token; + constructor(attributes = {}, adapter, options = {}) { + super(attributes, adapter, 'payment-gateway', options); + } + get type() { + return this.getAttribute('type'); + } + get code() { + return this.getAttribute('code'); + } + get isCashGateway() { + return this.type === 'cash'; + } + get isStripeGateway() { + return this.type === 'stripe'; + } + get isQPayGateway() { + return this.type === 'qpay' || this.code === 'qpay'; + } + setCheckoutToken(token) { + this.token = token; + } + getCheckoutToken() { + return this.token; + } + // remove default resource methods + findRecord() { + throw new Error('There is no findRecord() method for payment gateways!'); + } + // remove default resource methods + create() { + throw new Error('There is no create() method for payment gateways!'); + } + // remove default resource methods + update() { + throw new Error('There is no update() method for payment gateways!'); + } + // remove default resource methods + destroy() { + throw new Error('There is no destroy() method for payment gateways!'); + } + // remove default resource methods + reload() { + throw new Error('There is no reload() method for payment gateways!'); + } +} +q('resource', 'PaymentGateway', PaymentGateway); + +class Store extends StorefrontResource { + constructor(attributes = {}, adapter, options = {}) { + super(attributes, adapter, 'store', options); + } + getReviews(params = {}) { + return this.adapter.get('reviews', { store: this.id, ...params }).then((reviews) => { + return new at(reviews.map((attributes) => new Review(attributes, this.adapter))); + }); + } + getTags(params = {}) { + return this.adapter.get('tags', params); + } + getLocations(params = {}) { + return this.adapter.get('locations', { store: this.id, ...params }).then((storeLocations) => { + return new at(storeLocations.map((attributes) => { + if (attributes.place) { + attributes.place = new St(attributes.place, this.adapter); + } + return new StoreLocation(attributes, this.adapter); + })); + }); + } + getLocation(id) { + return this.adapter.get(`locations/${id}`, { store: this.id }).then((attributes) => { + return new StoreLocation(attributes, this.adapter); + }); + } + getPaymentGateways(params = {}) { + return this.adapter.get('gateways', params).then((gateways) => { + return new at(gateways.map((attributes) => { + return new PaymentGateway(attributes, this.adapter); + })); + }); + } + getPaymentGateway(id) { + return this.adapter.get(`gateways/${id}`).then((attributes) => { + return new PaymentGateway(attributes, this.adapter); + }); + } +} +q('resource', 'Store', Store); + +class Product extends StorefrontResource { + constructor(attributes = {}, adapter, options = {}) { + super(attributes, adapter, 'product', options); + } + variants() { + return this.getAttribute('variants'); + } + addons() { + return this.getAttribute('addon_categories'); + } + images() { + return this.getAttribute('images') ?? []; + } + videos() { + return this.getAttribute('videos') ?? []; + } + hours() { + return this.getAttribute('hours') ?? []; + } + get isOnSale() { + return this.getAttribute('is_on_sale'); + } + get isNotOnSale() { + return !this.getAttribute('is_on_sale'); + } + get formattedAmount() { + const { price, sale_price, currency } = this.getAttributes(['price', 'sale_price', 'currency']); + if (this.isOnSale) { + if (isEmpty(sale_price) || isEmpty(currency)) { + return null; + } + return formatCurrency(sale_price / 100, currency); + } + if (isEmpty(price) || isEmpty(currency)) { + return null; + } + return formatCurrency(price / 100, currency); + } + get merchant() { + const attributes = this.getAttribute('store'); + return attributes && typeof attributes === 'object' ? new Store(attributes, this.adapter) : null; + } + getReviews() { + return this.adapter.get('reviews', { store: this.id }).then((reviews) => { + return new at(reviews.map((attributes) => new Review(attributes, this.adapter))); + }); + } +} +q('resource', 'Product', Product); + +class Category extends StorefrontResource { + constructor(attributes = {}, adapter, options = {}) { + super(attributes, adapter, 'category', options); + } + getProducts() { + return this.adapter.get('products', { category: this.id }).then((products) => { + return new at(products.map((attributes) => new Product(attributes, this.adapter))); + }); + } +} +q('resource', 'Category', Category); + +const customerActions = new mt({ + // const { error } = await storefront.customers.login('+1 111-1111'); + login: function (identity, password = null, attributes = {}) { + // handle phone number authentication + if (isPhone(identity)) { + return this.adapter.post('customers/login-with-sms', { phone: identity }); + } + if (!password) { + throw new Error('Login requires password!'); + } + return this.adapter.post('customers/login', { identity, password, ...attributes }).then(this.afterFetch.bind(this)); + }, + // const customer = await storefront.customers.loginWithApple('', '', '', '', ''); + loginWithApple: function (appleUserId, identityToken, authorizationCode, email, name, attributes = {}) { + return this.adapter.post('customers/login-with-apple', { appleUserId, identityToken, authorizationCode, email, name, ...attributes }).then(this.afterFetch.bind(this)); + }, + // const customer = await storefront.customers.loginWithFacebook('', '', '', ''); + loginWithFacebook: function (facebookUserId, email, name, avatarUrl, attributes = {}) { + return this.adapter.post('customers/login-with-facebook', { facebookUserId, email, name, avatarUrl, ...attributes }).then(this.afterFetch.bind(this)); + }, + // const customer = await storefront.customers.loginWithGoogle('', ''); + loginWithGoogle: function (idToken, clientId, attributes = {}) { + return this.adapter.post('customers/login-with-google', { idToken, clientId, ...attributes }).then(this.afterFetch.bind(this)); + }, + verifyCode: function (identity, code, attributes = {}) { + return this.adapter.post('customers/verify-code', { identity, code, ...attributes }).then(this.afterFetch.bind(this)); + }, + requestCreationCode(identity, mode = 'email') { + return this.adapter.post('customers/request-creation-code', { + identity, + mode, + }); + }, + create(identity, code, attributes = {}) { + return this.adapter.post('customers', { identity, code, ...attributes }).then(this.afterFetch.bind(this)); + }, + retrieve: function (id) { + return this.findRecord(id); + }, +}); +class Customer extends StorefrontResource { + constructor(attributes = {}, adapter, options = {}) { + super(attributes, adapter, 'customer', { + actions: customerActions, + ...options, + }); + } + /** + * Set a new adapter to the resource instance, this will update the Store instance + * + * @param {import('@fleetbase/sdk').Adapter} adapter + * @return {this} + */ + setAdapter(adapter) { + this.adapter = adapter; + this.store = new StorefrontStore(this.resource, adapter, { + onAfterFetch: this.syncAttributes.bind(this), + actions: this.options?.actions, + }); + return this; + } + get token() { + const token = this.getAttribute('token'); + return typeof token === 'string' ? token : undefined; + } + async syncDevice(token, platform) { + return this.performAuthorizedRequest('customers/register-device', { token, platform }, 'POST'); + } + performAuthorizedRequest(endpoint, params = {}, method = 'GET', options = {}) { + const requestOptions = { + ...options, + headers: { + ...options.headers, + 'Customer-Token': this.token, + }, + }; + const adapter = this.adapter; + return adapter[method.toLowerCase()](endpoint, params, requestOptions); + } + async getSavedPlaces() { + const places = await this.performAuthorizedRequest('customers/places'); + return new at(places.map((attributes) => new St(attributes, this.adapter))); + } + async getOrderHistory(params = {}) { + const orders = await this.performAuthorizedRequest('customers/orders', params); + return new at(orders.map((attributes) => new xt(attributes, this.adapter))); + } + getStripeEphemeralKey(params = {}) { + return this.performAuthorizedRequest('customers/stripe-ephemeral-key', params, 'POST'); + } + getStripeSetupIntent(params = {}) { + return this.performAuthorizedRequest('customers/stripe-setup-intent', params, 'POST'); + } + startAccountClosure(params = {}, options = {}) { + return this.performAuthorizedRequest('customers/account-closure', params, 'POST', options); + } + confirmAccountClosure(code, params = {}, options = {}) { + return this.performAuthorizedRequest('customers/confirm-account-closure', { code, ...params }, 'POST', options); + } + requestPhoneVerification(phone, params = {}, options = {}) { + return this.performAuthorizedRequest('customers/request-phone-verification', { phone, ...params }, 'POST', options); + } + verifyPhoneNumber(code, phone, params = {}, options = {}) { + return this.performAuthorizedRequest('customers/verify-phone-number', { code, phone, ...params }, 'POST', options); + } + updateContactAlias(attributes = {}, options = {}) { + return this.performAuthorizedRequest(`contacts/${this.id}`, attributes, 'PUT', options).then((response) => { + this.syncAttributes(response); + return this; + }); + } +} +q('resource', 'Customer', Customer); + +const { isArray } = Array; +const cartActions = new mt({ + create: undefined, + findAll: undefined, + query: undefined, + queryRecord: undefined, + add: function (id, productId, quantity = 1, data = {}, options = {}) { + return this.adapter.post(`${this.namespace}/${id}/${productId}`, { ...data, quantity }, options).then(this.afterFetch.bind(this)); + }, + update: function (id, cartItemId, quantity, data = {}, options = {}) { + return this.adapter.put(`${this.namespace}/${id}/${cartItemId}`, { ...data, quantity }, options).then(this.afterFetch.bind(this)); + }, + remove: function (id, cartItemId, options = {}) { + return this.adapter.delete(`${this.namespace}/${id}/${cartItemId}`, {}, options).then(this.afterFetch.bind(this)); + }, + empty: function (id, options = {}) { + return this.adapter.put(`${this.namespace}/${id}/empty`, {}, options).then(this.afterFetch.bind(this)); + }, + retrieve: function (id = '') { + return this.findRecord(id); + }, +}); +class Cart extends StorefrontResource { + constructor(attributes = {}, adapter, options = {}) { + super(attributes, adapter, 'cart', { actions: cartActions, ...options }); + } + add(productId, quantity = 1, data = {}, options = {}) { + if (productId instanceof Product) { + productId = productId.id; + } + return this.store.add(this.id, productId, quantity, data, options); + } + update(cartItemId, quantity, data = {}, options = {}) { + const update = this.store.update; + return update.call(this.store, this.id, cartItemId, quantity, data, options); + } + remove(cartItemId, options = {}) { + return this.store.remove(this.id, cartItemId, options); + } + empty(options = {}) { + return this.store.empty(this.id, options); + } + delete() { + return this.destroy(); + } + refresh() { + return this.store.retrieve(this.id); + } + subtotal() { + return this.contents().reduce((subtotal, cartItem) => subtotal + Number(cartItem?.subtotal || 0), 0); + } + contents() { + const items = this.getAttribute('items', []); + return isArray(items) ? items : []; + } + hasProduct(productId) { + return this.contents().findIndex((cartItem) => cartItem.product_id === productId) !== -1; + } + get isEmpty() { + return this.contents().length === 0; + } + get isNotEmpty() { + return !this.isEmpty; + } +} +q('resource', 'Cart', Cart); + +class Network extends StorefrontResource { + constructor(attributes = {}, adapter, options = {}) { + super(attributes, adapter, 'network', options); + } + getTags(params = {}) { + return this.adapter.get('tags', params); + } + async getResourceCollection(endpoint, ResourceClass, params = {}) { + const resources = await this.adapter.get(endpoint, params); + return new at(resources.map((attributes) => new ResourceClass(attributes, this.adapter))); + } + async getStores(params = {}) { + return this.getResourceCollection('stores', Store, params); + } + async getStoreLocations(params = {}) { + return this.getResourceCollection('store-locations', StoreLocation, params); + } + async getCategories(params = {}) { + return this.getResourceCollection('categories', Category, params); + } + async search(query, params = {}) { + return this.getResourceCollection('search', Product, { query, with_store: true, ...params }); + } + async lookupStore(id) { + const attributes = await this.adapter.get(`lookup/${id}`); + return new Store(attributes, this.adapter); + } + async getReviews(storeId, params = {}) { + return this.getResourceCollection('reviews', Review, { store: storeId, ...params }); + } + async getPaymentGateways(params = {}) { + return this.getResourceCollection('gateways', PaymentGateway, params); + } +} +q('resource', 'Network', Network); + +class DeliveryServiceQuote extends qt { + constructor(attributes = {}, adapter, options = {}) { + let finalAttributes = attributes; + let finalAdapter = adapter; + // If `attributes` is actually an Adapter, adjust the arguments accordingly. + if (attributes instanceof Mt || (attributes && typeof attributes.get === 'function' && typeof attributes.post === 'function')) { + finalAttributes = {}; + finalAdapter = attributes; + } + // Call `super()` exactly once with the resolved arguments. + super(finalAttributes, finalAdapter, 'service-quote', options); + } + /** + * Set a new adapter to the resource instance, this will update the Store instance + * + * @param {Adapter} adapter + * @return {this} + */ + setAdapter(adapter) { + this.adapter = adapter; + this.store = new StorefrontStore(this.resource, adapter, { + onAfterFetch: this.syncAttributes.bind(this), + actions: this.options?.actions, + }); + return this; + } + get formattedAmount() { + const { amount, currency } = this.getAttributes(['amount', 'currency']); + if (isEmpty(amount) || isEmpty(currency)) { + return null; + } + return formatCurrency(amount / 100, currency); + } + async fromCart(...args) { + return this.fetchServiceQuotesFromCart(...args); + } + async fetchServiceQuotesFromCart(origin, destination, cart, config = 'storefront', all = false) { + if (typeof origin === 'object' && origin?.id) { + origin = origin.id; + } + if (typeof destination === 'object' && destination?.id) { + destination = destination.id; + } + if (typeof cart === 'object' && cart?.id) { + cart = cart.id; + } + const serviceQuotes = await this.adapter.get('service-quotes/from-cart', { + origin, + destination, + cart, + config, + all, + }); + if (isArray$1(serviceQuotes)) { + return new at(serviceQuotes.map((serviceQuote) => new DeliveryServiceQuote(serviceQuote, this.adapter))); + } + return new DeliveryServiceQuote(serviceQuotes, this.adapter); + } + static async getFromCart(adapter, origin, destination, cart, config = 'storefront', all = false) { + const quote = new DeliveryServiceQuote(adapter); + return quote.fetchServiceQuotesFromCart(origin, destination, cart, config, all); + } +} +q('resource', 'DeliveryServiceQuote', DeliveryServiceQuote); + +class Order extends xt { + constructor(attributes = {}, adapter, options = {}) { + super(attributes, adapter, options); + } +} +q('resource', 'Order', Order); + +const checkoutActions = new mt({ + create: undefined, + findAll: undefined, + query: undefined, + queryRecord: undefined, + initialize: function (customer, cart, serviceQuote, gateway, orderOptions = {}, options = {}) { + if (wt(customer)) { + customer = customer.id; + } + if (wt(cart)) { + cart = cart.id; + } + if (wt(serviceQuote)) { + serviceQuote = serviceQuote.id; + } + if (wt(gateway)) { + gateway = gateway.getAttribute('code'); + } + return this.adapter.get(`${this.namespace}/before`, { ...orderOptions, customer, cart, serviceQuote, gateway }, options); + }, + captureOrder: function (token, params = {}, options = {}) { + return this.adapter.post(`${this.namespace}/capture`, { token, ...params }, options).then((orderJson) => new Order(orderJson, this.adapter)); + }, + createStripeSetupIntent: function (customer, params = {}, options = {}) { + if (wt(customer)) { + customer = customer.id; + } + return this.adapter.post(`${this.namespace}/stripe-setup-intent`, { customer, ...params }, options); + }, + updateStripePaymentIntent: function (paymentIntent, customer, cart, serviceQuote, orderOptions = {}, options = {}) { + if (wt(customer)) { + customer = customer.id; + } + if (wt(cart)) { + cart = cart.id; + } + if (wt(serviceQuote)) { + serviceQuote = serviceQuote.id; + } + return this.adapter.put(`${this.namespace}/stripe-update-payment-intent`, { paymentIntent, customer, cart, serviceQuote, ...orderOptions }, options); + }, + getStatus: function (checkout, token, options = {}) { + if (wt(checkout)) { + checkout = checkout.id; + } + return this.adapter.get(`${this.namespace}/status`, { checkout, token }, options); + }, + captureQPay: function (checkout, params = {}, options = {}) { + if (wt(checkout)) { + checkout = checkout.id; + } + return this.adapter.post(`${this.namespace}/capture-qpay`, { checkout, ...params }, options); + }, + captureQPayCallback: function (checkout, params = {}, options = {}) { + if (wt(checkout)) { + checkout = checkout.id; + } + return this.adapter.get(`${this.namespace}/capture-qpay`, { checkout, ...params }, options); + }, +}); +class Checkout extends StorefrontResource { + constructor(attributes = {}, adapter, options = {}) { + super(attributes, adapter, 'checkout', { actions: checkoutActions, ...options }); + } + initialize(customer, cart, serviceQuote, gateway, orderOptions = {}, options = {}) { + return this.store.initialize(customer, cart, serviceQuote, gateway, orderOptions, options); + } + captureOrder(token, params = {}, options = {}) { + return this.store.captureOrder(token, params, options); + } + createStripeSetupIntent(customer, params = {}, options = {}) { + return this.store.createStripeSetupIntent(customer, params, options); + } + updateStripePaymentIntent(paymentIntent, customer, cart, serviceQuote, orderOptions = {}, options = {}) { + return this.store.updateStripePaymentIntent(paymentIntent, customer, cart, serviceQuote, orderOptions, options); + } + getStatus(checkout, token, options = {}) { + return this.store.getStatus(checkout, token, options); + } + captureQPay(checkout, params = {}, options = {}) { + return this.store.captureQPay(checkout, params, options); + } + captureQPayCallback(checkout, params = {}, options = {}) { + return this.store.captureQPayCallback(checkout, params, options); + } +} +q('resource', 'Checkout', Checkout); + +class FoodTruck extends StorefrontResource { + constructor(attributes = {}, adapter, options = {}) { + super(attributes, adapter, 'food-truck', options); + } +} +q('resource', 'FoodTruck', FoodTruck); + +function idFor(value) { + return wt(value) ? value.id : value; +} +const orderActions = new mt({ + create: undefined, + update: undefined, + findAll: undefined, + query: undefined, + queryRecord: undefined, + completePickup: function (order, params = {}, options = {}) { + return this.adapter.put(`${this.namespace}/picked-up`, { order: idFor(order), ...params }, options); + }, + getReceipt: function (order, params = {}, options = {}) { + return this.adapter.post(`${this.namespace}/receipt`, { order: idFor(order), ...params }, options); + }, +}); + +/** + * // instance + * const storefront = new Storefront(); + * + */ +class Storefront { + version; + options; + adapter; + products; + categories; + foodTrucks; + reviews; + customers; + cart; + checkout; + orders; + /** + * Builds an instance of the Fleetbase Storefront SDK + * + * @param {String} storeKey The access key for the storefront store + * @param {Object} config The config object + * @param {Boolean} debug Enable debug mode + * @return {Storefront} Instance + */ + constructor(storeKey, config = {}, debug = false) { + this.version = config.version || 'v1'; + this.options = { + version: this.version, + host: config.host || 'https://api.fleetbase.io', + namespace: config.namespace || `storefront/${this.version}`, + publicKey: storeKey, + debug, + }; + if (!isKeyValid(storeKey)) { + throw new Error('⚠️ Invalid Storefront key given to Storefront SDK'); + } + this.adapter = config.adapter || ht(this.options); + this.initializeStores(); + } + initializeStores() { + this.products = new StorefrontStore('product', this.adapter); + this.categories = new StorefrontStore('category', this.adapter); + this.foodTrucks = new StorefrontStore('food-truck', this.adapter); + this.reviews = new StorefrontStore('review', this.adapter).extendActions(reviewActions); + this.customers = new StorefrontStore('customer', this.adapter).extendActions(customerActions); + this.cart = new StorefrontStore('cart', this.adapter).extendActions(cartActions); + this.checkout = new StorefrontStore('checkout', this.adapter).extendActions(checkoutActions); + this.orders = new StorefrontStore('order', this.adapter).extendActions(orderActions); + return this; + } + /** + * Loads information about this storefront. + * + * @param {{ resource?: boolean }} options + * @returns {Promise | Store | Network>} + */ + about(options = {}) { + return this.adapter.get('about').then((attributes) => (options.resource ? this.hydrateOwner(attributes) : attributes)); + } + /** @returns {Promise} Loads the storefront owner as a typed resource. */ + getOwner() { + return this.about({ resource: true }); + } + /** + * Looks up a specific store or network by public ID. + * + * @param {string} id + * @param {{ resource?: boolean }} options + * @returns {Promise | Store | Network>} + */ + lookup(id, options = {}) { + return this.adapter.get(`lookup/${id}`).then((attributes) => (options.resource ? this.hydrateOwner(attributes) : attributes)); + } + /** + * @param {string} id + * @returns {Promise} + */ + lookupResource(id) { + return this.lookup(id, { resource: true }); + } + /** + * Searches products in the current store or network. + * + * @param {string} query + * @param {Record} options + * @returns {Promise>} + */ + search(query, options = {}) { + return this.adapter.get('search', { query, ...options }).then((products) => { + return new at(products.map((product) => new Product(product, this.adapter))); + }); + } + hydrateOwner(attributes = {}) { + if (attributes?.is_network === true) { + return new Network(attributes, this.adapter); + } + return new Store(attributes, this.adapter); + } + static newInstance(...args) { + return new Storefront(...args); + } + setAdapter(adapter) { + this.adapter = adapter; + return this.initializeStores(); + } + getAdapter() { + return this.adapter; + } +} + +export { Cart, Category, Checkout, Customer, DeliveryServiceQuote, FoodTruck, Network, Order, PaymentGateway, Product, Review, Store, StoreHour, StoreLocation, Storefront as default, W as lookup }; //# sourceMappingURL=storefront.js.map diff --git a/dist/esm/storefront.js.map b/dist/esm/storefront.js.map index 2681bc8..8f642a8 100644 --- a/dist/esm/storefront.js.map +++ b/dist/esm/storefront.js.map @@ -1 +1 @@ -{"version":3,"file":"storefront.js","sources":["../../node_modules/.pnpm/@fleetbase+sdk@1.2.13/node_modules/@fleetbase/sdk/dist/esm/fleetbase.js","../../src/store.js","../../src/utils/format-currency.js","../../src/utils/is-empty.js","../../src/utils/array.js","../../src/resource.js","../../src/resources/review.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constants.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constructFrom.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/toDate.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addDays.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/defaultOptions.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfWeek.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfISOWeek.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISOWeekYear.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfDay.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInCalendarDays.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/normalizeDates.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isValid.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isDate.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatDistance.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildFormatLongFn.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatLong.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatRelative.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildLocalizeFn.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchFn.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/match.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/localize.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDayOfYear.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfYear.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISOWeek.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfISOWeekYear.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getWeekYear.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getWeek.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfWeekYear.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/addLeadingZeros.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/lightFormatters.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/formatters.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/longFormatters.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/protectedTokens.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/format.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/Setter.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/transpose.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/Parser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/EraParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/constants.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/utils.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/YearParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/QuarterParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/MonthParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setWeek.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setISOWeek.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DateParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setDay.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DayParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setISODay.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISODay.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISODayParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/AMPMParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/MinuteParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/SecondParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse.js","../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDefaultOptions.js","../../src/resources/store-hour.js","../../src/resources/store-location.js","../../src/resources/payment-gateway.js","../../src/resources/store.js","../../src/resources/product.js","../../src/resources/category.js","../../src/resources/customer.js","../../src/utils/is-phone.js","../../src/resources/cart.js","../../src/resources/network.js","../../src/resources/delivery-service-quote.js","../../src/resources/checkout.js","../../src/resources/food-truck.js","../../src/storefront.js","../../src/utils/is-key-valid.js"],"sourcesContent":["function t(t,e){this.v=t,this.k=e}function e(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,a=!0,s=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function g(t,e,n){return(e=j(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function y(t){return y=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},y(t)}function b(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,\"prototype\",{writable:!1}),e&&O(t,e)}function m(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(m=function(){return!!t})()}function w(t){if(\"undefined\"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t[\"@@iterator\"])return Array.from(t)}function k(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}function E(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function A(t){for(var e=1;e=0;--o){var a=this.tryEntries[o],s=a.completion;if(\"root\"===a.tryLoc)return i(\"end\");if(a.tryLoc<=this.prev){var u=r.call(a,\"catchLoc\"),c=r.call(a,\"finallyLoc\");if(u&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,\"finallyLoc\")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),_(n),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var i=r.arg;_(n)}return i}}throw Error(\"illegal catch attempt\")},delegateYield:function(e,n,r){return this.delegate={iterator:L(e),resultName:n,nextLoc:r},\"next\"===this.method&&(this.arg=t),g}},e}function O(t,e){return O=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},O(t,e)}function R(t,e){return n(t)||function(t,e){var n=null==t?null:\"undefined\"!=typeof Symbol&&t[Symbol.iterator]||t[\"@@iterator\"];if(null!=n){var r,i,o,a,s=[],u=!0,c=!1;try{if(o=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=o.call(n)).done)&&(s.push(r.value),s.length!==e);u=!0);}catch(t){c=!0,i=t}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw i}}return s}}(t,e)||_(t,e)||k()}function S(t){return function(t){if(Array.isArray(t))return e(t)}(t)||w(t)||_(t)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function j(t){var e=function(t,e){if(\"object\"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||\"default\");if(\"object\"!=typeof r)return r;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===e?String:Number)(t)}(t,\"string\");return\"symbol\"==typeof e?e:e+\"\"}function T(t){return T=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},T(t)}function _(t,n){if(t){if(\"string\"==typeof t)return e(t,n);var r={}.toString.call(t).slice(8,-1);return\"Object\"===r&&t.constructor&&(r=t.constructor.name),\"Map\"===r||\"Set\"===r?Array.from(t):\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?e(t,n):void 0}}function P(t){return function(){return new L(t.apply(this,arguments))}}function L(e){var n,r;function i(n,r){try{var a=e[n](r),s=a.value,u=s instanceof t;Promise.resolve(u?s.v:s).then((function(t){if(u){var r=\"return\"===n?\"return\":\"next\";if(!s.k||t.done)return i(r,t);t=e[r](t).value}o(a.done?\"return\":\"normal\",t)}),(function(t){i(\"throw\",t)}))}catch(t){o(\"throw\",t)}}function o(t,e){switch(t){case\"return\":n.resolve({value:e,done:!0});break;case\"throw\":n.reject(e);break;default:n.resolve({value:e,done:!1})}(n=n.next)?i(n.key,n.arg):r=null}this._invoke=function(t,e){return new Promise((function(o,a){var s={key:t,arg:e,resolve:o,reject:a,next:null};r?r=r.next=s:(n=r=s,i(t,e))}))},\"function\"!=typeof e.return&&(this.return=void 0)}function C(t){var e=\"function\"==typeof Map?new Map:void 0;return C=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf(\"[native code]\")}catch(e){return\"function\"==typeof t}}(t))return t;if(\"function\"!=typeof t)throw new TypeError(\"Super expression must either be null or a function\");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return f(t,arguments,y(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),O(n,t)},C(t)}L.prototype[\"function\"==typeof Symbol&&Symbol.asyncIterator||\"@@asyncIterator\"]=function(){return this},L.prototype.next=function(t){return this._invoke(\"next\",t)},L.prototype.throw=function(t){return this._invoke(\"throw\",t)},L.prototype.return=function(t){return this._invoke(\"return\",t)};var N=function(){function t(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];h(this,t),g(this,\"uncountableWords\",[\"equipment\",\"information\",\"rice\",\"money\",\"species\",\"series\",\"fish\",\"sheep\",\"moose\",\"deer\",\"news\"]),g(this,\"pluralRules\",[[new RegExp(\"(m)an$\",\"gi\"),\"$1en\"],[new RegExp(\"(pe)rson$\",\"gi\"),\"$1ople\"],[new RegExp(\"(child)$\",\"gi\"),\"$1ren\"],[new RegExp(\"^(ox)$\",\"gi\"),\"$1en\"],[new RegExp(\"(ax|test)is$\",\"gi\"),\"$1es\"],[new RegExp(\"(octop|vir)us$\",\"gi\"),\"$1i\"],[new RegExp(\"(alias|status)$\",\"gi\"),\"$1es\"],[new RegExp(\"(bu)s$\",\"gi\"),\"$1ses\"],[new RegExp(\"(buffal|tomat|potat)o$\",\"gi\"),\"$1oes\"],[new RegExp(\"([ti])um$\",\"gi\"),\"$1a\"],[new RegExp(\"sis$\",\"gi\"),\"ses\"],[new RegExp(\"(?:([^f])fe|([lr])f)$\",\"gi\"),\"$1$2ves\"],[new RegExp(\"(hive)$\",\"gi\"),\"$1s\"],[new RegExp(\"([^aeiouy]|qu)y$\",\"gi\"),\"$1ies\"],[new RegExp(\"(x|ch|ss|sh)$\",\"gi\"),\"$1es\"],[new RegExp(\"(matr|vert|ind)ix|ex$\",\"gi\"),\"$1ices\"],[new RegExp(\"([m|l])ouse$\",\"gi\"),\"$1ice\"],[new RegExp(\"(quiz)$\",\"gi\"),\"$1zes\"],[new RegExp(\"s$\",\"gi\"),\"s\"],[new RegExp(\"$\",\"gi\"),\"s\"]]),g(this,\"singularRules\",[[new RegExp(\"(m)en$\",\"gi\"),\"$1an\"],[new RegExp(\"(pe)ople$\",\"gi\"),\"$1rson\"],[new RegExp(\"(child)ren$\",\"gi\"),\"$1\"],[new RegExp(\"([ti])a$\",\"gi\"),\"$1um\"],[new RegExp(\"((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$\",\"gi\"),\"$1$2sis\"],[new RegExp(\"(hive)s$\",\"gi\"),\"$1\"],[new RegExp(\"(tive)s$\",\"gi\"),\"$1\"],[new RegExp(\"(curve)s$\",\"gi\"),\"$1\"],[new RegExp(\"([lr])ves$\",\"gi\"),\"$1f\"],[new RegExp(\"([^fo])ves$\",\"gi\"),\"$1fe\"],[new RegExp(\"([^aeiouy]|qu)ies$\",\"gi\"),\"$1y\"],[new RegExp(\"(s)eries$\",\"gi\"),\"$1eries\"],[new RegExp(\"(m)ovies$\",\"gi\"),\"$1ovie\"],[new RegExp(\"(x|ch|ss|sh)es$\",\"gi\"),\"$1\"],[new RegExp(\"([m|l])ice$\",\"gi\"),\"$1ouse\"],[new RegExp(\"(bus)es$\",\"gi\"),\"$1\"],[new RegExp(\"(o)es$\",\"gi\"),\"$1\"],[new RegExp(\"(shoe)s$\",\"gi\"),\"$1\"],[new RegExp(\"(cris|ax|test)es$\",\"gi\"),\"$1is\"],[new RegExp(\"(octop|vir)i$\",\"gi\"),\"$1us\"],[new RegExp(\"(alias|status)es$\",\"gi\"),\"$1\"],[new RegExp(\"^(ox)en\",\"gi\"),\"$1\"],[new RegExp(\"(vert|ind)ices$\",\"gi\"),\"$1ex\"],[new RegExp(\"(matr)ices$\",\"gi\"),\"$1ix\"],[new RegExp(\"(quiz)zes$\",\"gi\"),\"$1\"],[new RegExp(\"s$\",\"gi\"),\"\"]]),g(this,\"nonTitlecasedWords\",[\"and\",\"or\",\"nor\",\"a\",\"an\",\"the\",\"so\",\"but\",\"to\",\"of\",\"at\",\"by\",\"from\",\"into\",\"on\",\"onto\",\"off\",\"out\",\"in\",\"over\",\"with\",\"for\"]),g(this,\"idSuffix\",new RegExp(\"(_ids|_id)$\",\"g\")),g(this,\"underbar\",new RegExp(\"_\",\"g\")),g(this,\"spaceOrUnderbar\",new RegExp(\"[ _]\",\"g\")),g(this,\"uppercase\",new RegExp(\"([A-Z])\",\"g\")),g(this,\"underbarPrefix\",new RegExp(\"^_\")),this.str=e,this.chain=n}return v(t,[{key:\"get\",value:function(){return this.str}},{key:\"applyRules\",value:function(t,e,n,r){if(r)t=r;else if(!(n.indexOf(t.toLowerCase())>-1))for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:null;return t=t||this.str,this.applyRules(t,this.pluralRules,this.uncountableWords,e)}},{key:\"singularize\",value:function(t,e){return t=t||this.str,this.applyRules(t,this.singularRules,this.uncountableWords,e)}},{key:\"camelize\",value:function(t,e){for(var n=(t=t||this.str).split(\"/\"),r=0;r1&&void 0!==arguments[1]&&arguments[1];return t=t||this.str,t=this.underscore(this.demodulize(t))+(e?\"\":\"_\")+\"id\",this.str=t,!0===this.chain?this:t}},{key:\"ordinalize\",value:function(t){for(var e=(t=t||this.str).split(\" \"),n=0;n2?i-2:0),a=2;a2?n-2:0),i=2;i2?n-2:0),i=2;i2?n-2:0),i=2;i1?e-1:0),r=1;r3&&void 0!==arguments[3]?arguments[3]:[];if(V(t))if(r.length<=X)t.splice.apply(t,[e,n].concat(S(r)));else{t.splice(e,n);for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:0,r=t.length,i=n;i2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3?arguments[3]:void 0,i=t.length;return n<0&&(n+=i),nt(t,r&&e!=e?function(t){return t!=t}:function(t){return t===e},n)}function it(t,e,n){return Q(t,e,0,[n]),n}function ot(){return f(at,Array.prototype.slice.call(arguments))}var at=function(){function t(){return h(this,t),r(V(arguments[0])?l(this,t,S(arguments[0])):l(this,t,arguments))}return b(t,C(Array)),v(t,[{key:\"notEmpty\",get:function(){return this.length>0}},{key:\"empty\",get:function(){return 0===this.length}},{key:\"first\",get:function(){return tt(this,0)}},{key:\"last\",get:function(){return tt(this,this.length-1)}},{key:\"replace\",value:function(t,e){return Q(this,t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:[]),this}},{key:\"objectsAt\",value:function(t){var e=this;return t.map((function(t){return tt(e,t)}))}},{key:\"objectAt\",value:function(t){return tt(this,t)}},{key:\"indexOf\",value:function(t,e){return rt(this,t,e,!1)}},{key:\"lastIndexOf\",value:function(t,e){var n=this.length;(void 0===e||e>=n)&&(e=n-1),e<0&&(e+=n);for(var r=e;r>=0;r--)if(tt(this,r)===t)return r;return-1}},{key:\"includes\",value:function(t,e){return-1!==rt(this,t,e,!0)}},{key:\"findBy\",value:function(){return t=this,e=et.apply(void 0,arguments),-1===(r=nt(t,e.bind(n),0))?void 0:tt(t,r);var t,e,n,r}},{key:\"findIndexBy\",value:function(){return nt(this,et.apply(void 0,arguments))}},{key:\"isEvery\",value:function(){return t=this,e=et.apply(void 0,arguments),r=e.bind(n),-1===nt(t,(function(t,e,n){return!r(t,e,n)}),0);var t,e,n,r}},{key:\"isAny\",value:function(){return t=this,e=et.apply(void 0,arguments),-1!==nt(t,e.bind(n),0);var t,e,n}},{key:\"invoke\",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:Y,n=[],r=new Set,i=\"function\"==typeof e?e:function(t){return get(t,e)};return t.forEach((function(t){var e=i(t);r.has(e)||(r.add(e),n.push(t))})),n}(this,t)}},{key:\"without\",value:function(t){if(!this.includes(t))return this;var e=t==t?function(e){return e!==t}:function(t){return t==t};return this.filter(e)}},{key:\"clear\",value:function(){var t=this.length;return 0===t||this.replace(0,t,[]),this}},{key:\"insertAt\",value:function(t,e){return it(this,t,e),this}},{key:\"replaceAt\",value:function(t,e){return this.replace(t,1,[e])}},{key:\"removeAt\",value:function(t,e){return function(t,e){return Q(t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,[]),t}(this,t,e)}},{key:\"pushObject\",value:function(t){return this.insertAt(this.length,t)}},{key:\"pushObjects\",value:function(t){return this.replace(this.length,0,t),this}},{key:\"popObject\",value:function(){var t=this.length;if(0===t)return null;var e=tt(this,t-1);return this.removeAt(t-1,1),e}},{key:\"shiftObject\",value:function(){if(0===this.length)return null;var t=tt(this,0);return this.removeAt(0),t}},{key:\"unshiftObject\",value:function(t){return it(this,0,t)}},{key:\"unshiftObjects\",value:function(t){return this.replace(0,0,t),this}},{key:\"reverseObjects\",value:function(){var t=this.length;if(0===t)return this;var e=this.toArray().reverse();return this.replace(0,t,e),this}},{key:\"setObjects\",value:function(t){if(0===t.length)return this.clear();var e=this.length;return this.replace(0,e,t),this}},{key:\"removeObject\",value:function(t){for(var e=this.length||0;--e>=0;){tt(this,e)===t&&this.removeAt(e)}return this}},{key:\"removeObjects\",value:function(t){for(var e=t.length-1;e>=0;e--)this.removeObject(t[e]);return this}},{key:\"addObject\",value:function(t){return this.includes(t)||this.pushObject(t),this}},{key:\"addObjects\",value:function(t){var e=this;return t.forEach((function(t){return e.addObject(t)})),this}}])}();function st(t){var e=null==t;if(e)return e;if(\"number\"==typeof t.size)return!t.size;var n=T(t);if(\"object\"===n){var r=t.size;if(\"number\"==typeof r)return!r}if(\"number\"==typeof t.length&&\"function\"!==n)return!t.length;if(\"object\"===n){var i=t.length;if(\"number\"==typeof i)return!i}return!1}function ut(t){return isFinite(t)&&Math.abs(t)<=90}function ct(t){return isFinite(t)&&Math.abs(t)<=180&&Math.abs(t)>=90}function lt(){var t,e,n;return!(\"undefined\"==typeof process||\"object\"!==T(null===(t=process)||void 0===t?void 0:t.env)&&-1===(null===(e=process.release)||void 0===e||null===(e=e.name)||void 0===e?void 0:e.search(/node|io.js/))||\"undefined\"!=typeof window&&\"ReactNative\"!==(null===(n=window)||void 0===n||null===(n=n.navigator)||void 0===n?void 0:n.product))}function ht(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return lt()?W(\"adapter\",\"NodeAdapter\",t):W(\"adapter\",\"BrowserAdapter\",t)}var ft=function(){return v((function t(e){h(this,t),this.place=e,this.geometry=null==e?void 0:e.geometry,this.components=this.parseComponents(),this.attributes=this.parseProperties()}),[{key:\"parse\",value:function(){this.parseComponents(),this.parseProperties()}},{key:\"parseComponents\",value:function(){var t;return((null===(t=this.place)||void 0===t?void 0:t.address_components)||[]).reduce((function(t,e){return e.types.forEach((function(n){t[n]=e})),t}),{})}},{key:\"parseProperties\",value:function(){var t,e={streetNumber:this.get(\"street_number\"),streetName:this.get(\"route\"),coordinates:null!==(t=this.geometry)&&void 0!==t&&t.location?Object.values(this.geometry.location):[0,0],city:this.or([\"locality\",\"sublocality\",\"sublocality_level_1\",\"neighborhood\",\"administrative_area_level_3\",\"administrative_area_level_2\"]),county:this.get(\"administrative_area_level_2\"),stateShort:this.get(\"administrative_area_level_1\",!0),stateLong:this.get(\"administrative_area_level_1\"),countryShort:this.get(\"country\",!0),country:this.get(\"country\",!0),countryLong:this.get(\"country\"),postalCode:this.get(\"postal_code\")};return e.address=[e.streetNumber,e.streetName].filter(Boolean).join(\" \"),e}},{key:\"all\",value:function(){return this.attributes}},{key:\"or\",value:function(){var t,e=p(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]);try{for(e.s();!(t=e.n()).done;){var n=t.value;if(V(n)){var r=n[0],i=n[1];if(this.has(r))return this.get(r,i)}else if(this.has(n))return this.get(n)}}catch(t){e.e(t)}finally{e.f()}return null}},{key:\"has\",value:function(t){return t in this.components}},{key:\"get\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t in this.components?e?this.components[t].short_name:this.components[t].long_name:null}},{key:\"setAttributes\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.attributes=A(A({},this.attributes),t),this}},{key:\"setAttribute\",value:function(t,e){return this.attributes[t]=e,this}},{key:\"getAttribute\",value:function(t){return this.attributes[t]||null}}])}(),dt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;h(this,t),this.type=\"Point\",this.coordinates=[n,e]}return v(t,[{key:\"latitude\",get:function(){return this.coordinates[1]}},{key:\"longitude\",get:function(){return this.coordinates[0]}},{key:\"lat\",value:function(){return this.latitude}},{key:\"lng\",value:function(){return this.longitude}},{key:\"serialize\",value:function(){return{type:\"Point\",coorindates:[this.lat(),this.lng()]}}},{key:\"toJson\",value:function(){return this.serialize()}},{key:\"toString\",value:function(){return\"(\".concat(this.latitude,\", \").concat(this.longitude,\")\")}}],[{key:\"fromGeoJson\",value:function(e){var n=R(e.coordinates,2),r=n[0];return new t(n[1],r)}}])}();function vt(t,e){var n=t();return Array.isArray(n)||\"object\"===T(n)?pt(n,e):null}function pt(t,e){var n,r=t,i=T(t),o=\"object\"===i,a=\"function\"===i,s=Array.isArray(t),u=\"string\"===T(e)&&e.includes(\".\")?e.split(\".\"):[e];if(s||o){for(var c=0;c1&&void 0!==arguments[1]?arguments[1]:[];if(t.actions=V(e)?e:[e],!V(e))return e instanceof mt&&e.extend(t),t;var n,r=p(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;t.extendActions(i)}}catch(t){r.e(t)}finally{r.f()}}function bt(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;h(this,t),this.actions=e,this.bind=n}),[{key:\"extend\",value:function(){var t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||this.bind;if(!t)return this;if(null!=this&&this.actions&&\"object\"===T(this.actions))for(var e in this.actions){var n=this.actions[e];\"function\"==typeof n?gt(t,e,n.bind(t)):gt(t,e,n)}return this}}])}();function wt(t){return t instanceof kt}var kt=function(){return v((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};h(this,t),this.attributes=e,this.dirtyAttributes={},this.changes={},this.isLoading=!1,this.isSaving=!1,this.isDestroying=!1,this.isReloading=!1,this.resource=r,this.options=i,this.version=i.version||\"v1\",this.setAdapter(n)}),[{key:\"setAdapter\",value:function(t){var e;return this.adapter=t,this.store=M(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:\"id\",get:function(){return this.getAttribute(\"id\")}},{key:\"create\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.mergeAttributes(e);return this.setFlags([\"isLoading\",\"isSaving\"]),this.store.create(n).then((function(e){return t.setFlags([\"isLoading\",\"isSaving\"],!1),e}))}},{key:\"update\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setFlags([\"isLoading\",\"isSaving\"]),this.store.update(this.attributes.id,e).then((function(e){return t.setFlags([\"isLoading\",\"isSaving\"],!1),e}))}},{key:\"destroy\",value:function(){var t=this;return this.setFlags([\"isLoading\",\"isDestroying\"]),this.store.destroy(this.attributes.id).then((function(e){return t.setFlags([\"isLoading\",\"isDestroying\"],!1),e}))}},{key:\"reload\",value:function(){var t=this;return this.setFlags([\"isLoading\",\"isReloading\"]),this.store.findRecord(this.attributes.id).then((function(e){return t.reset(),e}))}},{key:\"setFlags\",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=[\"isLoading\",\"isSaving\",\"isReloading\",\"isDestroying\"],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=this.getAttributes();return st(this.id)?this.create(e):!0===t.onlyDirty?this.savedirty():this.update(e)}},{key:\"saveDirty\",value:function(){for(var t=Object.keys(this.dirtyAttributes),e={},n=0;n0}},{key:\"mutate\",value:function(t,e){this.attributes[t]=e}},{key:\"setAttribute\",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null===n&&\"object\"===T(t))return this.setAttributes(t);var r=null!==(e=null==this?void 0:this.attributes[t])&&void 0!==e?e:null;return gt(this.attributes,t,n),gt(this.dirtyAttributes,t,r),V(null==this?void 0:this.changes[t])||(this.changes[t]=[]),this.changes[t].push({property:t,previousValue:r,value:n,changedAt:new Date}),this}},{key:\"setAttributes\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var e in t)this.setAttribute(e,t[e]);return this}},{key:\"getAttribute\",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=pt(null!==(e=null==this?void 0:this.attributes)&&void 0!==e?e:{},t);return void 0===r?n:r}},{key:\"hasAttribute\",value:function(t){if(V(t)){var e,n=t,r=Object.keys(null!==(e=this.attributes)&&void 0!==e?e:{});return n.every((function(t){return r.includes(t)}))}return!(null==this||!this.attributes)&&t in this.attributes}},{key:\"hasAttributes\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.hasAttribute(t)}},{key:\"isAttributeFilled\",value:function(t){var e=this;return V(t)?this.hasAttribute(t)&&t.every((function(t){return!st(e.getAttribute(t))})):this.hasAttribute(t)&&!st(this.getAttribute(t))}},{key:\"getAttributes\",value:function(t){var e={};if(null==t)return this.getAttributes(Object.keys(this.attributes));if(\"string\"==typeof t)return this.getAttribute(Array.prototype.slice.call(arguments));if(!V(t))throw new Error(\"No attribute properties provided!\");var n,r=p(t);try{for(r.s();!(n=r.n()).done;){var i,o,a=n.value;if(\"string\"==typeof a){var s=this.getAttribute(a);\"object\"!==T(null===(i=s)||void 0===i?void 0:i.attributes)||V(null===(o=s)||void 0===o?void 0:o.attributes)||(s=s.attributes),e[a]=s}}}catch(t){r.e(t)}finally{r.f()}return e}},{key:\"serialize\",value:function(){return this.getAttributes()}},{key:\"mergeAttributes\",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=null!==(t=null==this?void 0:this.attributes)&&void 0!==t?t:{};return this.attributes=A(A({},n),e),this.attributes}},{key:\"syncAttributes\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attributes=t}}])}();q(\"resource\",\"Resource\",kt);var Et=function(){return v((function t(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};h(this,t),this.resource=e,this.adapter=n||ht(),this.namespace=F(e),this.storage=ot(),this.options=r,this.extendActions(r.actions)}),[{key:\"extendActions\",value:function(){return yt(this,arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])}},{key:\"deposit\",value:function(t){return t}},{key:\"serialize\",value:function(t){return W(\"resource\",z(this.resource),t,this.adapter)}},{key:\"afterFetch\",value:function(t){return function(t,e){if(\"function\"==typeof t.options.onAfterFetch&&t.options.onAfterFetch(e),V(e)){var n,r=[],i=p(e);try{for(i.s();!(n=i.n()).done;){var o=n.value;r.push(t.afterFetch(o))}}catch(t){i.e(t)}finally{i.f()}return ot.apply(void 0,r)}var a=t.serialize(e);return t.deposit(a)}(this,t)}},{key:\"create\",value:(a=u(x().mark((function t(){var e,n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=4,this.adapter.post(\"\".concat(this.namespace),e,n);case 4:return r=t.sent,t.abrupt(\"return\",this.afterFetch(r));case 6:case\"end\":return t.stop()}}),t,this)}))),function(){return a.apply(this,arguments)})},{key:\"update\",value:(o=u(x().mark((function t(e){var n,r,i,o=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=o.length>1&&void 0!==o[1]?o[1]:{},r=o.length>2&&void 0!==o[2]?o[2]:{},t.next=4,this.adapter.put(\"\".concat(this.namespace,\"/\").concat(e),n,r);case 4:return i=t.sent,t.abrupt(\"return\",this.afterFetch(i));case 6:case\"end\":return t.stop()}}),t,this)}))),function(t){return o.apply(this,arguments)})},{key:\"findRecord\",value:(i=u(x().mark((function t(e){var n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=3,this.adapter.get(\"\".concat(this.namespace,\"/\").concat(e),{},n);case 3:return r=t.sent,t.abrupt(\"return\",this.afterFetch(r));case 5:case\"end\":return t.stop()}}),t,this)}))),function(t){return i.apply(this,arguments)})},{key:\"findAll\",value:(r=u(x().mark((function t(){var e,n,r=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=r.length>0&&void 0!==r[0]?r[0]:{},t.next=3,this.adapter.get(\"\".concat(this.namespace),{},e);case 3:return n=t.sent,t.abrupt(\"return\",this.afterFetch(n));case 5:case\"end\":return t.stop()}}),t,this)}))),function(){return r.apply(this,arguments)})},{key:\"query\",value:(n=u(x().mark((function t(){var e,n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=4,this.adapter.get(\"\".concat(this.namespace),e,n);case 4:return r=t.sent,t.abrupt(\"return\",this.afterFetch(r));case 6:case\"end\":return t.stop()}}),t,this)}))),function(){return n.apply(this,arguments)})},{key:\"queryRecord\",value:(e=u(x().mark((function t(){var e,n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},(e=i.length>0&&void 0!==i[0]?i[0]:{}).single=!0,t.next=5,this.adapter.get(\"\".concat(this.namespace),e,n);case 5:return r=t.sent,t.abrupt(\"return\",this.afterFetch(r));case 7:case\"end\":return t.stop()}}),t,this)}))),function(){return e.apply(this,arguments)})},{key:\"destroy\",value:(t=u(x().mark((function t(e){var n,r,i,o=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=o.length>1&&void 0!==o[1]?o[1]:{},r=wt(e)?e.getAttribute(\"id\"):e,t.next=4,this.adapter.delete(\"\".concat(this.namespace,\"/\").concat(r),{},n);case 4:return i=t.sent,t.abrupt(\"return\",this.afterFetch(i));case 6:case\"end\":return t.stop()}}),t,this)}))),function(e){return t.apply(this,arguments)})}]);var t,e,n,r,i,o,a}();q(\"store\",\"Store\",Et);var At=new mt({getDistanceAndTime:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get(\"\".concat(this.namespace,\"/\").concat(t,\"/distance-and-time\"),e,n)},getNextActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get(\"\".concat(this.namespace,\"/\").concat(t,\"/next-activity\"),e,n)},dispatch:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/dispatch\"),e,n).then(this.afterFetch.bind(this))},start:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/start\"),e,n).then(this.afterFetch.bind(this))},updateActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/update-activity\"),e,n).then(this.afterFetch.bind(this))},setDestination:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return wt(e)&&(e=e.id),this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/set-destination/\").concat(e),n,r).then(this.afterFetch.bind(this))},captureQrCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return wt(e)&&(e=e.id),this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/capture-qr\").concat(e?\"/\"+e:\"\"),n,r)},captureSignature:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return wt(e)&&(e=e.id),this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/capture-signature\").concat(e?\"/\"+e:\"\"),n,r)},complete:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/complete\"),e,n).then(this.afterFetch.bind(this))},cancel:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete(\"\".concat(this.namespace,\"/\").concat(t,\"/cancel\"),e,n).then(this.afterFetch.bind(this))}}),xt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"order\",A({actions:At},r)])}return b(t,kt),v(t,[{key:\"getDistanceAndTime\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getDistanceAndTime(this.id,t,e)}},{key:\"dispatch\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.dispatch(this.id,t,e)}},{key:\"start\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.start(this.id,t,e)}},{key:\"setDestination\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.setDestination(this.id,t,e,n)}},{key:\"captureQrCode\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureQrCode(this.id,t,e,n)}},{key:\"captureSignature\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureSignature(this.id,t,e,n)}},{key:\"getNextActivity\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getNextActivity(this.id,t,e)}},{key:\"updateActivity\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.updateActivity(this.id,t,e)}},{key:\"cancel\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.cancel(this.id,t,e)}},{key:\"complete\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.complete(this.id,t,e)}},{key:\"isDispatched\",get:function(){return null!==this.getAttribute(\"dispatched_at\")}},{key:\"isNotDispatched\",get:function(){return null==this.getAttribute(\"dispatched_at\")}},{key:\"isStarted\",get:function(){return null!==this.getAttribute(\"started_at\")}},{key:\"isNotStarted\",get:function(){return null==this.getAttribute(\"started_at\")}},{key:\"isCompleted\",get:function(){return\"completed\"==this.getAttribute(\"status\")}},{key:\"isCanceled\",get:function(){return\"canceled\"==this.getAttribute(\"status\")}},{key:\"isEnroute\",get:function(){return\"driver_enroute\"==this.getAttribute(\"status\")||\"enroute\"===this.getAttribute(\"status\")}},{key:\"isInProgress\",get:function(){return this.isStarted&&!this.isCanceled&&!this.isCompleted}},{key:\"scheduledAt\",get:function(){return this.isAttributeFilled(\"scheduled_at\")?new Date(this.getAttribute(\"scheduled_at\")):null}},{key:\"startedAt\",get:function(){return this.isAttributeFilled(\"started_at\")?new Date(this.getAttribute(\"started_at\")):null}},{key:\"dispatchedAt\",get:function(){return this.isAttributeFilled(\"dispatched_at\")?new Date(this.getAttribute(\"dispatched_at\")):null}},{key:\"status\",get:function(){return this.getAttribute(\"status\")}}])}();q(\"resource\",\"Order\",xt);var Ot=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"payload\",r])}return b(t,kt),v(t,[{key:\"attach\",value:function(t){}},{key:\"entities\",get:function(){var t=this;return ot(this.entities.map((function(e){return G(\"Entity\",e,t.adapter)})))}},{key:\"dropoff\",get:function(){return this.dropoff?G(\"Place\",this.dropoff,this.adapter):null}},{key:\"pickup\",get:function(){return this.pickup?G(\"Place\",this.pickup,this.adapter):null}},{key:\"waypoints\",get:function(){var t=this;return ot(this.waypoints.map((function(e){return G(\"Waypoint\",e,t.adapter)})))}}])}();q(\"resource\",\"Payload\",Ot);var Rt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"entity\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Entity\",Rt);var St=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"place\",r])}return b(t,kt),v(t,[{key:\"latitude\",get:function(){var t;return null===(t=this.getAttribute(\"location\",new dt))||void 0===t?void 0:t.coordinates[1]}},{key:\"longitude\",get:function(){var t;return null===(t=this.getAttribute(\"location\",new dt))||void 0===t?void 0:t.coordinates[0]}},{key:\"coordinates\",get:function(){return[this.latitude,this.longitude]}},{key:\"setOwner\",value:function(t){return wt(t)&&this.setAttribute(\"owner\",t.id),\"string\"==typeof t&&this.setAttribute(\"owner\",t),this}}],[{key:\"fromGoogleAddress\",value:function(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=R(e.getAttribute(\"coordinates\"),2),o=i[0],a=i[1];return new t({name:null,address:e.getAttribute(\"address\"),location:new dt(o,a),street1:e.getAttribute(\"address\"),street2:null,city:e.getAttribute(\"city\"),province:e.getAttribute(\"stateLong\"),postal_code:e.getAttribute(\"postalCode\"),neighborhood:e.get(\"neighborhood\"),district:e.getAttribute(\"county\"),building:e.get(\"building\"),country:e.getAttribute(\"countryShort\"),phone:null,security_access_code:null},n,r)}}])}();q(\"resource\",\"Place\",St);var jt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"waypoint\",r])}return b(t,St),v(t)}();q(\"resource\",\"Waypoint\",jt);var Tt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"tracking-status\",r])}return b(t,kt),v(t)}();q(\"resource\",\"TrackingStatus\",Tt);var _t=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"vehicle\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Vehicle\",_t);var Pt=new mt({current:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.get(\"\".concat(this.namespace,\"/current\"),t,e)}}),Lt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"organization\",A({actions:Pt},r)])}return b(t,kt),v(t)}();q(\"resource\",\"Organization\",Lt);var Ct=function(t,e){return V(t)?t.map((function(t){return new Lt(t,e)})):new Lt(t,e)},Nt=new mt({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(function(){return/^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/g.test(arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\")}(t))return this.adapter.post(\"drivers/login-with-sms\",{phone:t});if(!e)throw new Error(\"Login requires password!\");return this.adapter.post(\"drivers/login\",A({identity:t,password:e},n)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"drivers/verify-code\",A({identity:t,code:e},n)).then(this.afterFetch.bind(this))},track:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"drivers/\".concat(t,\"/track\"),e,n).then(this.afterFetch.bind(this))},listOrganizations:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get(\"drivers/\".concat(t,\"/organizations\"),n,r).then((function(t){return Ct(t,e.adapter)}))},switchOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"drivers/\".concat(t,\"/switch-organization\"),n,r).then((function(t){return Ct(t,e.adapter)}))},currentOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get(\"drivers/\".concat(t,\"/current-organization\"),n,r).then((function(t){return Ct(t,e.adapter)}))},retrieve:function(t){return this.findRecord(t)},syncDevice:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"drivers/\".concat(t,\"/register-device\"),e,n)}}),Ft=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"driver\",A({actions:Nt},r)])}return b(t,kt),v(t,[{key:\"token\",get:function(){return this.getAttribute(\"token\")}},{key:\"isOnline\",get:function(){return!0===this.getAttribute(\"online\")}},{key:\"latitude\",get:function(){var t;return null===(t=this.getAttribute(\"location\",new dt))||void 0===t?void 0:t.coordinates[1]}},{key:\"longitude\",get:function(){var t;return null===(t=this.getAttribute(\"location\",new dt))||void 0===t?void 0:t.coordinates[0]}},{key:\"coordinates\",get:function(){return[this.latitude,this.longitude]}},{key:\"track\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.track(this.id,t,e)}},{key:\"syncDevice\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.syncDevice(this.id,t,e)}},{key:\"listOrganizations\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.listOrganizations(this.id,t,e)}},{key:\"switchOrganization\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.switchOrganization(this.id,{next:t},e)}},{key:\"currentOrganization\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.currentOrganization(this.id,t,e)}}])}();q(\"resource\",\"Driver\",Ft);var Dt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"vendor\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Vendor\",Dt);var $t=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"contact\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Contact\",$t);var Ut=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"zone\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Zone\",Ut);var zt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"service-area\",r])}return b(t,kt),v(t)}();q(\"resource\",\"ServiceArea\",zt);var Bt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"service-rate\",r])}return b(t,kt),v(t)}();q(\"resource\",\"ServiceRate\",Bt);var qt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"service-quote\",r])}return b(t,kt),v(t,[{key:\"fromPreliminary\",value:function(){}},{key:\"fromPayload\",value:function(){}}])}();q(\"resource\",\"ServiceQuote\",qt);var It=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"fleet\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Fleet\",It);var Mt=v((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};h(this,t),this.version=e.version||\"v1\",this.host=e.host||null,this.namespace=e.namespace||null,this.headers=e.headers||{}}));q(\"adapter\",\"Adapter\",Mt);var Ht=function(){function t(e){var n;return h(this,t),(n=l(this,t,[e])).setHeaders({Authorization:\"Bearer \".concat(e.publicKey),\"Content-Type\":\"application/json\",\"User-Agent\":\"@fleetbase/sdk;browser\"}),n}return b(t,Mt),v(t,[{key:\"setHeaders\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.headers=A(A({},this.headers),t),this}},{key:\"parseJSON\",value:function(t){return new Promise((function(e,n){t.json().then((function(n){e({statusText:t.statusText,status:t.status,ok:t.ok,json:n})})).catch((function(){n(new Error(\"Oops! Something went wrong when handling your request.\"))}))}))}},{key:\"request\",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"GET\",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new Promise((function(o,a){fetch(i.url||\"\".concat(e.host,\"/\").concat(e.namespace,\"/\").concat(t),A({method:n,mode:i.mode||\"cors\",headers:new Headers(A(A({},e.headers||{}),i.headers||{}))},r)).then(e.parseJSON).then((function(t){if(t.ok)return o(t.json);a(new Error(t.json.errors?t.json.errors[0]:t.statusText))})).catch((function(t){a(t)}))}))}},{key:\"get\",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=st(e=n)||\"string\"==typeof e&&!1===/\\S/.test(e)?\"\":new URLSearchParams(n).toString();return this.request(\"\".concat(t).concat(i?\"?\".concat(i):\"\"),\"GET\",{},r)}},{key:\"post\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,\"POST\",{body:JSON.stringify(e)},n)}},{key:\"put\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,\"PUT\",{body:JSON.stringify(e)},n)}},{key:\"delete\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(t,\"DELETE\",{},e)}},{key:\"patch\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,\"PATCH\",{body:JSON.stringify(e)},n)}}])}();function Jt(t,e){return function(){return t.apply(e,arguments)}}q(\"adapter\",\"BrowserAdapter\",Ht);var Wt,Kt=Object.prototype.toString,Gt=Object.getPrototypeOf,Vt=(Wt=Object.create(null),function(t){var e=Kt.call(t);return Wt[e]||(Wt[e]=e.slice(8,-1).toLowerCase())}),Xt=function(t){return t=t.toLowerCase(),function(e){return Vt(e)===t}},Qt=function(t){return function(e){return T(e)===t}},Yt=Array.isArray,Zt=Qt(\"undefined\");var te=Xt(\"ArrayBuffer\");var ee=Qt(\"string\"),ne=Qt(\"function\"),re=Qt(\"number\"),ie=function(t){return null!==t&&\"object\"===T(t)},oe=function(t){if(\"object\"!==Vt(t))return!1;var e=Gt(t);return!(null!==e&&e!==Object.prototype&&null!==Object.getPrototypeOf(e)||Symbol.toStringTag in t||Symbol.iterator in t)},ae=Xt(\"Date\"),se=Xt(\"File\"),ue=Xt(\"Blob\"),ce=Xt(\"FileList\"),le=Xt(\"URLSearchParams\"),he=R([\"ReadableStream\",\"Request\",\"Response\",\"Headers\"].map(Xt),4),fe=he[0],de=he[1],ve=he[2],pe=he[3];function ge(t,e){var n,r,i=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).allOwnKeys,o=void 0!==i&&i;if(null!=t)if(\"object\"!==T(t)&&(t=[t]),Yt(t))for(n=0,r=t.length;n0;)if(e===(n=r[i]).toLowerCase())return n;return null}var be=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:global,me=function(t){return!Zt(t)&&t!==be};var we,ke=(we=\"undefined\"!=typeof Uint8Array&&Gt(Uint8Array),function(t){return we&&t instanceof we}),Ee=Xt(\"HTMLFormElement\"),Ae=function(){var t=Object.prototype.hasOwnProperty;return function(e,n){return t.call(e,n)}}(),xe=Xt(\"RegExp\"),Oe=function(t,e){var n=Object.getOwnPropertyDescriptors(t),r={};ge(n,(function(n,i){var o;!1!==(o=e(n,i,t))&&(r[i]=o||n)})),Object.defineProperties(t,r)},Re=\"abcdefghijklmnopqrstuvwxyz\",Se=\"0123456789\",je={DIGIT:Se,ALPHA:Re,ALPHA_DIGIT:Re+Re.toUpperCase()+Se};var Te,_e,Pe,Le,Ce=Xt(\"AsyncFunction\"),Ne=(Te=\"function\"==typeof setImmediate,_e=ne(be.postMessage),Te?setImmediate:_e?(Pe=\"axios@\".concat(Math.random()),Le=[],be.addEventListener(\"message\",(function(t){var e=t.source,n=t.data;e===be&&n===Pe&&Le.length&&Le.shift()()}),!1),function(t){Le.push(t),be.postMessage(Pe,\"*\")}):function(t){return setTimeout(t)}),Fe=\"undefined\"!=typeof queueMicrotask?queueMicrotask.bind(be):\"undefined\"!=typeof process&&process.nextTick||Ne,De={isArray:Yt,isArrayBuffer:te,isBuffer:function(t){return null!==t&&!Zt(t)&&null!==t.constructor&&!Zt(t.constructor)&&ne(t.constructor.isBuffer)&&t.constructor.isBuffer(t)},isFormData:function(t){var e;return t&&(\"function\"==typeof FormData&&t instanceof FormData||ne(t.append)&&(\"formdata\"===(e=Vt(t))||\"object\"===e&&ne(t.toString)&&\"[object FormData]\"===t.toString()))},isArrayBufferView:function(t){return\"undefined\"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&te(t.buffer)},isString:ee,isNumber:re,isBoolean:function(t){return!0===t||!1===t},isObject:ie,isPlainObject:oe,isReadableStream:fe,isRequest:de,isResponse:ve,isHeaders:pe,isUndefined:Zt,isDate:ae,isFile:se,isBlob:ue,isRegExp:xe,isFunction:ne,isStream:function(t){return ie(t)&&ne(t.pipe)},isURLSearchParams:le,isTypedArray:ke,isFileList:ce,forEach:ge,merge:function t(){for(var e=(me(this)&&this||{}).caseless,n={},r=function(r,i){var o=e&&ye(n,i)||i;oe(n[o])&&oe(r)?n[o]=t(n[o],r):oe(r)?n[o]=t({},r):Yt(r)?n[o]=r.slice():n[o]=r},i=0,o=arguments.length;i3&&void 0!==arguments[3]?arguments[3]:{}).allOwnKeys}),t},trim:function(t){return t.trim?t.trim():t.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\"\")},stripBOM:function(t){return 65279===t.charCodeAt(0)&&(t=t.slice(1)),t},inherits:function(t,e,n,r){t.prototype=Object.create(e.prototype,r),t.prototype.constructor=t,Object.defineProperty(t,\"super\",{value:e.prototype}),n&&Object.assign(t.prototype,n)},toFlatObject:function(t,e,n,r){var i,o,a,s={};if(e=e||{},null==t)return e;do{for(o=(i=Object.getOwnPropertyNames(t)).length;o-- >0;)a=i[o],r&&!r(a,t,e)||s[a]||(e[a]=t[a],s[a]=!0);t=!1!==n&&Gt(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},kindOf:Vt,kindOfTest:Xt,endsWith:function(t,e,n){t=String(t),(void 0===n||n>t.length)&&(n=t.length),n-=e.length;var r=t.indexOf(e,n);return-1!==r&&r===n},toArray:function(t){if(!t)return null;if(Yt(t))return t;var e=t.length;if(!re(e))return null;for(var n=new Array(e);e-- >0;)n[e]=t[e];return n},forEachEntry:function(t,e){for(var n,r=(t&&t[Symbol.iterator]).call(t);(n=r.next())&&!n.done;){var i=n.value;e.call(t,i[0],i[1])}},matchAll:function(t,e){for(var n,r=[];null!==(n=t.exec(e));)r.push(n);return r},isHTMLForm:Ee,hasOwnProperty:Ae,hasOwnProp:Ae,reduceDescriptors:Oe,freezeMethods:function(t){Oe(t,(function(e,n){if(ne(t)&&-1!==[\"arguments\",\"caller\",\"callee\"].indexOf(n))return!1;var r=t[n];ne(r)&&(e.enumerable=!1,\"writable\"in e?e.writable=!1:e.set||(e.set=function(){throw Error(\"Can not rewrite read-only method '\"+n+\"'\")}))}))},toObjectSet:function(t,e){var n={},r=function(t){t.forEach((function(t){n[t]=!0}))};return Yt(t)?r(t):r(String(t).split(e)),n},toCamelCase:function(t){return t.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,(function(t,e,n){return e.toUpperCase()+n}))},noop:function(){},toFiniteNumber:function(t,e){return null!=t&&Number.isFinite(t=+t)?t:e},findKey:ye,global:be,isContextDefined:me,ALPHABET:je,generateString:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:je.ALPHA_DIGIT,n=\"\",r=e.length;t--;)n+=e[Math.random()*r|0];return n},isSpecCompliantForm:function(t){return!!(t&&ne(t.append)&&\"FormData\"===t[Symbol.toStringTag]&&t[Symbol.iterator])},toJSONObject:function(t){var e=new Array(10),n=function(t,r){if(ie(t)){if(e.indexOf(t)>=0)return;if(!(\"toJSON\"in t)){e[r]=t;var i=Yt(t)?[]:{};return ge(t,(function(t,e){var o=n(t,r+1);!Zt(o)&&(i[e]=o)})),e[r]=void 0,i}}return t};return n(t,0)},isAsyncFn:Ce,isThenable:function(t){return t&&(ie(t)||ne(t))&&ne(t.then)&&ne(t.catch)},setImmediate:Ne,asap:Fe};function $e(t,e,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=t,this.name=\"AxiosError\",e&&(this.code=e),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status?i.status:null)}De.inherits($e,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:De.toJSONObject(this.config),code:this.code,status:this.status}}});var Ue=$e.prototype,ze={};[\"ERR_BAD_OPTION_VALUE\",\"ERR_BAD_OPTION\",\"ECONNABORTED\",\"ETIMEDOUT\",\"ERR_NETWORK\",\"ERR_FR_TOO_MANY_REDIRECTS\",\"ERR_DEPRECATED\",\"ERR_BAD_RESPONSE\",\"ERR_BAD_REQUEST\",\"ERR_CANCELED\",\"ERR_NOT_SUPPORT\",\"ERR_INVALID_URL\"].forEach((function(t){ze[t]={value:t}})),Object.defineProperties($e,ze),Object.defineProperty(Ue,\"isAxiosError\",{value:!0}),$e.from=function(t,e,n,r,i,o){var a=Object.create(Ue);return De.toFlatObject(t,a,(function(t){return t!==Error.prototype}),(function(t){return\"isAxiosError\"!==t})),$e.call(a,t.message,e,n,r,i),a.cause=t,a.name=t.name,o&&Object.assign(a,o),a};function Be(t){return De.isPlainObject(t)||De.isArray(t)}function qe(t){return De.endsWith(t,\"[]\")?t.slice(0,-2):t}function Ie(t,e,n){return t?t.concat(e).map((function(t,e){return t=qe(t),!n&&e?\"[\"+t+\"]\":t})).join(n?\".\":\"\"):e}var Me=De.toFlatObject(De,{},null,(function(t){return/^is[A-Z]/.test(t)}));function He(t,e,n){if(!De.isObject(t))throw new TypeError(\"target must be an object\");e=e||new FormData;var r=(n=De.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(t,e){return!De.isUndefined(e[t])}))).metaTokens,i=n.visitor||c,o=n.dots,a=n.indexes,s=(n.Blob||\"undefined\"!=typeof Blob&&Blob)&&De.isSpecCompliantForm(e);if(!De.isFunction(i))throw new TypeError(\"visitor must be a function\");function u(t){if(null===t)return\"\";if(De.isDate(t))return t.toISOString();if(!s&&De.isBlob(t))throw new $e(\"Blob is not supported. Use a Buffer instead.\");return De.isArrayBuffer(t)||De.isTypedArray(t)?s&&\"function\"==typeof Blob?new Blob([t]):Buffer.from(t):t}function c(t,n,i){var s=t;if(t&&!i&&\"object\"===T(t))if(De.endsWith(n,\"{}\"))n=r?n:n.slice(0,-2),t=JSON.stringify(t);else if(De.isArray(t)&&function(t){return De.isArray(t)&&!t.some(Be)}(t)||(De.isFileList(t)||De.endsWith(n,\"[]\"))&&(s=De.toArray(t)))return n=qe(n),s.forEach((function(t,r){!De.isUndefined(t)&&null!==t&&e.append(!0===a?Ie([n],r,o):null===a?n:n+\"[]\",u(t))})),!1;return!!Be(t)||(e.append(Ie(i,n,o),u(t)),!1)}var l=[],h=Object.assign(Me,{defaultVisitor:c,convertValue:u,isVisitable:Be});if(!De.isObject(t))throw new TypeError(\"data must be an object\");return function t(n,r){if(!De.isUndefined(n)){if(-1!==l.indexOf(n))throw Error(\"Circular reference detected in \"+r.join(\".\"));l.push(n),De.forEach(n,(function(n,o){!0===(!(De.isUndefined(n)||null===n)&&i.call(e,n,De.isString(o)?o.trim():o,r,h))&&t(n,r?r.concat(o):[o])})),l.pop()}}(t),e}function Je(t){var e={\"!\":\"%21\",\"'\":\"%27\",\"(\":\"%28\",\")\":\"%29\",\"~\":\"%7E\",\"%20\":\"+\",\"%00\":\"\\0\"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,(function(t){return e[t]}))}function We(t,e){this._pairs=[],t&&He(t,this,e)}var Ke=We.prototype;function Ge(t){return encodeURIComponent(t).replace(/%3A/gi,\":\").replace(/%24/g,\"$\").replace(/%2C/gi,\",\").replace(/%20/g,\"+\").replace(/%5B/gi,\"[\").replace(/%5D/gi,\"]\")}function Ve(t,e,n){if(!e)return t;var r=n&&n.encode||Ge;De.isFunction(n)&&(n={serialize:n});var i,o=n&&n.serialize;if(i=o?o(e,n):De.isURLSearchParams(e)?e.toString():new We(e,n).toString(r)){var a=t.indexOf(\"#\");-1!==a&&(t=t.slice(0,a)),t+=(-1===t.indexOf(\"?\")?\"?\":\"&\")+i}return t}Ke.append=function(t,e){this._pairs.push([t,e])},Ke.toString=function(t){var e=t?function(e){return t.call(this,e,Je)}:Je;return this._pairs.map((function(t){return e(t[0])+\"=\"+e(t[1])}),\"\").join(\"&\")};var Xe=function(){return v((function t(){h(this,t),this.handlers=[]}),[{key:\"use\",value:function(t,e,n){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}},{key:\"eject\",value:function(t){this.handlers[t]&&(this.handlers[t]=null)}},{key:\"clear\",value:function(){this.handlers&&(this.handlers=[])}},{key:\"forEach\",value:function(t){De.forEach(this.handlers,(function(e){null!==e&&t(e)}))}}])}(),Qe={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Ye={isBrowser:!0,classes:{URLSearchParams:\"undefined\"!=typeof URLSearchParams?URLSearchParams:We,FormData:\"undefined\"!=typeof FormData?FormData:null,Blob:\"undefined\"!=typeof Blob?Blob:null},protocols:[\"http\",\"https\",\"file\",\"blob\",\"url\",\"data\"]},Ze=\"undefined\"!=typeof window&&\"undefined\"!=typeof document,tn=\"object\"===(\"undefined\"==typeof navigator?\"undefined\":T(navigator))&&navigator||void 0,en=Ze&&(!tn||[\"ReactNative\",\"NativeScript\",\"NS\"].indexOf(tn.product)<0),nn=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&\"function\"==typeof self.importScripts,rn=Ze&&window.location.href||\"http://localhost\",on=A(A({},Object.freeze({__proto__:null,hasBrowserEnv:Ze,hasStandardBrowserEnv:en,hasStandardBrowserWebWorkerEnv:nn,navigator:tn,origin:rn})),Ye);function an(t){function e(t,n,r,i){var o=t[i++];if(\"__proto__\"===o)return!0;var a=Number.isFinite(+o),s=i>=t.length;return o=!o&&De.isArray(r)?r.length:o,s?(De.hasOwnProp(r,o)?r[o]=[r[o],n]:r[o]=n,!a):(r[o]&&De.isObject(r[o])||(r[o]=[]),e(t,n,r[o],i)&&De.isArray(r[o])&&(r[o]=function(t){var e,n,r={},i=Object.keys(t),o=i.length;for(e=0;e-1,o=De.isObject(t);if(o&&De.isHTMLForm(t)&&(t=new FormData(t)),De.isFormData(t))return i?JSON.stringify(an(t)):t;if(De.isArrayBuffer(t)||De.isBuffer(t)||De.isStream(t)||De.isFile(t)||De.isBlob(t)||De.isReadableStream(t))return t;if(De.isArrayBufferView(t))return t.buffer;if(De.isURLSearchParams(t))return e.setContentType(\"application/x-www-form-urlencoded;charset=utf-8\",!1),t.toString();if(o){if(r.indexOf(\"application/x-www-form-urlencoded\")>-1)return function(t,e){return He(t,new on.classes.URLSearchParams,Object.assign({visitor:function(t,e,n,r){return on.isNode&&De.isBuffer(t)?(this.append(e,t.toString(\"base64\")),!1):r.defaultVisitor.apply(this,arguments)}},e))}(t,this.formSerializer).toString();if((n=De.isFileList(t))||r.indexOf(\"multipart/form-data\")>-1){var a=this.env&&this.env.FormData;return He(n?{\"files[]\":t}:t,a&&new a,this.formSerializer)}}return o||i?(e.setContentType(\"application/json\",!1),function(t,e){if(De.isString(t))try{return(e||JSON.parse)(t),De.trim(t)}catch(t){if(\"SyntaxError\"!==t.name)throw t}return(0,JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){var e=this.transitional||sn.transitional,n=e&&e.forcedJSONParsing,r=\"json\"===this.responseType;if(De.isResponse(t)||De.isReadableStream(t))return t;if(t&&De.isString(t)&&(n&&!this.responseType||r)){var i=!(e&&e.silentJSONParsing)&&r;try{return JSON.parse(t)}catch(t){if(i){if(\"SyntaxError\"===t.name)throw $e.from(t,$e.ERR_BAD_RESPONSE,this,null,this.response);throw t}}}return t}],timeout:0,xsrfCookieName:\"XSRF-TOKEN\",xsrfHeaderName:\"X-XSRF-TOKEN\",maxContentLength:-1,maxBodyLength:-1,env:{FormData:on.classes.FormData,Blob:on.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:\"application/json, text/plain, */*\",\"Content-Type\":void 0}}};De.forEach([\"delete\",\"get\",\"head\",\"post\",\"put\",\"patch\"],(function(t){sn.headers[t]={}}));var un=De.toObjectSet([\"age\",\"authorization\",\"content-length\",\"content-type\",\"etag\",\"expires\",\"from\",\"host\",\"if-modified-since\",\"if-unmodified-since\",\"last-modified\",\"location\",\"max-forwards\",\"proxy-authorization\",\"referer\",\"retry-after\",\"user-agent\"]),cn=Symbol(\"internals\");function ln(t){return t&&String(t).trim().toLowerCase()}function hn(t){return!1===t||null==t?t:De.isArray(t)?t.map(hn):String(t)}function fn(t,e,n,r,i){return De.isFunction(r)?r.call(this,e,n):(i&&(e=n),De.isString(e)?De.isString(r)?-1!==e.indexOf(r):De.isRegExp(r)?r.test(e):void 0:void 0)}var dn=function(){return v((function t(e){h(this,t),e&&this.set(e)}),[{key:\"set\",value:function(t,e,n){var r=this;function i(t,e,n){var i=ln(e);if(!i)throw new Error(\"header name must be a non-empty string\");var o=De.findKey(r,i);(!o||void 0===r[o]||!0===n||void 0===n&&!1!==r[o])&&(r[o||e]=hn(t))}var o=function(t,e){return De.forEach(t,(function(t,n){return i(t,n,e)}))};if(De.isPlainObject(t)||t instanceof this.constructor)o(t,e);else if(De.isString(t)&&(t=t.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim()))o(function(t){var e,n,r,i={};return t&&t.split(\"\\n\").forEach((function(t){r=t.indexOf(\":\"),e=t.substring(0,r).trim().toLowerCase(),n=t.substring(r+1).trim(),!e||i[e]&&un[e]||(\"set-cookie\"===e?i[e]?i[e].push(n):i[e]=[n]:i[e]=i[e]?i[e]+\", \"+n:n)})),i}(t),e);else if(De.isHeaders(t)){var a,s=p(t.entries());try{for(s.s();!(a=s.n()).done;){var u=R(a.value,2),c=u[0];i(u[1],c,n)}}catch(t){s.e(t)}finally{s.f()}}else null!=t&&i(e,t,n);return this}},{key:\"get\",value:function(t,e){if(t=ln(t)){var n=De.findKey(this,t);if(n){var r=this[n];if(!e)return r;if(!0===e)return function(t){for(var e,n=Object.create(null),r=/([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;e=r.exec(t);)n[e[1]]=e[2];return n}(r);if(De.isFunction(e))return e.call(this,r,n);if(De.isRegExp(e))return e.exec(r);throw new TypeError(\"parser must be boolean|regexp|function\")}}}},{key:\"has\",value:function(t,e){if(t=ln(t)){var n=De.findKey(this,t);return!(!n||void 0===this[n]||e&&!fn(0,this[n],n,e))}return!1}},{key:\"delete\",value:function(t,e){var n=this,r=!1;function i(t){if(t=ln(t)){var i=De.findKey(n,t);!i||e&&!fn(0,n[i],i,e)||(delete n[i],r=!0)}}return De.isArray(t)?t.forEach(i):i(t),r}},{key:\"clear\",value:function(t){for(var e=Object.keys(this),n=e.length,r=!1;n--;){var i=e[n];t&&!fn(0,this[i],i,t,!0)||(delete this[i],r=!0)}return r}},{key:\"normalize\",value:function(t){var e=this,n={};return De.forEach(this,(function(r,i){var o=De.findKey(n,i);if(o)return e[o]=hn(r),void delete e[i];var a=t?function(t){return t.trim().toLowerCase().replace(/([a-z\\d])(\\w*)/g,(function(t,e,n){return e.toUpperCase()+n}))}(i):String(i).trim();a!==i&&delete e[i],e[a]=hn(r),n[a]=!0})),this}},{key:\"concat\",value:function(){for(var t,e=arguments.length,n=new Array(e),r=0;r1?n-1:0),i=1;i2&&void 0!==arguments[2]?arguments[2]:3,r=0,i=function(t,e){t=t||10;var n,r=new Array(t),i=new Array(t),o=0,a=0;return e=void 0!==e?e:1e3,function(s){var u=Date.now(),c=i[a];n||(n=u),r[o]=s,i[o]=u;for(var l=a,h=0;l!==o;)h+=r[l++],l%=t;if((o=(o+1)%t)===a&&(a=(a+1)%t),!(u-n1&&void 0!==arguments[1]?arguments[1]:Date.now();i=o,n=null,r&&(clearTimeout(r),r=null),t.apply(null,e)};return[function(){for(var t=Date.now(),e=t-i,s=arguments.length,u=new Array(s),c=0;c=o?a(u,t):(n=u,r||(r=setTimeout((function(){r=null,a(n)}),o-e)))},function(){return n&&a(n)}]}((function(n){var o=n.loaded,a=n.lengthComputable?n.total:void 0,s=o-r,u=i(s);r=o;var c=g({loaded:o,total:a,progress:a?o/a:void 0,bytes:s,rate:u||void 0,estimated:u&&a&&o<=a?(a-o)/u:void 0,event:n,lengthComputable:null!=a},e?\"download\":\"upload\",!0);t(c)}),n)},mn=function(t,e){var n=null!=t;return[function(r){return e[0]({lengthComputable:n,total:t,loaded:r})},e[1]]},wn=function(t){return function(){for(var e=arguments.length,n=new Array(e),r=0;r1?e-1:0),r=1;r1?\"since :\\n\"+s.map(Wn).join(\"\\n\"):\" \"+Wn(s[0]):\"as no adapter specified\"),\"ERR_NOT_SUPPORT\")}return n};function Vn(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new gn(null,t)}function Xn(t){return Vn(t),t.headers=dn.from(t.headers),t.data=vn.call(t,t.transformRequest),-1!==[\"post\",\"put\",\"patch\"].indexOf(t.method)&&t.headers.setContentType(\"application/x-www-form-urlencoded\",!1),Gn(t.adapter||sn.adapter)(t).then((function(e){return Vn(t),e.data=vn.call(t,t.transformResponse,e),e.headers=dn.from(e.headers),e}),(function(e){return pn(e)||(Vn(t),e&&e.response&&(e.response.data=vn.call(t,t.transformResponse,e.response),e.response.headers=dn.from(e.response.headers))),Promise.reject(e)}))}var Qn=\"1.7.9\",Yn={};[\"object\",\"boolean\",\"number\",\"function\",\"string\",\"symbol\"].forEach((function(t,e){Yn[t]=function(n){return T(n)===t||\"a\"+(e<1?\"n \":\" \")+t}}));var Zn={};Yn.transitional=function(t,e,n){function r(t,e){return\"[Axios v1.7.9] Transitional option '\"+t+\"'\"+e+(n?\". \"+n:\"\")}return function(n,i,o){if(!1===t)throw new $e(r(i,\" has been removed\"+(e?\" in \"+e:\"\")),$e.ERR_DEPRECATED);return e&&!Zn[i]&&(Zn[i]=!0,console.warn(r(i,\" has been deprecated since v\"+e+\" and will be removed in the near future\"))),!t||t(n,i,o)}},Yn.spelling=function(t){return function(e,n){return console.warn(\"\".concat(n,\" is likely a misspelling of \").concat(t)),!0}};var tr={assertOptions:function(t,e,n){if(\"object\"!==T(t))throw new $e(\"options must be an object\",$e.ERR_BAD_OPTION_VALUE);for(var r=Object.keys(t),i=r.length;i-- >0;){var o=r[i],a=e[o];if(a){var s=t[o],u=void 0===s||a(s,o,t);if(!0!==u)throw new $e(\"option \"+o+\" must be \"+u,$e.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new $e(\"Unknown option \"+o,$e.ERR_BAD_OPTION)}},validators:Yn},er=tr.validators,nr=function(){return v((function t(e){h(this,t),this.defaults=e,this.interceptors={request:new Xe,response:new Xe}}),[{key:\"request\",value:(t=u(x().mark((function t(e,n){var r,i;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,this._request(e,n);case 3:return t.abrupt(\"return\",t.sent);case 6:if(t.prev=6,t.t0=t.catch(0),t.t0 instanceof Error){r={},Error.captureStackTrace?Error.captureStackTrace(r):r=new Error,i=r.stack?r.stack.replace(/^.+\\n/,\"\"):\"\";try{t.t0.stack?i&&!String(t.t0.stack).endsWith(i.replace(/^.+\\n.+\\n/,\"\"))&&(t.t0.stack+=\"\\n\"+i):t.t0.stack=i}catch(t){}}throw t.t0;case 10:case\"end\":return t.stop()}}),t,this,[[0,6]])}))),function(e,n){return t.apply(this,arguments)})},{key:\"_request\",value:function(t,e){\"string\"==typeof t?(e=e||{}).url=t:e=t||{};var n=e=On(this.defaults,e),r=n.transitional,i=n.paramsSerializer,o=n.headers;void 0!==r&&tr.assertOptions(r,{silentJSONParsing:er.transitional(er.boolean),forcedJSONParsing:er.transitional(er.boolean),clarifyTimeoutError:er.transitional(er.boolean)},!1),null!=i&&(De.isFunction(i)?e.paramsSerializer={serialize:i}:tr.assertOptions(i,{encode:er.function,serialize:er.function},!0)),tr.assertOptions(e,{baseUrl:er.spelling(\"baseURL\"),withXsrfToken:er.spelling(\"withXSRFToken\")},!0),e.method=(e.method||this.defaults.method||\"get\").toLowerCase();var a=o&&De.merge(o.common,o[e.method]);o&&De.forEach([\"delete\",\"get\",\"head\",\"post\",\"put\",\"patch\",\"common\"],(function(t){delete o[t]})),e.headers=dn.concat(a,o);var s=[],u=!0;this.interceptors.request.forEach((function(t){\"function\"==typeof t.runWhen&&!1===t.runWhen(e)||(u=u&&t.synchronous,s.unshift(t.fulfilled,t.rejected))}));var c,l=[];this.interceptors.response.forEach((function(t){l.push(t.fulfilled,t.rejected)}));var h,f=0;if(!u){var d=[Xn.bind(this),void 0];for(d.unshift.apply(d,s),d.push.apply(d,l),h=d.length,c=Promise.resolve(e);f0;)r._listeners[e](t);r._listeners=null}})),this.promise.then=function(t){var e,n=new Promise((function(t){r.subscribe(t),e=t})).then(t);return n.cancel=function(){r.unsubscribe(e)},n},e((function(t,e,i){r.reason||(r.reason=new gn(t,e,i),n(r.reason))}))}return v(t,[{key:\"throwIfRequested\",value:function(){if(this.reason)throw this.reason}},{key:\"subscribe\",value:function(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t]}},{key:\"unsubscribe\",value:function(t){if(this._listeners){var e=this._listeners.indexOf(t);-1!==e&&this._listeners.splice(e,1)}}},{key:\"toAbortSignal\",value:function(){var t=this,e=new AbortController,n=function(t){e.abort(t)};return this.subscribe(n),e.signal.unsubscribe=function(){return t.unsubscribe(n)},e.signal}}],[{key:\"source\",value:function(){var e;return{token:new t((function(t){e=t})),cancel:e}}}])}();var ir={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(ir).forEach((function(t){var e=R(t,2),n=e[0],r=e[1];ir[r]=n}));var or=function t(e){var n=new nr(e),r=Jt(nr.prototype.request,n);return De.extend(r,nr.prototype,n,{allOwnKeys:!0}),De.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return t(On(e,n))},r}(sn);or.Axios=nr,or.CanceledError=gn,or.CancelToken=rr,or.isCancel=pn,or.VERSION=Qn,or.toFormData=He,or.AxiosError=$e,or.Cancel=or.CanceledError,or.all=function(t){return Promise.all(t)},or.spread=function(t){return function(e){return t.apply(null,e)}},or.isAxiosError=function(t){return De.isObject(t)&&!0===t.isAxiosError},or.mergeConfig=On,or.AxiosHeaders=dn,or.formToJSON=function(t){return an(De.isHTMLForm(t)?new FormData(t):t)},or.getAdapter=Gn,or.HttpStatusCode=ir,or.default=or,or.Axios,or.AxiosError,or.CanceledError,or.isCancel,or.CancelToken,or.VERSION,or.all,or.Cancel,or.isAxiosError,or.spread,or.toFormData,or.AxiosHeaders,or.HttpStatusCode,or.formToJSON,or.getAdapter,or.mergeConfig;var ar=function(){function t(e){var n;return h(this,t),(n=l(this,t,[e])).axiosInstance=or.create({baseURL:\"\".concat(n.host,\"/\").concat(n.namespace),headers:{Authorization:\"Bearer \".concat(e.publicKey),\"Content-Type\":\"application/json\",\"User-Agent\":\"@fleetbase/sdk;node\"}}),n.axiosInstance.interceptors.response.use((function(t){return t.data}),(function(t){if(t.response){var e=t.response.data;if(V(e.errors)&&e.errors.length)throw new Error(e.errors[0]);if(e.error)throw new Error(e.error)}throw t})),n}return b(t,Mt),v(t,[{key:\"setHeaders\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.axiosInstance.defaults.headers.common=A(A({},this.axiosInstance.defaults.headers.common),t),this}},{key:\"request\",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axiosInstance.request(A({method:t,url:e},n))}},{key:\"get\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(\"GET\",t,A({params:e},n))}},{key:\"post\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(\"POST\",t,A({data:e},n))}},{key:\"put\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(\"PUT\",t,A({data:e},n))}},{key:\"delete\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(\"DELETE\",t,e)}},{key:\"patch\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(\"PATCH\",t,A({data:e},n))}}])}();q(\"adapter\",\"NodeAdapter\",ar);var sr=function(){function t(){return h(this,t),l(this,t,arguments)}return b(t,Mt),v(t)}();q(\"adapter\",\"EmberJsAdapter\",sr);var ur=function(){function t(e){var n,r,i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(h(this,t),this.version=null!==(n=o.version)&&void 0!==n?n:\"v1\",this.options={version:this.version,host:null!==(r=o.host)&&void 0!==r?r:\"https://api.fleetbase.io\",namespace:null!==(i=o.namespace)&&void 0!==i?i:this.version,debug:a,publicKey:e},\"string\"!=typeof e||0===e.length)throw new Error(\"⚠️ Invalid public key given to Fleetbase SDK\");if(!lt()&&e.toLowerCase().startsWith(\"$\"))throw new Error(\"Secret key provided. You must use a public key with Fleetbase Javascript SDK!\");this.adapter=o.adapter||ht(this.options),this.orders=new Et(\"order\",this.adapter).extendActions(At),this.entities=new Et(\"entity\",this.adapter),this.places=new Et(\"place\",this.adapter),this.drivers=new Et(\"driver\",this.adapter).extendActions(Nt),this.vehicles=new Et(\"vehicle\",this.adapter),this.vendors=new Et(\"vendor\",this.adapter),this.contacts=new Et(\"contact\",this.adapter),this.serviceAreas=new Et(\"service-area\",this.adapter),this.zones=new Et(\"zone\",this.adapter),this.fleets=new Et(\"fleet\",this.adapter),this.organizations=new Et(\"organization\",this.adapter).extendActions(Pt)}return v(t,[{key:\"setAdapter\",value:function(t){this.adapter=t}},{key:\"getAdapter\",value:function(){return this.adapter}}],[{key:\"newInstance\",value:function(){return f(t,Array.prototype.slice.call(arguments))}}])}();export{Mt as Adapter,Ht as BrowserAdapter,at as Collection,$t as Contact,Ft as Driver,sr as EmberJsAdapter,Rt as Entity,It as Fleet,ft as GoogleAddress,ar as NodeAdapter,xt as Order,Lt as Organization,Ot as Payload,St as Place,dt as Point,J as Resolver,kt as Resource,zt as ServiceArea,qt as ServiceQuote,Bt as ServiceRate,Et as Store,mt as StoreActions,Tt as TrackingStatus,_t as Vehicle,Dt as Vendor,jt as Waypoint,Ut as Zone,$ as camelize,z as classify,ot as createCollection,H as createResource,M as createStore,bt as createStoreActions,U as dasherize,ur as default,ht as detectAdapter,yt as extendStoreActions,ut as isLatitude,ct as isLongitude,lt as isNodeEnvironment,wt as isResource,W as lookup,F as pluralize,q as register,K as resolve,G as resolveResource,D as singularize};\n//# sourceMappingURL=fleetbase.js.map\n","import { Store, classify, extendStoreActions, lookup } from '@fleetbase/sdk';\n\nexport default class StorefrontStore extends Store {\n constructor() {\n super(...arguments);\n }\n\n extendActions(actions = []) {\n return extendStoreActions(this, actions);\n }\n\n serialize(json) {\n return lookup('resource', classify(this.resource), json, this.adapter);\n }\n}\n","export function formatCurrency(amount = 0, currency = 'USD', currencyDisplay = 'symbol') {\n return new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency,\n currencyDisplay,\n }).format(amount);\n}\n\nexport default formatCurrency;\n","export function isEmpty(obj) {\n const none = obj === null || obj === undefined;\n if (none) {\n return none;\n }\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n const objectType = typeof obj;\n\n if (objectType === 'object') {\n const { size } = obj;\n if (typeof size === 'number') {\n return !size;\n }\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\n }\n\n if (objectType === 'object') {\n const { length } = obj;\n if (typeof length === 'number') {\n return !length;\n }\n }\n\n return false;\n}\n\nexport default isEmpty;\n","const { isArray } = Array;\n\nexport { isArray };\n","import { Resource, register } from '@fleetbase/sdk';\nimport StorefrontStore from './store.js';\n\nexport default class StorefrontResource extends Resource {\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new StorefrontStore(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions,\n });\n\n return this;\n }\n}\n\nregister('resource', 'StorefrontResource', StorefrontResource);\n","import Resource from '../resource.js';\nimport { StoreActions, register } from '@fleetbase/sdk';\n\nexport const reviewActions = new StoreActions({\n count: function (storeId, options = {}) {\n const params = {};\n\n if (storeId) {\n params.store = storeId;\n }\n\n return this.adapter.get(`${this.namespace}/count`, params, options);\n },\n});\n\nexport default class Review extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'review', options);\n }\n\n getMedia() {\n // @todo\n }\n\n getPhotos() {\n // @todo\n }\n\n getVideos() {\n // @todo\n }\n}\n\nregister('resource', 'Review', Review);\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n\n/**\n * @constant\n * @name constructFromSymbol\n * @summary Symbol enabling Date extensions to inherit properties from the reference date.\n *\n * The symbol is used to enable the `constructFrom` function to construct a date\n * using a reference date and a value. It allows to transfer extra properties\n * from the reference date to the new date. It's useful for extensions like\n * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as\n * a constructor argument.\n */\nexport const constructFromSymbol = Symbol.for(\"constructDateFrom\");\n","import { constructFromSymbol } from \"./constants.js\";\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * Starting from v3.7.0, it allows to construct a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from \"./constructFrom/date-fns\";\n *\n * // A function that clones a date preserving the original type\n * function cloneDate(date: DateType): DateType {\n * return constructFrom(\n * date, // Use constructor from the given date\n * date.getTime() // Use the date value to create a new date\n * );\n * }\n */\nexport function constructFrom(date, value) {\n if (typeof date === \"function\") return date(value);\n\n if (date && typeof date === \"object\" && constructFromSymbol in date)\n return date[constructFromSymbol](value);\n\n if (date instanceof Date) return new date.constructor(value);\n\n return new Date(value);\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * Starting from v3.7.0, it clones a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument, context) {\n // [TODO] Get rid of `toDate` or `constructFrom`?\n return constructFrom(context || argument, argument);\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addDays} function options.\n */\n\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be added.\n * @param options - An object with options\n *\n * @returns The new date with the days added\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nexport function addDays(date, amount, options) {\n const _date = toDate(date, options?.in);\n if (isNaN(amount)) return constructFrom(options?.in || date, NaN);\n\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n if (!amount) return _date;\n\n _date.setDate(_date.getDate() + amount);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addDays;\n","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date, options?.in);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n","import { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfISOWeek} function options.\n */\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfISOWeek(date, options) {\n return startOfWeek(date, { ...options, weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeek;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeekYear} function options.\n */\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport function getISOWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const fourthOfJanuaryOfNextYear = constructFrom(_date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n\n const fourthOfJanuaryOfThisYear = constructFrom(_date, 0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getISOWeekYear;\n","import { toDate } from \"../toDate.js\";\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const _date = toDate(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfDay} function options.\n */\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport function startOfDay(date, options) {\n const _date = toDate(date, options?.in);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n","import { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { millisecondsInDay } from \"./constants.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link differenceInCalendarDays} function options.\n */\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - The options object\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport function differenceInCalendarDays(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n\n const laterStartOfDay = startOfDay(laterDate_);\n const earlierStartOfDay = startOfDay(earlierDate_);\n\n const laterTimestamp =\n +laterStartOfDay - getTimezoneOffsetInMilliseconds(laterStartOfDay);\n const earlierTimestamp =\n +earlierStartOfDay - getTimezoneOffsetInMilliseconds(earlierStartOfDay);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((laterTimestamp - earlierTimestamp) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n","import { constructFrom } from \"../constructFrom.js\";\n\nexport function normalizeDates(context, ...dates) {\n const normalize = constructFrom.bind(\n null,\n context || dates.find((date) => typeof date === \"object\"),\n );\n return dates.map(normalize);\n}\n","import { isDate } from \"./isDate.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertible into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport function isValid(date) {\n return !((!isDate(date) && typeof date !== \"number\") || isNaN(+toDate(date)));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n","/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport function isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // [TODO] -- I challenge you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // [TODO] -- I challenge you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // [TODO] I challenge you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","import { formatDistance } from \"./en-US/_lib/formatDistance.js\";\nimport { formatLong } from \"./en-US/_lib/formatLong.js\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.js\";\nimport { localize } from \"./en-US/_lib/localize.js\";\nimport { match } from \"./en-US/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","import { differenceInCalendarDays } from \"./differenceInCalendarDays.js\";\nimport { startOfYear } from \"./startOfYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDayOfYear} function options.\n */\n\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * const result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nexport function getDayOfYear(date, options) {\n const _date = toDate(date, options?.in);\n const diff = differenceInCalendarDays(_date, startOfYear(_date));\n const dayOfYear = diff + 1;\n return dayOfYear;\n}\n\n// Fallback for modularized imports:\nexport default getDayOfYear;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfYear} function options.\n */\n\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport function startOfYear(date, options) {\n const date_ = toDate(date, options?.in);\n date_.setFullYear(date_.getFullYear(), 0, 1);\n date_.setHours(0, 0, 0, 0);\n return date_;\n}\n\n// Fallback for modularized imports:\nexport default startOfYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { startOfISOWeekYear } from \"./startOfISOWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeek} function options.\n */\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport function getISOWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getISOWeek;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { getISOWeekYear } from \"./getISOWeekYear.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\n\n/**\n * The {@link startOfISOWeekYear} function options.\n */\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfISOWeekYear(date, options) {\n const year = getISOWeekYear(date, options);\n const fourthOfJanuary = constructFrom(options?.in || date, 0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n return startOfISOWeek(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeekYear;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport function getWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const firstWeekOfNextYear = constructFrom(options?.in || date, 0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n\n const firstWeekOfThisYear = constructFrom(options?.in || date, 0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n\n if (+_date >= +startOfNextYear) {\n return year + 1;\n } else if (+_date >= +startOfThisYear) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getWeekYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { startOfWeekYear } from \"./startOfWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\nexport function getWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeek;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getWeekYear } from \"./getWeekYear.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = getWeekYear(date, options);\n const firstWeek = constructFrom(options?.in || date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = startOfWeek(firstWeek, options);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n","export function addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? \"-\" : \"\";\n const output = Math.abs(number).toString().padStart(targetLength, \"0\");\n return sign + output;\n}\n","import { addLeadingZeros } from \"../addLeadingZeros.js\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nexport const lightFormatters = {\n // Year\n y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === \"yy\" ? year % 100 : year, token.length);\n },\n\n // Month\n M(date, token) {\n const month = date.getMonth();\n return token === \"M\" ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n\n // Day of the month\n d(date, token) {\n return addLeadingZeros(date.getDate(), token.length);\n },\n\n // AM or PM\n a(date, token) {\n const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return dayPeriodEnumValue.toUpperCase();\n case \"aaa\":\n return dayPeriodEnumValue;\n case \"aaaaa\":\n return dayPeriodEnumValue[0];\n case \"aaaa\":\n default:\n return dayPeriodEnumValue === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n\n // Hour [1-12]\n h(date, token) {\n return addLeadingZeros(date.getHours() % 12 || 12, token.length);\n },\n\n // Hour [0-23]\n H(date, token) {\n return addLeadingZeros(date.getHours(), token.length);\n },\n\n // Minute\n m(date, token) {\n return addLeadingZeros(date.getMinutes(), token.length);\n },\n\n // Second\n s(date, token) {\n return addLeadingZeros(date.getSeconds(), token.length);\n },\n\n // Fraction of second\n S(date, token) {\n const numberOfDigits = token.length;\n const milliseconds = date.getMilliseconds();\n const fractionalSeconds = Math.trunc(\n milliseconds * Math.pow(10, numberOfDigits - 3),\n );\n return addLeadingZeros(fractionalSeconds, token.length);\n },\n};\n","import { getDayOfYear } from \"../../getDayOfYear.js\";\nimport { getISOWeek } from \"../../getISOWeek.js\";\nimport { getISOWeekYear } from \"../../getISOWeekYear.js\";\nimport { getWeek } from \"../../getWeek.js\";\nimport { getWeekYear } from \"../../getWeekYear.js\";\n\nimport { addLeadingZeros } from \"../addLeadingZeros.js\";\nimport { lightFormatters } from \"./lightFormatters.js\";\n\nconst dayPeriodEnum = {\n am: \"am\",\n pm: \"pm\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nexport const formatters = {\n // Era\n G: function (date, token, localize) {\n const era = date.getFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return localize.era(era, { width: \"abbreviated\" });\n // A, B\n case \"GGGGG\":\n return localize.era(era, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return localize.era(era, { width: \"wide\" });\n }\n },\n\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === \"yo\") {\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, { unit: \"year\" });\n }\n\n return lightFormatters.y(date, token);\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n const signedWeekYear = getWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === \"YY\") {\n const twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === \"Yo\") {\n return localize.ordinalNumber(weekYear, { unit: \"year\" });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n\n // ISO week-numbering year\n R: function (date, token) {\n const isoWeekYear = getISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n const year = date.getFullYear();\n return addLeadingZeros(year, token.length);\n },\n\n // Quarter\n Q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"QQ\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"qq\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // Month\n M: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n case \"M\":\n case \"MM\":\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // J, F, ..., D\n case \"MMMMM\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return localize.month(month, { width: \"wide\", context: \"formatting\" });\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return String(month + 1);\n // 01, 02, ..., 12\n case \"LL\":\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // J, F, ..., D\n case \"LLLLL\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return localize.month(month, { width: \"wide\", context: \"standalone\" });\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n const week = getWeek(date, options);\n\n if (token === \"wo\") {\n return localize.ordinalNumber(week, { unit: \"week\" });\n }\n\n return addLeadingZeros(week, token.length);\n },\n\n // ISO week of year\n I: function (date, token, localize) {\n const isoWeek = getISOWeek(date);\n\n if (token === \"Io\") {\n return localize.ordinalNumber(isoWeek, { unit: \"week\" });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n\n // Day of the month\n d: function (date, token, localize) {\n if (token === \"do\") {\n return localize.ordinalNumber(date.getDate(), { unit: \"date\" });\n }\n\n return lightFormatters.d(date, token);\n },\n\n // Day of year\n D: function (date, token, localize) {\n const dayOfYear = getDayOfYear(date);\n\n if (token === \"Do\") {\n return localize.ordinalNumber(dayOfYear, { unit: \"dayOfYear\" });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n\n // Day of week\n E: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"EEEEE\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"EEEE\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case \"e\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"ee\":\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case \"eo\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"eee\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"eeeee\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"eeee\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case \"c\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"cc\":\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case \"co\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"ccc\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // T\n case \"ccccc\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"standalone\",\n });\n // Tuesday\n case \"cccc\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // ISO day of week\n i: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case \"i\":\n return String(isoDayOfWeek);\n // 02\n case \"ii\":\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case \"io\":\n return localize.ordinalNumber(isoDayOfWeek, { unit: \"day\" });\n // Tue\n case \"iii\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"iiiii\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"iiiiii\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"iiii\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n const hours = date.getHours();\n const dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"aaa\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"aaaaa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n }\n\n switch (token) {\n case \"b\":\n case \"bb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"bbb\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"bbbbb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"BBBBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === \"ho\") {\n let hours = date.getHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return lightFormatters.h(date, token);\n },\n\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === \"Ho\") {\n return localize.ordinalNumber(date.getHours(), { unit: \"hour\" });\n }\n\n return lightFormatters.H(date, token);\n },\n\n // Hour [0-11]\n K: function (date, token, localize) {\n const hours = date.getHours() % 12;\n\n if (token === \"Ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Hour [1-24]\n k: function (date, token, localize) {\n let hours = date.getHours();\n if (hours === 0) hours = 24;\n\n if (token === \"ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Minute\n m: function (date, token, localize) {\n if (token === \"mo\") {\n return localize.ordinalNumber(date.getMinutes(), { unit: \"minute\" });\n }\n\n return lightFormatters.m(date, token);\n },\n\n // Second\n s: function (date, token, localize) {\n if (token === \"so\") {\n return localize.ordinalNumber(date.getSeconds(), { unit: \"second\" });\n }\n\n return lightFormatters.s(date, token);\n },\n\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return \"Z\";\n }\n\n switch (token) {\n // Hours and optional minutes\n case \"X\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case \"XXXX\":\n case \"XX\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case \"XXXXX\":\n case \"XXX\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case \"x\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case \"xxxx\":\n case \"xx\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case \"xxxxx\":\n case \"xxx\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"O\":\n case \"OO\":\n case \"OOO\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"OOOO\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"zzzz\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Seconds timestamp\n t: function (date, token, _localize) {\n const timestamp = Math.trunc(+date / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n\n // Milliseconds timestamp\n T: function (date, token, _localize) {\n return addLeadingZeros(+date, token.length);\n },\n};\n\nfunction formatTimezoneShort(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = Math.trunc(absOffset / 60);\n const minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n if (offset % 60 === 0) {\n const sign = offset > 0 ? \"-\" : \"+\";\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, delimiter);\n}\n\nfunction formatTimezone(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2);\n const minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n","const dateLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"P\":\n return formatLong.date({ width: \"short\" });\n case \"PP\":\n return formatLong.date({ width: \"medium\" });\n case \"PPP\":\n return formatLong.date({ width: \"long\" });\n case \"PPPP\":\n default:\n return formatLong.date({ width: \"full\" });\n }\n};\n\nconst timeLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"p\":\n return formatLong.time({ width: \"short\" });\n case \"pp\":\n return formatLong.time({ width: \"medium\" });\n case \"ppp\":\n return formatLong.time({ width: \"long\" });\n case \"pppp\":\n default:\n return formatLong.time({ width: \"full\" });\n }\n};\n\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n const matchResult = pattern.match(/(P+)(p+)?/) || [];\n const datePattern = matchResult[1];\n const timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n let dateTimeFormat;\n\n switch (datePattern) {\n case \"P\":\n dateTimeFormat = formatLong.dateTime({ width: \"short\" });\n break;\n case \"PP\":\n dateTimeFormat = formatLong.dateTime({ width: \"medium\" });\n break;\n case \"PPP\":\n dateTimeFormat = formatLong.dateTime({ width: \"long\" });\n break;\n case \"PPPP\":\n default:\n dateTimeFormat = formatLong.dateTime({ width: \"full\" });\n break;\n }\n\n return dateTimeFormat\n .replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong))\n .replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\n\nexport const longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter,\n};\n","const dayOfYearTokenRE = /^D+$/;\nconst weekYearTokenRE = /^Y+$/;\n\nconst throwTokens = [\"D\", \"DD\", \"YY\", \"YYYY\"];\n\nexport function isProtectedDayOfYearToken(token) {\n return dayOfYearTokenRE.test(token);\n}\n\nexport function isProtectedWeekYearToken(token) {\n return weekYearTokenRE.test(token);\n}\n\nexport function warnOrThrowProtectedError(token, format, input) {\n const _message = message(token, format, input);\n console.warn(_message);\n if (throwTokens.includes(token)) throw new RangeError(_message);\n}\n\nfunction message(token, format, input) {\n const subject = token[0] === \"Y\" ? \"years\" : \"days of the month\";\n return `Use \\`${token.toLowerCase()}\\` instead of \\`${token}\\` (in \\`${format}\\`) for formatting ${subject} to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;\n}\n","import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { formatters } from \"./_lib/format/formatters.js\";\nimport { longFormatters } from \"./_lib/format/longFormatters.js\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.js\";\nimport { isValid } from \"./isValid.js\";\nimport { toDate } from \"./toDate.js\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { formatters, longFormatters };\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\nexport { format as formatDate };\n\n/**\n * The {@link format} function options.\n */\n\n/**\n * @name format\n * @alias formatDate\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)\n * and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nexport function format(date, formatStr, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const originalDate = toDate(date, options?.in);\n\n if (!isValid(originalDate)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let parts = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp)\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return { isToken: false, value: \"'\" };\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return { isToken: false, value: cleanEscapedString(substring) };\n }\n\n if (formatters[firstCharacter]) {\n return { isToken: true, value: substring };\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return { isToken: false, value: substring };\n });\n\n // invoke localize preprocessor (only for french locales at the moment)\n if (locale.localize.preprocessor) {\n parts = locale.localize.preprocessor(originalDate, parts);\n }\n\n const formatterOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n return parts\n .map((part) => {\n if (!part.isToken) return part.value;\n\n const token = part.value;\n\n if (\n (!options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)) ||\n (!options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token))\n ) {\n warnOrThrowProtectedError(token, formatStr, String(date));\n }\n\n const formatter = formatters[token[0]];\n return formatter(originalDate, token, locale.localize, formatterOptions);\n })\n .join(\"\");\n}\n\nfunction cleanEscapedString(input) {\n const matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default format;\n","import { constructFrom } from \"../../constructFrom.js\";\nimport { transpose } from \"../../transpose.js\";\n\nconst TIMEZONE_UNIT_PRIORITY = 10;\n\nexport class Setter {\n subPriority = 0;\n\n validate(_utcDate, _options) {\n return true;\n }\n}\n\nexport class ValueSetter extends Setter {\n constructor(\n value,\n\n validateValue,\n\n setValue,\n\n priority,\n subPriority,\n ) {\n super();\n this.value = value;\n this.validateValue = validateValue;\n this.setValue = setValue;\n this.priority = priority;\n if (subPriority) {\n this.subPriority = subPriority;\n }\n }\n\n validate(date, options) {\n return this.validateValue(date, this.value, options);\n }\n\n set(date, flags, options) {\n return this.setValue(date, flags, this.value, options);\n }\n}\n\nexport class DateTimezoneSetter extends Setter {\n priority = TIMEZONE_UNIT_PRIORITY;\n subPriority = -1;\n\n constructor(context, reference) {\n super();\n this.context = context || ((date) => constructFrom(reference, date));\n }\n\n set(date, flags) {\n if (flags.timestampIsSet) return date;\n return constructFrom(date, transpose(date, this.context));\n }\n}\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name transpose\n * @category Generic Helpers\n * @summary Transpose the date to the given constructor.\n *\n * @description\n * The function transposes the date to the given constructor. It helps you\n * to transpose the date in the system time zone to say `UTCDate` or any other\n * date extension.\n *\n * @typeParam InputDate - The input `Date` type derived from the passed argument.\n * @typeParam ResultDate - The result `Date` type derived from the passed constructor.\n *\n * @param date - The date to use values from\n * @param constructor - The date constructor to use\n *\n * @returns Date transposed to the given constructor\n *\n * @example\n * // Create July 10, 2022 00:00 in locale time zone\n * const date = new Date(2022, 6, 10)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0800 (Singapore Standard Time)'\n *\n * @example\n * // Transpose the date to July 10, 2022 00:00 in UTC\n * transpose(date, UTCDate)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0000 (Coordinated Universal Time)'\n */\nexport function transpose(date, constructor) {\n const date_ = isConstructor(constructor)\n ? new constructor(0)\n : constructFrom(constructor, 0);\n date_.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());\n date_.setHours(\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds(),\n );\n return date_;\n}\n\nfunction isConstructor(constructor) {\n return (\n typeof constructor === \"function\" &&\n constructor.prototype?.constructor === constructor\n );\n}\n\n// Fallback for modularized imports:\nexport default transpose;\n","import { ValueSetter } from \"./Setter.js\";\n\nexport class Parser {\n run(dateString, token, match, options) {\n const result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n\n return {\n setter: new ValueSetter(\n result.value,\n this.validate,\n this.set,\n this.priority,\n this.subPriority,\n ),\n rest: result.rest,\n };\n }\n\n validate(_utcDate, _value, _options) {\n return true;\n }\n}\n","import { Parser } from \"../Parser.js\";\n\nexport class EraParser extends Parser {\n priority = 140;\n\n parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return (\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n\n // A, B\n case \"GGGGG\":\n return match.era(dateString, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return (\n match.era(dateString, { width: \"wide\" }) ||\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n }\n }\n\n set(date, flags, value) {\n flags.era = value;\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"R\", \"u\", \"t\", \"T\"];\n}\n","export const numericPatterns = {\n month: /^(1[0-2]|0?\\d)/, // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/, // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/, // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/, // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/, // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/, // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/, // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/, // 0 to 12\n minute: /^[0-5]?\\d/, // 0 to 59\n second: /^[0-5]?\\d/, // 0 to 59\n\n singleDigit: /^\\d/, // 0 to 9\n twoDigits: /^\\d{1,2}/, // 0 to 99\n threeDigits: /^\\d{1,3}/, // 0 to 999\n fourDigits: /^\\d{1,4}/, // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/, // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/, // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/, // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/, // 0 to 9999, -0 to -9999\n};\n\nexport const timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/,\n};\n","import {\n millisecondsInHour,\n millisecondsInMinute,\n millisecondsInSecond,\n} from \"../../constants.js\";\n\nimport { numericPatterns } from \"./constants.js\";\n\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest,\n };\n}\n\nexport function parseNumericPattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseTimezonePattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === \"Z\") {\n return {\n value: 0,\n rest: dateString.slice(1),\n };\n }\n\n const sign = matchResult[1] === \"+\" ? 1 : -1;\n const hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n const minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n const seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n\n return {\n value:\n sign *\n (hours * millisecondsInHour +\n minutes * millisecondsInMinute +\n seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\n\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^-?\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case \"morning\":\n return 4;\n case \"evening\":\n return 17;\n case \"pm\":\n case \"noon\":\n case \"afternoon\":\n return 12;\n case \"am\":\n case \"midnight\":\n case \"night\":\n default:\n return 0;\n }\n}\n\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n const isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n const absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n\n let result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n const rangeEnd = absCurrentYear + 50;\n const rangeEndCentury = Math.trunc(rangeEnd / 100) * 100;\n const isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport class YearParser extends Parser {\n priority = 130;\n incompatibleTokens = [\"Y\", \"R\", \"u\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"yy\",\n });\n\n switch (token) {\n case \"y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value) {\n const currentYear = date.getFullYear();\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(normalizedTwoDigitYear, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { getWeekYear } from \"../../../getWeekYear.js\";\n\nimport { startOfWeek } from \"../../../startOfWeek.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n\n// Local week-numbering year\nexport class LocalWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"YY\",\n });\n\n switch (token) {\n case \"Y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"Yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value, options) {\n const currentYear = getWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(\n normalizedTwoDigitYear,\n 0,\n options.firstWeekContainsDate,\n );\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, options.firstWeekContainsDate);\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { startOfISOWeek } from \"../../../startOfISOWeek.js\";\nimport { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigitsSigned } from \"../utils.js\";\n\n// ISO week-numbering year\nexport class ISOWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"R\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n const firstWeekOfYear = constructFrom(date, 0);\n firstWeekOfYear.setFullYear(value, 0, 4);\n firstWeekOfYear.setHours(0, 0, 0, 0);\n return startOfISOWeek(firstWeekOfYear);\n }\n\n incompatibleTokens = [\n \"G\",\n \"y\",\n \"Y\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigitsSigned } from \"../utils.js\";\n\nexport class ExtendedYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"u\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"G\", \"y\", \"Y\", \"R\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigits } from \"../utils.js\";\n\nexport class QuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n case \"QQ\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigits } from \"../utils.js\";\n\nexport class StandAloneQuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n case \"qq\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class MonthParser extends Parser {\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"L\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"M\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"MM\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // J, F, ..., D\n case \"MMMMM\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class StandAloneMonthParser extends Parser {\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"LL\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // J, F, ..., D\n case \"LLLLL\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setWeek } from \"../../../setWeek.js\";\nimport { startOfWeek } from \"../../../startOfWeek.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\n// Local week of year\nexport class LocalWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"w\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"wo\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value, options) {\n return startOfWeek(setWeek(date, value, options), options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { getWeek } from \"./getWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setWeek} function options.\n */\n\n/**\n * @name setWeek\n * @category Week Helpers\n * @summary Set the local week to the given date.\n *\n * @description\n * Set the local week to the given date, saving the weekday number.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param week - The week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the local week set\n *\n * @example\n * // Set the 1st week to 2 January 2005 with default options:\n * const result = setWeek(new Date(2005, 0, 2), 1)\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // Set the 1st week to 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January:\n * const result = setWeek(new Date(2005, 0, 2), 1, {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Sun Jan 4 2004 00:00:00\n */\nexport function setWeek(date, week, options) {\n const date_ = toDate(date, options?.in);\n const diff = getWeek(date_, options) - week;\n date_.setDate(date_.getDate() - diff * 7);\n return toDate(date_, options?.in);\n}\n\n// Fallback for modularized imports:\nexport default setWeek;\n","import { setISOWeek } from \"../../../setISOWeek.js\";\nimport { startOfISOWeek } from \"../../../startOfISOWeek.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\n// ISO week of year\nexport class ISOWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"I\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"Io\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value) {\n return startOfISOWeek(setISOWeek(date, value));\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getISOWeek } from \"./getISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setISOWeek} function options.\n */\n\n/**\n * @name setISOWeek\n * @category ISO Week Helpers\n * @summary Set the ISO week to the given date.\n *\n * @description\n * Set the ISO week to the given date, saving the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The `Date` type of the context function.\n *\n * @param date - The date to be changed\n * @param week - The ISO week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the ISO week set\n *\n * @example\n * // Set the 53rd ISO week to 7 August 2004:\n * const result = setISOWeek(new Date(2004, 7, 7), 53)\n * //=> Sat Jan 01 2005 00:00:00\n */\nexport function setISOWeek(date, week, options) {\n const _date = toDate(date, options?.in);\n const diff = getISOWeek(_date, options) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setISOWeek;\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.js\";\n\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst DAYS_IN_MONTH_LEAP_YEAR = [\n 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,\n];\n\n// Day of the month\nexport class DateParser extends Parser {\n priority = 90;\n subPriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"d\":\n return parseNumericPattern(numericPatterns.date, dateString);\n case \"do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n const month = date.getMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n\n set(date, _flags, value) {\n date.setDate(value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.js\";\n\nexport class DayOfYearParser extends Parser {\n priority = 90;\n\n subpriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"D\":\n case \"DD\":\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case \"Do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n\n set(date, _flags, value) {\n date.setMonth(0, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"E\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { addDays } from \"./addDays.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setDay} function options.\n */\n\n/**\n * @name setDay\n * @category Weekday Helpers\n * @summary Set the day of the week to the given date.\n *\n * @description\n * Set the day of the week to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param day - The day of the week of the new date\n * @param options - An object with options.\n *\n * @returns The new date with the day of the week set\n *\n * @example\n * // Set week day to Sunday, with the default weekStartsOn of Sunday:\n * const result = setDay(new Date(2014, 8, 1), 0)\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Set week day to Sunday, with a weekStartsOn of Monday:\n * const result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setDay(date, day, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const date_ = toDate(date, options?.in);\n const currentDay = date_.getDay();\n\n const remainder = day % 7;\n const dayIndex = (remainder + 7) % 7;\n\n const delta = 7 - weekStartsOn;\n const diff =\n day < 0 || day > 6\n ? day - ((currentDay + delta) % 7)\n : ((dayIndex + delta) % 7) - ((currentDay + delta) % 7);\n return addDays(date_, diff, options);\n}\n\n// Fallback for modularized imports:\nexport default setDay;\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\n// Day of week\nexport class DayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"EEEEE\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"EEEE\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"D\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// Local day of week\nexport class LocalDayParser extends Parser {\n priority = 90;\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"e\":\n case \"ee\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"eo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"eee\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"eeeee\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"eeee\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// Stand-alone local day of week\nexport class StandAloneLocalDayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"c\":\n case \"cc\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"co\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"ccc\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // T\n case \"ccccc\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return (\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // Tuesday\n case \"cccc\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"e\",\n \"t\",\n \"T\",\n ];\n}\n","import { addDays } from \"./addDays.js\";\nimport { getISODay } from \"./getISODay.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setISODay} function options.\n */\n\n/**\n * @name setISODay\n * @category Weekday Helpers\n * @summary Set the day of the ISO week to the given date.\n *\n * @description\n * Set the day of the ISO week to the given date.\n * ISO week starts with Monday.\n * 7 is the index of Sunday, 1 is the index of Monday, etc.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param day - The day of the ISO week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the day of the ISO week set\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * const result = setISODay(new Date(2014, 8, 1), 7)\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setISODay(date, day, options) {\n const date_ = toDate(date, options?.in);\n const currentDay = getISODay(date_, options);\n const diff = day - currentDay;\n return addDays(date_, diff, options);\n}\n\n// Fallback for modularized imports:\nexport default setISODay;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISODay} function options.\n */\n\n/**\n * @name getISODay\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The day of ISO week\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * const result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\nexport function getISODay(date, options) {\n const day = toDate(date, options?.in).getDay();\n return day === 0 ? 7 : day;\n}\n\n// Fallback for modularized imports:\nexport default getISODay;\n","import { setISODay } from \"../../../setISODay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// ISO day of week\nexport class ISODayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n\n switch (token) {\n // 2\n case \"i\":\n case \"ii\": // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case \"io\":\n return match.ordinalNumber(dateString, { unit: \"day\" });\n // Tue\n case \"iii\":\n return mapValue(\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // T\n case \"iiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tu\n case \"iiiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tuesday\n case \"iiii\":\n default:\n return mapValue(\n match.day(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n\n set(date, _flags, value) {\n date = setISODay(date, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"E\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\nexport class AMPMParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"a\":\n case \"aa\":\n case \"aaa\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"aaaaa\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"b\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\nexport class AMPMMidnightParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"b\":\n case \"bb\":\n case \"bbb\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"bbbbb\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\n// in the morning, in the afternoon, in the evening, at night\nexport class DayPeriodParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"BBBBB\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour1to12Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"h\":\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case \"ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setHours(0, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"H\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour0to23Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"H\":\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case \"Ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n\n set(date, _flags, value) {\n date.setHours(value, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour0To11Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"K\":\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case \"Ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"h\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour1To24Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"k\":\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case \"ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n\n set(date, _flags, value) {\n const hours = value <= 24 ? value % 24 : value;\n date.setHours(hours, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"H\", \"K\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class MinuteParser extends Parser {\n priority = 60;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"m\":\n return parseNumericPattern(numericPatterns.minute, dateString);\n case \"mo\":\n return match.ordinalNumber(dateString, { unit: \"minute\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setMinutes(value, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class SecondParser extends Parser {\n priority = 50;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"s\":\n return parseNumericPattern(numericPatterns.second, dateString);\n case \"so\":\n return match.ordinalNumber(dateString, { unit: \"second\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setSeconds(value, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\nexport class FractionOfSecondParser extends Parser {\n priority = 30;\n\n parse(dateString, token) {\n const valueCallback = (value) =>\n Math.trunc(value * Math.pow(10, -token.length + 3));\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n\n set(date, _flags, value) {\n date.setMilliseconds(value);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseTimezonePattern } from \"../utils.js\";\n\n// Timezone (ISO-8601. +00:00 is `'Z'`)\nexport class ISOTimezoneWithZParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"X\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"XX\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"XXXX\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"XXXXX\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"XXX\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"x\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseTimezonePattern } from \"../utils.js\";\n\n// Timezone (ISO-8601)\nexport class ISOTimezoneParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"x\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"xx\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"xxxx\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"xxxxx\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"xxx\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"X\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseAnyDigitsSigned } from \"../utils.js\";\n\nexport class TimestampSecondsParser extends Parser {\n priority = 40;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value * 1000), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseAnyDigitsSigned } from \"../utils.js\";\n\nexport class TimestampMillisecondsParser extends Parser {\n priority = 20;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { EraParser } from \"./parsers/EraParser.js\";\nimport { YearParser } from \"./parsers/YearParser.js\";\nimport { LocalWeekYearParser } from \"./parsers/LocalWeekYearParser.js\";\nimport { ISOWeekYearParser } from \"./parsers/ISOWeekYearParser.js\";\nimport { ExtendedYearParser } from \"./parsers/ExtendedYearParser.js\";\nimport { QuarterParser } from \"./parsers/QuarterParser.js\";\nimport { StandAloneQuarterParser } from \"./parsers/StandAloneQuarterParser.js\";\nimport { MonthParser } from \"./parsers/MonthParser.js\";\nimport { StandAloneMonthParser } from \"./parsers/StandAloneMonthParser.js\";\nimport { LocalWeekParser } from \"./parsers/LocalWeekParser.js\";\nimport { ISOWeekParser } from \"./parsers/ISOWeekParser.js\";\nimport { DateParser } from \"./parsers/DateParser.js\";\nimport { DayOfYearParser } from \"./parsers/DayOfYearParser.js\";\nimport { DayParser } from \"./parsers/DayParser.js\";\nimport { LocalDayParser } from \"./parsers/LocalDayParser.js\";\nimport { StandAloneLocalDayParser } from \"./parsers/StandAloneLocalDayParser.js\";\nimport { ISODayParser } from \"./parsers/ISODayParser.js\";\nimport { AMPMParser } from \"./parsers/AMPMParser.js\";\nimport { AMPMMidnightParser } from \"./parsers/AMPMMidnightParser.js\";\nimport { DayPeriodParser } from \"./parsers/DayPeriodParser.js\";\nimport { Hour1to12Parser } from \"./parsers/Hour1to12Parser.js\";\nimport { Hour0to23Parser } from \"./parsers/Hour0to23Parser.js\";\nimport { Hour0To11Parser } from \"./parsers/Hour0To11Parser.js\";\nimport { Hour1To24Parser } from \"./parsers/Hour1To24Parser.js\";\nimport { MinuteParser } from \"./parsers/MinuteParser.js\";\nimport { SecondParser } from \"./parsers/SecondParser.js\";\nimport { FractionOfSecondParser } from \"./parsers/FractionOfSecondParser.js\";\nimport { ISOTimezoneWithZParser } from \"./parsers/ISOTimezoneWithZParser.js\";\nimport { ISOTimezoneParser } from \"./parsers/ISOTimezoneParser.js\";\nimport { TimestampSecondsParser } from \"./parsers/TimestampSecondsParser.js\";\nimport { TimestampMillisecondsParser } from \"./parsers/TimestampMillisecondsParser.js\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\nexport const parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser(),\n};\n","import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { longFormatters } from \"./_lib/format/longFormatters.js\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getDefaultOptions } from \"./getDefaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\nimport { DateTimezoneSetter } from \"./parse/_lib/Setter.js\";\nimport { parsers } from \"./parse/_lib/parsers.js\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { longFormatters, parsers };\n\n/**\n * The {@link parse} function options.\n */\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\n\nconst notWhitespaceRegExp = /\\S/;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangeably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear)\n * and [setWeekYear](https://date-fns.org/docs/setWeekYear)).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param dateStr - The string to parse\n * @param formatStr - The string of tokens\n * @param referenceDate - defines values missing from the parsed dateString\n * @param options - An object with options.\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @returns The parsed date\n *\n * @throws `options.locale` must contain `match` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport function parse(dateStr, formatStr, referenceDate, options) {\n const invalidDate = () => constructFrom(options?.in || referenceDate, NaN);\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n if (!formatStr)\n return dateStr ? invalidDate() : toDate(referenceDate, options?.in);\n\n const subFnOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n // If timezone isn't specified, it will try to use the context or\n // the reference date and fallback to the system time zone.\n const setters = [new DateTimezoneSetter(options?.in, referenceDate)];\n\n const tokens = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp);\n\n const usedTokens = [];\n\n for (let token of tokens) {\n if (\n !options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n if (\n !options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n\n const firstCharacter = token[0];\n const parser = parsers[firstCharacter];\n if (parser) {\n const { incompatibleTokens } = parser;\n if (Array.isArray(incompatibleTokens)) {\n const incompatibleToken = usedTokens.find(\n (usedToken) =>\n incompatibleTokens.includes(usedToken.token) ||\n usedToken.token === firstCharacter,\n );\n if (incompatibleToken) {\n throw new RangeError(\n `The format string mustn't contain \\`${incompatibleToken.fullToken}\\` and \\`${token}\\` at the same time`,\n );\n }\n } else if (parser.incompatibleTokens === \"*\" && usedTokens.length > 0) {\n throw new RangeError(\n `The format string mustn't contain \\`${token}\\` and any other token at the same time`,\n );\n }\n\n usedTokens.push({ token: firstCharacter, fullToken: token });\n\n const parseResult = parser.run(\n dateStr,\n token,\n locale.match,\n subFnOptions,\n );\n\n if (!parseResult) {\n return invalidDate();\n }\n\n setters.push(parseResult.setter);\n\n dateStr = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateStr.indexOf(token) === 0) {\n dateStr = dateStr.slice(token.length);\n } else {\n return invalidDate();\n }\n }\n }\n\n // Check if the remaining input contains something other than whitespace\n if (dateStr.length > 0 && notWhitespaceRegExp.test(dateStr)) {\n return invalidDate();\n }\n\n const uniquePrioritySetters = setters\n .map((setter) => setter.priority)\n .sort((a, b) => b - a)\n .filter((priority, index, array) => array.indexOf(priority) === index)\n .map((priority) =>\n setters\n .filter((setter) => setter.priority === priority)\n .sort((a, b) => b.subPriority - a.subPriority),\n )\n .map((setterArray) => setterArray[0]);\n\n let date = toDate(referenceDate, options?.in);\n\n if (isNaN(+date)) return invalidDate();\n\n const flags = {};\n for (const setter of uniquePrioritySetters) {\n if (!setter.validate(date, subFnOptions)) {\n return invalidDate();\n }\n\n const result = setter.set(date, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n date = result[0];\n Object.assign(flags, result[1]);\n // Result is date\n } else {\n date = result;\n }\n }\n\n return date;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default parse;\n","import { getDefaultOptions as getInternalDefaultOptions } from \"./_lib/defaultOptions.js\";\n\n/**\n * @name getDefaultOptions\n * @category Common Helpers\n * @summary Get default options.\n * @pure false\n *\n * @description\n * Returns an object that contains defaults for\n * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate`\n * arguments for all functions.\n *\n * You can change these with [setDefaultOptions](https://date-fns.org/docs/setDefaultOptions).\n *\n * @returns The default options\n *\n * @example\n * const result = getDefaultOptions()\n * //=> {}\n *\n * @example\n * setDefaultOptions({ weekStarsOn: 1, firstWeekContainsDate: 4 })\n * const result = getDefaultOptions()\n * //=> { weekStarsOn: 1, firstWeekContainsDate: 4 }\n */\nexport function getDefaultOptions() {\n return Object.assign({}, getInternalDefaultOptions());\n}\n\n// Fallback for modularized imports:\nexport default getDefaultOptions;\n","import Resource from '../resource.js';\nimport { format, parse, isValid } from 'date-fns';\nimport { register } from '@fleetbase/sdk';\n\nexport default class StoreHour extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'store-hour', options);\n }\n\n get day() {\n return this.getAttribute('day');\n }\n\n get isClosed() {\n return this.getAttribute('start') === null && this.getAttribute('end') === null;\n }\n\n get is24Hours() {\n const start = this.startDateInstance;\n const end = this.endDateInstance;\n const diff = Math.abs(start - end);\n const hours = Math.floor(diff / 1000 / 60) / 60;\n\n return hours > 23;\n }\n\n get startDateInstance() {\n if (!this.hasAttribute('start')) {\n return null;\n }\n\n const start = this.getAttribute('start');\n const includesSeconds = start.split(':').length === 3;\n const format = includesSeconds ? 'HH:mm:ss' : 'HH:mm';\n\n return parse(start, format, new Date());\n }\n\n get endDateInstance() {\n if (!this.hasAttribute('end')) {\n return null;\n }\n\n const end = this.getAttribute('end');\n const includesSeconds = end.split(':').length === 3;\n const format = includesSeconds ? 'HH:mm:ss' : 'HH:mm';\n\n return parse(end, format, new Date());\n }\n\n get humanReadableHoursRange() {\n if (!isValid(this.startDateInstance) || !isValid(this.endDateInstance)) {\n return `${this.start} - ${this.end}`;\n }\n\n return `${format(this.startDateInstance, 'p')} - ${format(this.endDateInstance, 'p')}`;\n }\n\n get humanReadableHours() {\n if (this.isClosed) {\n return 'Closed';\n }\n\n if (this.is24Hours) {\n return '24 Hours';\n }\n\n return this.humanReadableHoursRange;\n }\n\n // remove default resource methods\n create() {\n throw new Error('There is no create() method store location!');\n }\n\n // remove default resource methods\n update() {\n throw new Error('There is no update() method store location!');\n }\n\n // remove default resource methods\n destroy() {\n throw new Error('There is no destroy() method store location!');\n }\n\n // remove default resource methods\n reload() {\n throw new Error('There is no reload() method store location!');\n }\n}\n\nregister('resource', 'StoreHour', StoreHour);\n","import Resource from '../resource.js';\nimport StoreHour from './store-hour.js';\nimport { Collection, lookup, register } from '@fleetbase/sdk';\nimport { format } from 'date-fns';\n\nexport default class StoreLocation extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'store-location', options);\n }\n\n get latitude() {\n return this.getAttribute('place.location.coordinates.1');\n }\n\n get longitude() {\n return this.getAttribute('place.location.coordinates.0');\n }\n\n get hours() {\n return new Collection((this.getAttribute('hours') || []).map((attributes) => new StoreHour(attributes, this.adapter)));\n }\n\n /** Raw embedded merchant payload, normalized across API response versions. */\n get storeData() {\n const embeddedStore = this.getAttribute('store_data');\n const legacyStore = this.getAttribute('store');\n\n return embeddedStore || (legacyStore && typeof legacyStore === 'object' ? legacyStore : null);\n }\n\n /** Public store identifier for this location. */\n get storeId() {\n const store = this.getAttribute('store');\n\n return typeof store === 'string' ? store : this.storeData?.id || this.storeData?.public_id;\n }\n\n /** Typed embedded merchant when requested with `with_store`. */\n get merchant() {\n return this.storeData ? lookup('resource', 'Store', this.storeData, this.adapter) : null;\n }\n\n get isAlwaysOpen() {\n return this.hours.every((hour) => hour?.is24Hours);\n }\n\n get today() {\n const today = format(new Date(), 'EEEE');\n\n return this.schedule[today];\n }\n\n get schedule() {\n const schedule = {};\n const week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];\n\n for (let i = 0; i < week.length; i++) {\n const day = week[i];\n\n schedule[day] = new Collection();\n }\n\n for (let i = 0; i < this.hours.length; i++) {\n const hour = this.hours.objectAt(i);\n\n schedule[hour.day].pushObject(hour);\n }\n\n return schedule;\n }\n\n // remove default resource methods\n create() {\n throw new Error('There is no create() method store location!');\n }\n\n // remove default resource methods\n update() {\n throw new Error('There is no update() method store location!');\n }\n\n // remove default resource methods\n destroy() {\n throw new Error('There is no destroy() method store location!');\n }\n}\n\nregister('resource', 'StoreLocation', StoreLocation);\n","import Resource from '../resource.js';\nimport { register } from '@fleetbase/sdk';\n\nexport default class PaymentGateway extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'payment-gateway', options);\n }\n\n get type() {\n return this.getAttribute('type');\n }\n\n get code() {\n return this.getAttribute('code');\n }\n\n get isCashGateway() {\n return this.type === 'cash';\n }\n\n get isStripeGateway() {\n return this.type === 'stripe';\n }\n\n setCheckoutToken(token) {\n this.token = token;\n }\n\n getCheckoutToken() {\n return this.token;\n }\n\n // remove default resource methods\n findRecord() {\n throw new Error('There is no findRecord() method for payment gateways!');\n }\n\n // remove default resource methods\n create() {\n throw new Error('There is no create() method for payment gateways!');\n }\n\n // remove default resource methods\n update() {\n throw new Error('There is no update() method for payment gateways!');\n }\n\n // remove default resource methods\n destroy() {\n throw new Error('There is no destroy() method for payment gateways!');\n }\n\n // remove default resource methods\n reload() {\n throw new Error('There is no reload() method for payment gateways!');\n }\n}\n\nregister('resource', 'PaymentGateway', PaymentGateway);\n","import Resource from '../resource.js';\nimport StoreLocation from './store-location.js';\nimport PaymentGateway from './payment-gateway.js';\nimport Review from './review.js';\nimport { Collection, Place, register } from '@fleetbase/sdk';\n\nexport default class Store extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'store', options);\n }\n\n getReviews(params = {}) {\n return this.adapter.get('reviews', { store: this.id, ...params }).then((reviews) => {\n return new Collection(reviews.map((attributes) => new Review(attributes, this.adapter)));\n });\n }\n\n getLocations(params = {}) {\n return this.adapter.get('locations', { store: this.id, ...params }).then((storeLocations) => {\n return new Collection(\n storeLocations.map((attributes) => {\n if (attributes.place) {\n attributes.place = new Place(attributes.place);\n }\n\n return new StoreLocation(attributes, this.adapter);\n })\n );\n });\n }\n\n getLocation(id) {\n return this.adapter.get(`locations/${id}`, { store: this.id }).then((attributes) => {\n return new StoreLocation(attributes, this.adapter);\n });\n }\n\n getPaymentGateways(params = {}) {\n return this.adapter.get('gateways', params).then((gateways) => {\n return new Collection(\n gateways.map((attributes) => {\n return new PaymentGateway(attributes, this.adapter);\n })\n );\n });\n }\n\n getPaymentGateway(id) {\n return this.adapter.get(`gateways/${id}`).then((attributes) => {\n return new PaymentGateway(attributes, this.adapter);\n });\n }\n}\n\nregister('resource', 'Store', Store);\n","import Resource from '../resource.js';\nimport Review from './review.js';\nimport { formatCurrency, isEmpty } from '../utils/index.js';\nimport { Collection, register } from '@fleetbase/sdk';\nimport Store from './store.js';\n\nexport default class Product extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'product', options);\n }\n\n variants() {\n return this.getAttribute('variants');\n }\n\n addons() {\n return this.getAttribute('addon_categories');\n }\n\n get isOnSale() {\n return this.getAttribute('is_on_sale');\n }\n\n get isNotOnSale() {\n return !this.getAttribute('is_on_sale');\n }\n\n get formattedAmount() {\n const { price, sale_price, currency } = this.getAttributes(['price', 'sale_price', 'currency']);\n\n if (this.isOnSale) {\n if (isEmpty(sale_price) || isEmpty(currency)) {\n return null;\n }\n\n return formatCurrency(sale_price / 100, currency);\n }\n\n if (isEmpty(price) || isEmpty(currency)) {\n return null;\n }\n\n return formatCurrency(price / 100, currency);\n }\n\n get merchant() {\n const attributes = this.getAttribute('store');\n\n return attributes && typeof attributes === 'object' ? new Store(attributes, this.adapter) : null;\n }\n\n getReviews() {\n return this.adapter.get('reviews', { store: this.id }).then((reviews) => {\n return new Collection(reviews.map((attributes) => new Review(attributes, this.adapter)));\n });\n }\n}\n\nregister('resource', 'Product', Product);\n","import Resource from '../resource.js';\nimport Product from './product.js';\nimport { Collection, register } from '@fleetbase/sdk';\n\nexport default class Category extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'category', options);\n }\n\n getProducts() {\n return this.adapter.get('products', { category: this.id }).then((products) => {\n return new Collection(products.map((attributes) => new Product(attributes, this.adapter)));\n });\n }\n}\n\nregister('resource', 'Category', Category);\n","import Resource from '../resource.js';\nimport StorefrontStore from '../store.js';\nimport { Collection, Order, Place, StoreActions, register } from '@fleetbase/sdk';\nimport { isPhone } from '../utils/is-phone.js';\n\nexport const customerActions = new StoreActions({\n // const { error } = await storefront.customers.login('+1 111-1111');\n login: function (identity, password = null, attributes = {}) {\n // handle phone number authentication\n if (isPhone(identity)) {\n return this.adapter.post('customers/login-with-sms', { phone: identity });\n }\n\n if (!password) {\n throw new Error('Login requires password!');\n }\n\n return this.adapter.post('customers/login', { identity, password, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n // const customer = await storefront.customers.loginWithApple('', '', '', '', '');\n loginWithApple: function (appleUserId, identityToken, authorizationCode, email, name, attributes = {}) {\n return this.adapter.post('customers/login-with-apple', { appleUserId, identityToken, authorizationCode, email, name, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n // const customer = await storefront.customers.loginWithFacebook('', '', '', '');\n loginWithFacebook: function (facebookUserId, email, name, avatarUrl, attributes = {}) {\n return this.adapter.post('customers/login-with-facebook', { facebookUserId, email, name, avatarUrl, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n // const customer = await storefront.customers.loginWithGoogle('', '');\n loginWithGoogle: function (idToken, clientId, attributes = {}) {\n return this.adapter.post('customers/login-with-google', { idToken, clientId, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n verifyCode: function (identity, code, attributes = {}) {\n return this.adapter.post('customers/verify-code', { identity, code, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n requestCreationCode(identity, mode = 'email') {\n return this.adapter.post('customers/request-creation-code', {\n identity,\n mode,\n });\n },\n\n create(identity, code, attributes = {}) {\n return this.adapter.post('customers', { identity, code, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n retrieve: function (id) {\n return this.findRecord(id);\n },\n});\n\nexport default class Customer extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'customer', {\n actions: customerActions,\n ...options,\n });\n }\n\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new StorefrontStore(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions,\n });\n\n return this;\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n async syncDevice(token, platform) {\n try {\n const headers = { 'Customer-Token': this.token };\n const response = await this.adapter.setHeaders(headers).post('customers/register-device', { token, platform });\n return response;\n } catch (error) {\n console.error(`Error making request to register customer device token:`, error);\n throw error;\n }\n }\n\n async performAuthorizedRequest(endpoint, params = {}, method = 'GET') {\n try {\n const headers = { 'Customer-Token': this.token };\n const response = await this.adapter.setHeaders(headers)[method.toLowerCase()](endpoint, params);\n return response;\n } catch (error) {\n console.error(`Error in ${method} request to ${endpoint}:`, error);\n throw error;\n }\n }\n\n async getSavedPlaces() {\n try {\n const places = await this.performAuthorizedRequest('customers/places');\n return new Collection(places.map((attributes) => new Place(attributes, this.adapter)));\n } catch (error) {\n console.error('Failed to retrieve saved places');\n throw error;\n }\n }\n\n async getOrderHistory(params = {}) {\n try {\n const orders = await this.performAuthorizedRequest('customers/orders', params);\n return new Collection(orders.map((attributes) => new Order(attributes, this.adapter)));\n } catch (error) {\n console.error('Failed to retrieve order history');\n throw error;\n }\n }\n\n getStripeEphemeralKey(params = {}) {\n return this.adapter.setHeaders({ 'Customer-Token': this.token }).post('customers/stripe-ephemeral-key', params);\n }\n\n getStripeSetupIntent(params = {}) {\n return this.adapter.setHeaders({ 'Customer-Token': this.token }).post('customers/stripe-setup-intent', params);\n }\n}\n\nregister('resource', 'Customer', Customer);\n","export function isPhone(phone = '') {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/g.test(phone);\n}\n\nexport default isPhone;\n","import Resource from '../resource.js';\nimport Product from './product.js';\nimport { StoreActions, register } from '@fleetbase/sdk';\n\nconst { isArray } = Array;\n\nexport const cartActions = new StoreActions({\n create: undefined,\n findAll: undefined,\n query: undefined,\n queryRecord: undefined,\n\n add: function (id, productId, quantity = 1, data = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/${productId}`, { ...data, quantity }, options).then(this.afterFetch.bind(this));\n },\n\n update: function (id, cartItemId, quantity, data = {}, options = {}) {\n return this.adapter.put(`${this.namespace}/${id}/${cartItemId}`, { ...data, quantity }, options).then(this.afterFetch.bind(this));\n },\n\n remove: function (id, cartItemId, options = {}) {\n return this.adapter.delete(`${this.namespace}/${id}/${cartItemId}`, {}, options).then(this.afterFetch.bind(this));\n },\n\n empty: function (id, options = {}) {\n return this.adapter.put(`${this.namespace}/${id}/empty`, {}, options).then(this.afterFetch.bind(this));\n },\n\n retrieve: function (id = '') {\n return this.findRecord(id);\n },\n});\n\nexport default class Cart extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'cart', { actions: cartActions, ...options });\n }\n\n add(productId, quantity = 1, data = {}, options = {}) {\n if (productId instanceof Product) {\n productId = productId.id;\n }\n\n return this.store.add(this.id, productId, quantity, data, options);\n }\n\n update(cartItemId, quantity, data = {}, options = {}) {\n return this.store.update(this.id, cartItemId, quantity, data, options);\n }\n\n remove(cartItemId, options = {}) {\n return this.store.remove(this.id, cartItemId, options);\n }\n\n empty(options = {}) {\n return this.store.empty(this.id, options);\n }\n\n delete() {\n return this.destroy();\n }\n\n refresh() {\n return this.store.retrieve(this.id);\n }\n\n subtotal() {\n let subtotal = 0;\n\n this.contents().forEach((cartItem) => {\n subtotal += cartItem.subtotal;\n });\n\n return subtotal;\n }\n\n contents() {\n return this.getAttribute('items', []);\n }\n\n hasProduct(productId) {\n return this.contents().findIndex((cartItem) => cartItem.product_id === productId) !== -1;\n }\n\n get isEmpty() {\n const contents = this.contents();\n\n if (!isArray(contents)) {\n return true;\n }\n\n return contents.length === 0;\n }\n\n get isNotEmpty() {\n return !this.isEmpty;\n }\n}\n\nregister('resource', 'Cart', Cart);\n","import Resource from '../resource.js';\nimport PaymentGateway from './payment-gateway.js';\nimport Category from './category.js';\nimport Product from './product.js';\nimport Review from './review.js';\nimport Store from './store.js';\nimport StoreLocation from './store-location.js';\nimport { Collection, register } from '@fleetbase/sdk';\n\nexport default class Network extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'network', options);\n }\n\n getTags(params = {}) {\n return this.adapter.get('tags', params);\n }\n\n async getResourceCollection(endpoint, ResourceClass, params = {}) {\n const resources = await this.adapter.get(endpoint, params);\n return new Collection(resources.map((attributes) => new ResourceClass(attributes, this.adapter)));\n }\n\n async getStores(params = {}) {\n return this.getResourceCollection('stores', Store, params);\n }\n\n async getStoreLocations(params = {}) {\n return this.getResourceCollection('store-locations', StoreLocation, params);\n }\n\n async getCategories(params = {}) {\n return this.getResourceCollection('categories', Category, params);\n }\n\n async search(query, params = {}) {\n return this.getResourceCollection('search', Product, { query, with_store: true, ...params });\n }\n\n async lookupStore(id) {\n const attributes = await this.adapter.get(`lookup/${id}`);\n return new Store(attributes, this.adapter);\n }\n\n async getReviews(storeId, params = {}) {\n return this.getResourceCollection('reviews', Review, { store: storeId, ...params });\n }\n\n async getPaymentGateways(params = {}) {\n return this.getResourceCollection('gateways', PaymentGateway, params);\n }\n}\n\nregister('resource', 'Network', Network);\n","import StorefrontStore from '../store.js';\nimport { Adapter, Collection, ServiceQuote, register } from '@fleetbase/sdk';\nimport { formatCurrency, isEmpty, isArray } from '../utils/index.js';\n\nexport default class DeliveryServiceQuote extends ServiceQuote {\n constructor(attributes = {}, adapter, options = {}) {\n let finalAttributes = attributes;\n let finalAdapter = adapter;\n\n // If `attributes` is actually an Adapter, adjust the arguments accordingly.\n if (attributes instanceof Adapter) {\n finalAttributes = {};\n finalAdapter = attributes;\n }\n\n // Call `super()` exactly once with the resolved arguments.\n super(finalAttributes, finalAdapter, 'service-quote', options);\n }\n\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new StorefrontStore(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions,\n });\n\n return this;\n }\n\n get formattedAmount() {\n const { amount, currency } = this.getAttributes(['amount', 'currency']);\n\n if (isEmpty(amount) || isEmpty(currency)) {\n return null;\n }\n\n return formatCurrency(amount / 100, currency);\n }\n\n async fromCart() {\n return this.fetchServiceQuotesFromCart(...arguments);\n }\n\n async fetchServiceQuotesFromCart(origin, destination, cart, config = 'storefront', all = false) {\n if (origin?.id) {\n origin = origin.id;\n }\n\n if (destination?.id) {\n destination = destination.id;\n }\n\n if (cart?.id) {\n cart = cart.id;\n }\n\n try {\n const serviceQuotes = await this.adapter.get('service-quotes/from-cart', {\n origin,\n destination,\n cart,\n config,\n all,\n });\n\n if (isArray(serviceQuotes)) {\n return new Collection(serviceQuotes.map((serviceQuote) => new DeliveryServiceQuote(serviceQuote, this.adapter)));\n }\n\n return new DeliveryServiceQuote(serviceQuotes, this.adapter);\n } catch (error) {\n console.error('Error fetching service quotes:', error);\n throw error;\n }\n }\n\n static async getFromCart(adapter, origin, destination, cart, config = 'storefront', all = false) {\n const quote = new DeliveryServiceQuote(adapter);\n return quote.fetchServiceQuotesFromCart(origin, destination, cart, config, all);\n }\n}\n\nregister('resource', 'DeliveryServiceQuote', DeliveryServiceQuote);\n","import Resource from '../resource.js';\nimport { Order, StoreActions, isResource, register } from '@fleetbase/sdk';\n\nexport const checkoutActions = new StoreActions({\n create: undefined,\n findAll: undefined,\n query: undefined,\n queryRecord: undefined,\n\n initialize: function (customer, cart, serviceQuote, gateway, orderOptions = {}, options = {}) {\n if (isResource(customer)) {\n customer = customer.id;\n }\n\n if (isResource(cart)) {\n cart = cart.id;\n }\n\n if (isResource(serviceQuote)) {\n serviceQuote = serviceQuote.id;\n }\n\n if (isResource(gateway)) {\n gateway = gateway.getAttribute('code');\n }\n\n return this.adapter.get(`${this.namespace}/before`, { ...orderOptions, customer, cart, serviceQuote, gateway }, options);\n },\n\n captureOrder: function (token, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/capture`, { token, ...params }, options).then((orderJson) => new Order(orderJson));\n },\n\n createStripeSetupIntent: function (customer, params = {}, options = {}) {\n if (isResource(customer)) {\n customer = customer.id;\n }\n\n return this.adapter.post(`${this.namespace}/stripe-setup-intent`, { customer, ...params }, options);\n },\n\n updateStripePaymentIntent: function (paymentIntent, customer, cart, serviceQuote, orderOptions = {}, options = {}) {\n if (isResource(customer)) {\n customer = customer.id;\n }\n\n if (isResource(cart)) {\n cart = cart.id;\n }\n\n if (isResource(serviceQuote)) {\n serviceQuote = serviceQuote.id;\n }\n\n return this.adapter.put(`${this.namespace}/stripe-update-payment-intent`, { paymentIntent, customer, cart, serviceQuote, ...orderOptions }, options);\n },\n});\n\nexport default class Checkout extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'checkout', { actions: checkoutActions, ...options });\n }\n\n initialize() {\n return this.store.initialize(...arguments);\n }\n\n captureOrder() {\n return this.store.captureOrder(...arguments);\n }\n}\n\nregister('resource', 'Checkout', Checkout);\n","import Resource from '../resource.js';\nimport { register } from '@fleetbase/sdk';\n\nexport default class FoodTruck extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'food-truck', options);\n }\n}\n\nregister('resource', 'FoodTruck', FoodTruck);\n","import StorefrontStore from './store.js';\nimport { isKeyValid } from './utils/index.js';\nimport { Product, Category, Customer, Cart, Store, StoreLocation, StoreHour, DeliveryServiceQuote, Checkout, PaymentGateway, Review, Network, FoodTruck } from './resources.js';\nimport { cartActions } from './resources/cart.js';\nimport { customerActions } from './resources/customer.js';\nimport { checkoutActions } from './resources/checkout.js';\nimport { reviewActions } from './resources/review.js';\nimport { Collection, lookup, detectAdapter } from '@fleetbase/sdk';\n\n/**\n * // instance\n * const storefront = new Storefront();\n *\n */\nexport default class Storefront {\n /**\n * Builds an instance of the Fleetbase Storefront SDK\n *\n * @param {String} storeKey The access key for the storefront store\n * @param {Object} config The config object\n * @param {Boolean} debug Enable debug mode\n * @return {Storefront} Instance\n */\n constructor(storeKey, config = {}, debug = false) {\n this.version = config.version || 'v1';\n this.options = {\n version: this.version,\n host: config.host || 'https://api.fleetbase.io',\n namespace: config.namespace || `storefront/${this.version}`,\n publicKey: storeKey,\n debug,\n };\n\n if (!isKeyValid(storeKey)) {\n throw new Error('⚠️ Invalid Storefront key given to Storefront SDK');\n }\n\n this.adapter = config.adapter || detectAdapter(this.options);\n\n this.initializeStores();\n }\n\n initializeStores() {\n this.products = new StorefrontStore('product', this.adapter);\n this.categories = new StorefrontStore('category', this.adapter);\n this.foodTrucks = new StorefrontStore('food-truck', this.adapter);\n this.reviews = new StorefrontStore('review', this.adapter).extendActions(reviewActions);\n this.customers = new StorefrontStore('customer', this.adapter).extendActions(customerActions);\n this.cart = new StorefrontStore('cart', this.adapter).extendActions(cartActions);\n this.checkout = new StorefrontStore('checkout', this.adapter).extendActions(checkoutActions);\n\n return this;\n }\n\n /** loads information about this storefront */\n about(options = {}) {\n return this.adapter.get('about').then((attributes) => (options.resource ? this.hydrateOwner(attributes) : attributes));\n }\n\n /** loads the storefront owner as a typed Store or Network resource */\n getOwner() {\n return this.about({ resource: true });\n }\n\n /** lookup a specific store or network provided the ID */\n lookup(id, options = {}) {\n return this.adapter.get(`lookup/${id}`).then((attributes) => (options.resource ? this.hydrateOwner(attributes) : attributes));\n }\n\n /** lookup a store or network as a typed resource */\n lookupResource(id) {\n return this.lookup(id, { resource: true });\n }\n\n /** search products in store or network */\n search(query, options = {}) {\n return this.adapter.get('search', { query, ...options }).then((products) => {\n return new Collection(products.map((product) => new Product(product, this.adapter)));\n });\n }\n\n hydrateOwner(attributes = {}) {\n if (attributes?.is_network === true) {\n return new Network(attributes, this.adapter);\n }\n\n return new Store(attributes, this.adapter);\n }\n\n static newInstance() {\n return new Storefront(...arguments);\n }\n\n setAdapter(adapter) {\n this.adapter = adapter;\n\n return this.initializeStores();\n }\n\n getAdapter() {\n return this.adapter;\n }\n}\n\nexport { Product, Category, Customer, Cart, Store, StoreLocation, StoreHour, DeliveryServiceQuote, Checkout, PaymentGateway, Review, Network, FoodTruck, lookup };\n","export function isKeyValid(key) {\n return typeof key === 'string' && key.length > 30 && (key.startsWith('store_') || key.startsWith('network_'));\n}\n\nexport default isKeyValid;\n"],"names":["N","t","e","n","arguments","length","h","this","g","RegExp","str","chain","v","key","value","r","indexOf","toLowerCase","i","match","replace","applyRules","pluralRules","uncountableWords","singularRules","split","o","charAt","toUpperCase","substring","join","a","s","slice","uppercase","underbarPrefix","idSuffix","underbar","capitalize","spaceOrUnderbar","camelize","underscore","nonTitlecasedWords","pluralize","concat","trim","singularize","demodulize","parseInt","isNaN","Object","values","shift","apply","F","Array","prototype","call","invoke","S","D","z","StorefrontStore","_classCallCheck","_callSuper","_inherits","Store","_createClass","extendStoreActions","undefined","json","lookup","classify","resource","adapter","formatCurrency","amount","currency","currencyDisplay","Intl","NumberFormat","style","format","isEmpty","obj","none","size","objectType","_typeof","isArray","StorefrontResource","Resource","_this$options","store","onAfterFetch","syncAttributes","bind","actions","options","register","reviewActions","StoreActions","count","storeId","params","get","namespace","Review","attributes","millisecondsInWeek","constructFromSymbol","Symbol","constructFrom","date","Date","constructor","toDate","argument","context","addDays","_date","NaN","setDate","getDate","defaultOptions","getDefaultOptions","startOfWeek","_ref","_ref2","_ref3","_options$weekStartsOn","_options$locale","_defaultOptions$local","weekStartsOn","locale","day","getDay","diff","setHours","startOfISOWeek","_objectSpread","getISOWeekYear","year","getFullYear","fourthOfJanuaryOfNextYear","setFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","getTime","getTimezoneOffsetInMilliseconds","utcDate","UTC","getMonth","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","startOfDay","differenceInCalendarDays","laterDate","earlierDate","_normalizeDates","_len","dates","_key","normalize","find","map","normalizeDates","_normalizeDates2","_slicedToArray","laterDate_","earlierDate_","laterStartOfDay","earlierStartOfDay","laterTimestamp","earlierTimestamp","Math","round","isValid","toString","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","args","width","String","defaultWidth","formats","formatLong","full","long","medium","short","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","valuesArray","formattingValues","defaultFormattingWidth","argumentCallback","buildMatchFn","string","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","array","predicate","findIndex","pattern","test","object","hasOwnProperty","findKey","valueCallback","rest","enUS","code","formatDistance","token","result","tokenValue","addSuffix","comparison","formatRelative","_baseDate","_options","localize","ordinalNumber","dirtyNumber","number","Number","rem100","era","narrow","abbreviated","wide","quarter","month","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","parsePattern","parseResult","any","index","firstWeekContainsDate","getDayOfYear","date_","startOfYear","getISOWeek","fourthOfJanuary","startOfISOWeekYear","getWeekYear","_options$firstWeekCon","firstWeekOfNextYear","firstWeekOfThisYear","getWeek","firstWeek","startOfWeekYear","addLeadingZeros","targetLength","abs","padStart","lightFormatters","signedYear","numberOfDigits","milliseconds","trunc","pow","dayPeriodEnum","formatters","G","y","unit","Y","signedWeekYear","weekYear","R","u","Q","ceil","q","M","L","w","week","I","isoWeek","d","dayOfYear","E","dayOfWeek","localDayOfWeek","c","isoDayOfWeek","dayPeriodEnumValue","b","hours","B","H","K","k","m","X","_localize","timezoneOffset","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","x","O","formatTimezoneShort","T","offset","delimiter","sign","absOffset","minutes","dateLongFormatter","timeLongFormatter","longFormatters","p","P","dateTimeFormat","datePattern","timePattern","dayOfYearTokenRE","weekYearTokenRE","throwTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","warnOrThrowProtectedError","input","_message","subject","message","console","warn","includes","RangeError","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","formatStr","_ref4","_ref5","_ref6","_ref7","_defaultOptions$local2","defaultLocale","_options$locale2","_options$locale3","originalDate","parts","firstCharacter","longFormatter","isToken","cleanEscapedString","preprocessor","formatterOptions","part","formatter","matched","Setter","_defineProperty","_utcDate","ValueSetter","validateValue","setValue","priority","subPriority","_this","flags","DateTimezoneSetter","reference","_this2","timestampIsSet","_constructor$prototyp","isConstructor","transpose","Parser","dateString","parse","setter","validate","set","_value","EraParser","numericPatterns","timezonePatterns","mapValue","parseFnResult","mapFn","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","isLeapYearIndex","YearParser","isTwoDigitYear","normalizedTwoDigitYear","LocalWeekYearParser","ISOWeekYearParser","_flags","firstWeekOfYear","ExtendedYearParser","QuarterParser","setMonth","StandAloneQuarterParser","MonthParser","StandAloneMonthParser","LocalWeekParser","setWeek","ISOWeekParser","setISOWeek","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","DateParser","isLeapYear","DayOfYearParser","setDay","currentDay","delta","DayParser","LocalDayParser","wholeWeekDays","floor","StandAloneLocalDayParser","setISODay","getISODay","ISODayParser","AMPMParser","AMPMMidnightParser","DayPeriodParser","Hour1to12Parser","isPM","Hour0to23Parser","Hour0To11Parser","Hour1To24Parser","MinuteParser","setMinutes","SecondParser","setSeconds","FractionOfSecondParser","setMilliseconds","ISOTimezoneWithZParser","ISOTimezoneParser","TimestampSecondsParser","TimestampMillisecondsParser","parsers","notWhitespaceRegExp","dateStr","referenceDate","invalidDate","assign","getInternalDefaultOptions","_step","subFnOptions","setters","tokens","usedTokens","_iterator","_createForOfIteratorHelper","_ret","_loop","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","parser","incompatibleTokens","incompatibleToken","usedToken","fullToken","push","run","done","err","f","uniquePrioritySetters","sort","filter","setterArray","_step2","_iterator2","StoreHour","getAttribute","start","startDateInstance","end","endDateInstance","hasAttribute","includesSeconds","isClosed","is24Hours","humanReadableHoursRange","Error","StoreLocation","Collection","embeddedStore","legacyStore","_this$storeData","_this$storeData2","storeData","id","public_id","every","hour","schedule","objectAt","pushObject","PaymentGateway","type","then","reviews","storeLocations","place","Place","_this3","_this4","gateways","_this5","Product","_this$getAttributes","getAttributes","price","sale_price","isOnSale","Category","category","products","customerActions","login","identity","password","isPhone","post","phone","afterFetch","loginWithApple","appleUserId","identityToken","authorizationCode","email","name","loginWithFacebook","facebookUserId","avatarUrl","loginWithGoogle","idToken","clientId","verifyCode","requestCreationCode","mode","create","retrieve","findRecord","Customer","_syncDevice","_asyncToGenerator","_regeneratorRuntime","mark","_callee","platform","headers","response","wrap","_context","prev","next","setHeaders","sent","abrupt","t0","error","stop","_x","_x2","_performAuthorizedRequest","_callee2","endpoint","method","_args2","_context2","_x3","_getSavedPlaces","_callee3","places","_context3","performAuthorizedRequest","_getOrderHistory","_callee4","orders","_args4","_context4","Order","cartActions","findAll","query","queryRecord","add","productId","quantity","data","update","cartItemId","put","remove","empty","Cart","destroy","subtotal","contents","forEach","cartItem","product_id","Network","_getResourceCollection","ResourceClass","resources","_args","_getStores","getResourceCollection","_getStoreLocations","_args3","_getCategories","_search","_callee5","_args5","_context5","with_store","_lookupStore","_callee6","_context6","_x4","_getReviews","_callee7","_args7","_context7","_x5","_getPaymentGateways","_callee8","_args8","_context8","DeliveryServiceQuote","finalAttributes","finalAdapter","Adapter","ServiceQuote","_fromCart","fetchServiceQuotesFromCart","_fetchServiceQuotesFromCart","origin","destination","cart","_origin","_destination","_cart","config","all","serviceQuotes","serviceQuote","_getFromCart","quote","_x6","_x7","checkoutActions","initialize","customer","gateway","orderOptions","isResource","captureOrder","orderJson","createStripeSetupIntent","updateStripePaymentIntent","paymentIntent","Checkout","_this$store","_this$store2","FoodTruck","Storefront","storeKey","debug","version","host","publicKey","startsWith","detectAdapter","initializeStores","categories","foodTrucks","extendActions","customers","checkout","hydrateOwner","about","product","is_network","_construct"],"mappings":"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","x_google_ignoreList":[0,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87]} \ No newline at end of file +{"version":3,"file":"storefront.js","sources":["../../node_modules/.pnpm/@fleetbase+sdk@1.2.13/node_modules/@fleetbase/sdk/dist/esm/fleetbase.js","../../src/store.ts","../../src/utils/is-phone.ts","../../src/utils/format-currency.ts","../../src/utils/is-key-valid.ts","../../src/utils/is-empty.ts","../../src/utils/array.ts","../../src/resource.ts","../../src/resources/review.ts","../../src/resources/store-hour.ts","../../src/resources/store-location.ts","../../src/resources/payment-gateway.ts","../../src/resources/store.ts","../../src/resources/product.ts","../../src/resources/category.ts","../../src/resources/customer.ts","../../src/resources/cart.ts","../../src/resources/network.ts","../../src/resources/delivery-service-quote.ts","../../src/resources/order.ts","../../src/resources/checkout.ts","../../src/resources/food-truck.ts","../../src/resources/order-actions.ts","../../src/storefront.ts"],"sourcesContent":["function t(t,e){this.v=t,this.k=e}function e(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,a=!0,s=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function g(t,e,n){return(e=j(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function y(t){return y=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},y(t)}function b(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,\"prototype\",{writable:!1}),e&&O(t,e)}function m(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(m=function(){return!!t})()}function w(t){if(\"undefined\"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t[\"@@iterator\"])return Array.from(t)}function k(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}function E(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function A(t){for(var e=1;e=0;--o){var a=this.tryEntries[o],s=a.completion;if(\"root\"===a.tryLoc)return i(\"end\");if(a.tryLoc<=this.prev){var u=r.call(a,\"catchLoc\"),c=r.call(a,\"finallyLoc\");if(u&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,\"finallyLoc\")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),_(n),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var i=r.arg;_(n)}return i}}throw Error(\"illegal catch attempt\")},delegateYield:function(e,n,r){return this.delegate={iterator:L(e),resultName:n,nextLoc:r},\"next\"===this.method&&(this.arg=t),g}},e}function O(t,e){return O=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},O(t,e)}function R(t,e){return n(t)||function(t,e){var n=null==t?null:\"undefined\"!=typeof Symbol&&t[Symbol.iterator]||t[\"@@iterator\"];if(null!=n){var r,i,o,a,s=[],u=!0,c=!1;try{if(o=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=o.call(n)).done)&&(s.push(r.value),s.length!==e);u=!0);}catch(t){c=!0,i=t}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw i}}return s}}(t,e)||_(t,e)||k()}function S(t){return function(t){if(Array.isArray(t))return e(t)}(t)||w(t)||_(t)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function j(t){var e=function(t,e){if(\"object\"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||\"default\");if(\"object\"!=typeof r)return r;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===e?String:Number)(t)}(t,\"string\");return\"symbol\"==typeof e?e:e+\"\"}function T(t){return T=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},T(t)}function _(t,n){if(t){if(\"string\"==typeof t)return e(t,n);var r={}.toString.call(t).slice(8,-1);return\"Object\"===r&&t.constructor&&(r=t.constructor.name),\"Map\"===r||\"Set\"===r?Array.from(t):\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?e(t,n):void 0}}function P(t){return function(){return new L(t.apply(this,arguments))}}function L(e){var n,r;function i(n,r){try{var a=e[n](r),s=a.value,u=s instanceof t;Promise.resolve(u?s.v:s).then((function(t){if(u){var r=\"return\"===n?\"return\":\"next\";if(!s.k||t.done)return i(r,t);t=e[r](t).value}o(a.done?\"return\":\"normal\",t)}),(function(t){i(\"throw\",t)}))}catch(t){o(\"throw\",t)}}function o(t,e){switch(t){case\"return\":n.resolve({value:e,done:!0});break;case\"throw\":n.reject(e);break;default:n.resolve({value:e,done:!1})}(n=n.next)?i(n.key,n.arg):r=null}this._invoke=function(t,e){return new Promise((function(o,a){var s={key:t,arg:e,resolve:o,reject:a,next:null};r?r=r.next=s:(n=r=s,i(t,e))}))},\"function\"!=typeof e.return&&(this.return=void 0)}function C(t){var e=\"function\"==typeof Map?new Map:void 0;return C=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf(\"[native code]\")}catch(e){return\"function\"==typeof t}}(t))return t;if(\"function\"!=typeof t)throw new TypeError(\"Super expression must either be null or a function\");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return f(t,arguments,y(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),O(n,t)},C(t)}L.prototype[\"function\"==typeof Symbol&&Symbol.asyncIterator||\"@@asyncIterator\"]=function(){return this},L.prototype.next=function(t){return this._invoke(\"next\",t)},L.prototype.throw=function(t){return this._invoke(\"throw\",t)},L.prototype.return=function(t){return this._invoke(\"return\",t)};var N=function(){function t(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];h(this,t),g(this,\"uncountableWords\",[\"equipment\",\"information\",\"rice\",\"money\",\"species\",\"series\",\"fish\",\"sheep\",\"moose\",\"deer\",\"news\"]),g(this,\"pluralRules\",[[new RegExp(\"(m)an$\",\"gi\"),\"$1en\"],[new RegExp(\"(pe)rson$\",\"gi\"),\"$1ople\"],[new RegExp(\"(child)$\",\"gi\"),\"$1ren\"],[new RegExp(\"^(ox)$\",\"gi\"),\"$1en\"],[new RegExp(\"(ax|test)is$\",\"gi\"),\"$1es\"],[new RegExp(\"(octop|vir)us$\",\"gi\"),\"$1i\"],[new RegExp(\"(alias|status)$\",\"gi\"),\"$1es\"],[new RegExp(\"(bu)s$\",\"gi\"),\"$1ses\"],[new RegExp(\"(buffal|tomat|potat)o$\",\"gi\"),\"$1oes\"],[new RegExp(\"([ti])um$\",\"gi\"),\"$1a\"],[new RegExp(\"sis$\",\"gi\"),\"ses\"],[new RegExp(\"(?:([^f])fe|([lr])f)$\",\"gi\"),\"$1$2ves\"],[new RegExp(\"(hive)$\",\"gi\"),\"$1s\"],[new RegExp(\"([^aeiouy]|qu)y$\",\"gi\"),\"$1ies\"],[new RegExp(\"(x|ch|ss|sh)$\",\"gi\"),\"$1es\"],[new RegExp(\"(matr|vert|ind)ix|ex$\",\"gi\"),\"$1ices\"],[new RegExp(\"([m|l])ouse$\",\"gi\"),\"$1ice\"],[new RegExp(\"(quiz)$\",\"gi\"),\"$1zes\"],[new RegExp(\"s$\",\"gi\"),\"s\"],[new RegExp(\"$\",\"gi\"),\"s\"]]),g(this,\"singularRules\",[[new RegExp(\"(m)en$\",\"gi\"),\"$1an\"],[new RegExp(\"(pe)ople$\",\"gi\"),\"$1rson\"],[new RegExp(\"(child)ren$\",\"gi\"),\"$1\"],[new RegExp(\"([ti])a$\",\"gi\"),\"$1um\"],[new RegExp(\"((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$\",\"gi\"),\"$1$2sis\"],[new RegExp(\"(hive)s$\",\"gi\"),\"$1\"],[new RegExp(\"(tive)s$\",\"gi\"),\"$1\"],[new RegExp(\"(curve)s$\",\"gi\"),\"$1\"],[new RegExp(\"([lr])ves$\",\"gi\"),\"$1f\"],[new RegExp(\"([^fo])ves$\",\"gi\"),\"$1fe\"],[new RegExp(\"([^aeiouy]|qu)ies$\",\"gi\"),\"$1y\"],[new RegExp(\"(s)eries$\",\"gi\"),\"$1eries\"],[new RegExp(\"(m)ovies$\",\"gi\"),\"$1ovie\"],[new RegExp(\"(x|ch|ss|sh)es$\",\"gi\"),\"$1\"],[new RegExp(\"([m|l])ice$\",\"gi\"),\"$1ouse\"],[new RegExp(\"(bus)es$\",\"gi\"),\"$1\"],[new RegExp(\"(o)es$\",\"gi\"),\"$1\"],[new RegExp(\"(shoe)s$\",\"gi\"),\"$1\"],[new RegExp(\"(cris|ax|test)es$\",\"gi\"),\"$1is\"],[new RegExp(\"(octop|vir)i$\",\"gi\"),\"$1us\"],[new RegExp(\"(alias|status)es$\",\"gi\"),\"$1\"],[new RegExp(\"^(ox)en\",\"gi\"),\"$1\"],[new RegExp(\"(vert|ind)ices$\",\"gi\"),\"$1ex\"],[new RegExp(\"(matr)ices$\",\"gi\"),\"$1ix\"],[new RegExp(\"(quiz)zes$\",\"gi\"),\"$1\"],[new RegExp(\"s$\",\"gi\"),\"\"]]),g(this,\"nonTitlecasedWords\",[\"and\",\"or\",\"nor\",\"a\",\"an\",\"the\",\"so\",\"but\",\"to\",\"of\",\"at\",\"by\",\"from\",\"into\",\"on\",\"onto\",\"off\",\"out\",\"in\",\"over\",\"with\",\"for\"]),g(this,\"idSuffix\",new RegExp(\"(_ids|_id)$\",\"g\")),g(this,\"underbar\",new RegExp(\"_\",\"g\")),g(this,\"spaceOrUnderbar\",new RegExp(\"[ _]\",\"g\")),g(this,\"uppercase\",new RegExp(\"([A-Z])\",\"g\")),g(this,\"underbarPrefix\",new RegExp(\"^_\")),this.str=e,this.chain=n}return v(t,[{key:\"get\",value:function(){return this.str}},{key:\"applyRules\",value:function(t,e,n,r){if(r)t=r;else if(!(n.indexOf(t.toLowerCase())>-1))for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:null;return t=t||this.str,this.applyRules(t,this.pluralRules,this.uncountableWords,e)}},{key:\"singularize\",value:function(t,e){return t=t||this.str,this.applyRules(t,this.singularRules,this.uncountableWords,e)}},{key:\"camelize\",value:function(t,e){for(var n=(t=t||this.str).split(\"/\"),r=0;r1&&void 0!==arguments[1]&&arguments[1];return t=t||this.str,t=this.underscore(this.demodulize(t))+(e?\"\":\"_\")+\"id\",this.str=t,!0===this.chain?this:t}},{key:\"ordinalize\",value:function(t){for(var e=(t=t||this.str).split(\" \"),n=0;n2?i-2:0),a=2;a2?n-2:0),i=2;i2?n-2:0),i=2;i2?n-2:0),i=2;i1?e-1:0),r=1;r3&&void 0!==arguments[3]?arguments[3]:[];if(V(t))if(r.length<=X)t.splice.apply(t,[e,n].concat(S(r)));else{t.splice(e,n);for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:0,r=t.length,i=n;i2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3?arguments[3]:void 0,i=t.length;return n<0&&(n+=i),nt(t,r&&e!=e?function(t){return t!=t}:function(t){return t===e},n)}function it(t,e,n){return Q(t,e,0,[n]),n}function ot(){return f(at,Array.prototype.slice.call(arguments))}var at=function(){function t(){return h(this,t),r(V(arguments[0])?l(this,t,S(arguments[0])):l(this,t,arguments))}return b(t,C(Array)),v(t,[{key:\"notEmpty\",get:function(){return this.length>0}},{key:\"empty\",get:function(){return 0===this.length}},{key:\"first\",get:function(){return tt(this,0)}},{key:\"last\",get:function(){return tt(this,this.length-1)}},{key:\"replace\",value:function(t,e){return Q(this,t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:[]),this}},{key:\"objectsAt\",value:function(t){var e=this;return t.map((function(t){return tt(e,t)}))}},{key:\"objectAt\",value:function(t){return tt(this,t)}},{key:\"indexOf\",value:function(t,e){return rt(this,t,e,!1)}},{key:\"lastIndexOf\",value:function(t,e){var n=this.length;(void 0===e||e>=n)&&(e=n-1),e<0&&(e+=n);for(var r=e;r>=0;r--)if(tt(this,r)===t)return r;return-1}},{key:\"includes\",value:function(t,e){return-1!==rt(this,t,e,!0)}},{key:\"findBy\",value:function(){return t=this,e=et.apply(void 0,arguments),-1===(r=nt(t,e.bind(n),0))?void 0:tt(t,r);var t,e,n,r}},{key:\"findIndexBy\",value:function(){return nt(this,et.apply(void 0,arguments))}},{key:\"isEvery\",value:function(){return t=this,e=et.apply(void 0,arguments),r=e.bind(n),-1===nt(t,(function(t,e,n){return!r(t,e,n)}),0);var t,e,n,r}},{key:\"isAny\",value:function(){return t=this,e=et.apply(void 0,arguments),-1!==nt(t,e.bind(n),0);var t,e,n}},{key:\"invoke\",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:Y,n=[],r=new Set,i=\"function\"==typeof e?e:function(t){return get(t,e)};return t.forEach((function(t){var e=i(t);r.has(e)||(r.add(e),n.push(t))})),n}(this,t)}},{key:\"without\",value:function(t){if(!this.includes(t))return this;var e=t==t?function(e){return e!==t}:function(t){return t==t};return this.filter(e)}},{key:\"clear\",value:function(){var t=this.length;return 0===t||this.replace(0,t,[]),this}},{key:\"insertAt\",value:function(t,e){return it(this,t,e),this}},{key:\"replaceAt\",value:function(t,e){return this.replace(t,1,[e])}},{key:\"removeAt\",value:function(t,e){return function(t,e){return Q(t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,[]),t}(this,t,e)}},{key:\"pushObject\",value:function(t){return this.insertAt(this.length,t)}},{key:\"pushObjects\",value:function(t){return this.replace(this.length,0,t),this}},{key:\"popObject\",value:function(){var t=this.length;if(0===t)return null;var e=tt(this,t-1);return this.removeAt(t-1,1),e}},{key:\"shiftObject\",value:function(){if(0===this.length)return null;var t=tt(this,0);return this.removeAt(0),t}},{key:\"unshiftObject\",value:function(t){return it(this,0,t)}},{key:\"unshiftObjects\",value:function(t){return this.replace(0,0,t),this}},{key:\"reverseObjects\",value:function(){var t=this.length;if(0===t)return this;var e=this.toArray().reverse();return this.replace(0,t,e),this}},{key:\"setObjects\",value:function(t){if(0===t.length)return this.clear();var e=this.length;return this.replace(0,e,t),this}},{key:\"removeObject\",value:function(t){for(var e=this.length||0;--e>=0;){tt(this,e)===t&&this.removeAt(e)}return this}},{key:\"removeObjects\",value:function(t){for(var e=t.length-1;e>=0;e--)this.removeObject(t[e]);return this}},{key:\"addObject\",value:function(t){return this.includes(t)||this.pushObject(t),this}},{key:\"addObjects\",value:function(t){var e=this;return t.forEach((function(t){return e.addObject(t)})),this}}])}();function st(t){var e=null==t;if(e)return e;if(\"number\"==typeof t.size)return!t.size;var n=T(t);if(\"object\"===n){var r=t.size;if(\"number\"==typeof r)return!r}if(\"number\"==typeof t.length&&\"function\"!==n)return!t.length;if(\"object\"===n){var i=t.length;if(\"number\"==typeof i)return!i}return!1}function ut(t){return isFinite(t)&&Math.abs(t)<=90}function ct(t){return isFinite(t)&&Math.abs(t)<=180&&Math.abs(t)>=90}function lt(){var t,e,n;return!(\"undefined\"==typeof process||\"object\"!==T(null===(t=process)||void 0===t?void 0:t.env)&&-1===(null===(e=process.release)||void 0===e||null===(e=e.name)||void 0===e?void 0:e.search(/node|io.js/))||\"undefined\"!=typeof window&&\"ReactNative\"!==(null===(n=window)||void 0===n||null===(n=n.navigator)||void 0===n?void 0:n.product))}function ht(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return lt()?W(\"adapter\",\"NodeAdapter\",t):W(\"adapter\",\"BrowserAdapter\",t)}var ft=function(){return v((function t(e){h(this,t),this.place=e,this.geometry=null==e?void 0:e.geometry,this.components=this.parseComponents(),this.attributes=this.parseProperties()}),[{key:\"parse\",value:function(){this.parseComponents(),this.parseProperties()}},{key:\"parseComponents\",value:function(){var t;return((null===(t=this.place)||void 0===t?void 0:t.address_components)||[]).reduce((function(t,e){return e.types.forEach((function(n){t[n]=e})),t}),{})}},{key:\"parseProperties\",value:function(){var t,e={streetNumber:this.get(\"street_number\"),streetName:this.get(\"route\"),coordinates:null!==(t=this.geometry)&&void 0!==t&&t.location?Object.values(this.geometry.location):[0,0],city:this.or([\"locality\",\"sublocality\",\"sublocality_level_1\",\"neighborhood\",\"administrative_area_level_3\",\"administrative_area_level_2\"]),county:this.get(\"administrative_area_level_2\"),stateShort:this.get(\"administrative_area_level_1\",!0),stateLong:this.get(\"administrative_area_level_1\"),countryShort:this.get(\"country\",!0),country:this.get(\"country\",!0),countryLong:this.get(\"country\"),postalCode:this.get(\"postal_code\")};return e.address=[e.streetNumber,e.streetName].filter(Boolean).join(\" \"),e}},{key:\"all\",value:function(){return this.attributes}},{key:\"or\",value:function(){var t,e=p(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]);try{for(e.s();!(t=e.n()).done;){var n=t.value;if(V(n)){var r=n[0],i=n[1];if(this.has(r))return this.get(r,i)}else if(this.has(n))return this.get(n)}}catch(t){e.e(t)}finally{e.f()}return null}},{key:\"has\",value:function(t){return t in this.components}},{key:\"get\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t in this.components?e?this.components[t].short_name:this.components[t].long_name:null}},{key:\"setAttributes\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.attributes=A(A({},this.attributes),t),this}},{key:\"setAttribute\",value:function(t,e){return this.attributes[t]=e,this}},{key:\"getAttribute\",value:function(t){return this.attributes[t]||null}}])}(),dt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;h(this,t),this.type=\"Point\",this.coordinates=[n,e]}return v(t,[{key:\"latitude\",get:function(){return this.coordinates[1]}},{key:\"longitude\",get:function(){return this.coordinates[0]}},{key:\"lat\",value:function(){return this.latitude}},{key:\"lng\",value:function(){return this.longitude}},{key:\"serialize\",value:function(){return{type:\"Point\",coorindates:[this.lat(),this.lng()]}}},{key:\"toJson\",value:function(){return this.serialize()}},{key:\"toString\",value:function(){return\"(\".concat(this.latitude,\", \").concat(this.longitude,\")\")}}],[{key:\"fromGeoJson\",value:function(e){var n=R(e.coordinates,2),r=n[0];return new t(n[1],r)}}])}();function vt(t,e){var n=t();return Array.isArray(n)||\"object\"===T(n)?pt(n,e):null}function pt(t,e){var n,r=t,i=T(t),o=\"object\"===i,a=\"function\"===i,s=Array.isArray(t),u=\"string\"===T(e)&&e.includes(\".\")?e.split(\".\"):[e];if(s||o){for(var c=0;c1&&void 0!==arguments[1]?arguments[1]:[];if(t.actions=V(e)?e:[e],!V(e))return e instanceof mt&&e.extend(t),t;var n,r=p(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;t.extendActions(i)}}catch(t){r.e(t)}finally{r.f()}}function bt(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;h(this,t),this.actions=e,this.bind=n}),[{key:\"extend\",value:function(){var t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||this.bind;if(!t)return this;if(null!=this&&this.actions&&\"object\"===T(this.actions))for(var e in this.actions){var n=this.actions[e];\"function\"==typeof n?gt(t,e,n.bind(t)):gt(t,e,n)}return this}}])}();function wt(t){return t instanceof kt}var kt=function(){return v((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};h(this,t),this.attributes=e,this.dirtyAttributes={},this.changes={},this.isLoading=!1,this.isSaving=!1,this.isDestroying=!1,this.isReloading=!1,this.resource=r,this.options=i,this.version=i.version||\"v1\",this.setAdapter(n)}),[{key:\"setAdapter\",value:function(t){var e;return this.adapter=t,this.store=M(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:\"id\",get:function(){return this.getAttribute(\"id\")}},{key:\"create\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.mergeAttributes(e);return this.setFlags([\"isLoading\",\"isSaving\"]),this.store.create(n).then((function(e){return t.setFlags([\"isLoading\",\"isSaving\"],!1),e}))}},{key:\"update\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setFlags([\"isLoading\",\"isSaving\"]),this.store.update(this.attributes.id,e).then((function(e){return t.setFlags([\"isLoading\",\"isSaving\"],!1),e}))}},{key:\"destroy\",value:function(){var t=this;return this.setFlags([\"isLoading\",\"isDestroying\"]),this.store.destroy(this.attributes.id).then((function(e){return t.setFlags([\"isLoading\",\"isDestroying\"],!1),e}))}},{key:\"reload\",value:function(){var t=this;return this.setFlags([\"isLoading\",\"isReloading\"]),this.store.findRecord(this.attributes.id).then((function(e){return t.reset(),e}))}},{key:\"setFlags\",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=[\"isLoading\",\"isSaving\",\"isReloading\",\"isDestroying\"],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=this.getAttributes();return st(this.id)?this.create(e):!0===t.onlyDirty?this.savedirty():this.update(e)}},{key:\"saveDirty\",value:function(){for(var t=Object.keys(this.dirtyAttributes),e={},n=0;n0}},{key:\"mutate\",value:function(t,e){this.attributes[t]=e}},{key:\"setAttribute\",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null===n&&\"object\"===T(t))return this.setAttributes(t);var r=null!==(e=null==this?void 0:this.attributes[t])&&void 0!==e?e:null;return gt(this.attributes,t,n),gt(this.dirtyAttributes,t,r),V(null==this?void 0:this.changes[t])||(this.changes[t]=[]),this.changes[t].push({property:t,previousValue:r,value:n,changedAt:new Date}),this}},{key:\"setAttributes\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var e in t)this.setAttribute(e,t[e]);return this}},{key:\"getAttribute\",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=pt(null!==(e=null==this?void 0:this.attributes)&&void 0!==e?e:{},t);return void 0===r?n:r}},{key:\"hasAttribute\",value:function(t){if(V(t)){var e,n=t,r=Object.keys(null!==(e=this.attributes)&&void 0!==e?e:{});return n.every((function(t){return r.includes(t)}))}return!(null==this||!this.attributes)&&t in this.attributes}},{key:\"hasAttributes\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.hasAttribute(t)}},{key:\"isAttributeFilled\",value:function(t){var e=this;return V(t)?this.hasAttribute(t)&&t.every((function(t){return!st(e.getAttribute(t))})):this.hasAttribute(t)&&!st(this.getAttribute(t))}},{key:\"getAttributes\",value:function(t){var e={};if(null==t)return this.getAttributes(Object.keys(this.attributes));if(\"string\"==typeof t)return this.getAttribute(Array.prototype.slice.call(arguments));if(!V(t))throw new Error(\"No attribute properties provided!\");var n,r=p(t);try{for(r.s();!(n=r.n()).done;){var i,o,a=n.value;if(\"string\"==typeof a){var s=this.getAttribute(a);\"object\"!==T(null===(i=s)||void 0===i?void 0:i.attributes)||V(null===(o=s)||void 0===o?void 0:o.attributes)||(s=s.attributes),e[a]=s}}}catch(t){r.e(t)}finally{r.f()}return e}},{key:\"serialize\",value:function(){return this.getAttributes()}},{key:\"mergeAttributes\",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=null!==(t=null==this?void 0:this.attributes)&&void 0!==t?t:{};return this.attributes=A(A({},n),e),this.attributes}},{key:\"syncAttributes\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attributes=t}}])}();q(\"resource\",\"Resource\",kt);var Et=function(){return v((function t(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};h(this,t),this.resource=e,this.adapter=n||ht(),this.namespace=F(e),this.storage=ot(),this.options=r,this.extendActions(r.actions)}),[{key:\"extendActions\",value:function(){return yt(this,arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])}},{key:\"deposit\",value:function(t){return t}},{key:\"serialize\",value:function(t){return W(\"resource\",z(this.resource),t,this.adapter)}},{key:\"afterFetch\",value:function(t){return function(t,e){if(\"function\"==typeof t.options.onAfterFetch&&t.options.onAfterFetch(e),V(e)){var n,r=[],i=p(e);try{for(i.s();!(n=i.n()).done;){var o=n.value;r.push(t.afterFetch(o))}}catch(t){i.e(t)}finally{i.f()}return ot.apply(void 0,r)}var a=t.serialize(e);return t.deposit(a)}(this,t)}},{key:\"create\",value:(a=u(x().mark((function t(){var e,n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=4,this.adapter.post(\"\".concat(this.namespace),e,n);case 4:return r=t.sent,t.abrupt(\"return\",this.afterFetch(r));case 6:case\"end\":return t.stop()}}),t,this)}))),function(){return a.apply(this,arguments)})},{key:\"update\",value:(o=u(x().mark((function t(e){var n,r,i,o=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=o.length>1&&void 0!==o[1]?o[1]:{},r=o.length>2&&void 0!==o[2]?o[2]:{},t.next=4,this.adapter.put(\"\".concat(this.namespace,\"/\").concat(e),n,r);case 4:return i=t.sent,t.abrupt(\"return\",this.afterFetch(i));case 6:case\"end\":return t.stop()}}),t,this)}))),function(t){return o.apply(this,arguments)})},{key:\"findRecord\",value:(i=u(x().mark((function t(e){var n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=3,this.adapter.get(\"\".concat(this.namespace,\"/\").concat(e),{},n);case 3:return r=t.sent,t.abrupt(\"return\",this.afterFetch(r));case 5:case\"end\":return t.stop()}}),t,this)}))),function(t){return i.apply(this,arguments)})},{key:\"findAll\",value:(r=u(x().mark((function t(){var e,n,r=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=r.length>0&&void 0!==r[0]?r[0]:{},t.next=3,this.adapter.get(\"\".concat(this.namespace),{},e);case 3:return n=t.sent,t.abrupt(\"return\",this.afterFetch(n));case 5:case\"end\":return t.stop()}}),t,this)}))),function(){return r.apply(this,arguments)})},{key:\"query\",value:(n=u(x().mark((function t(){var e,n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=i.length>0&&void 0!==i[0]?i[0]:{},n=i.length>1&&void 0!==i[1]?i[1]:{},t.next=4,this.adapter.get(\"\".concat(this.namespace),e,n);case 4:return r=t.sent,t.abrupt(\"return\",this.afterFetch(r));case 6:case\"end\":return t.stop()}}),t,this)}))),function(){return n.apply(this,arguments)})},{key:\"queryRecord\",value:(e=u(x().mark((function t(){var e,n,r,i=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},(e=i.length>0&&void 0!==i[0]?i[0]:{}).single=!0,t.next=5,this.adapter.get(\"\".concat(this.namespace),e,n);case 5:return r=t.sent,t.abrupt(\"return\",this.afterFetch(r));case 7:case\"end\":return t.stop()}}),t,this)}))),function(){return e.apply(this,arguments)})},{key:\"destroy\",value:(t=u(x().mark((function t(e){var n,r,i,o=arguments;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=o.length>1&&void 0!==o[1]?o[1]:{},r=wt(e)?e.getAttribute(\"id\"):e,t.next=4,this.adapter.delete(\"\".concat(this.namespace,\"/\").concat(r),{},n);case 4:return i=t.sent,t.abrupt(\"return\",this.afterFetch(i));case 6:case\"end\":return t.stop()}}),t,this)}))),function(e){return t.apply(this,arguments)})}]);var t,e,n,r,i,o,a}();q(\"store\",\"Store\",Et);var At=new mt({getDistanceAndTime:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get(\"\".concat(this.namespace,\"/\").concat(t,\"/distance-and-time\"),e,n)},getNextActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get(\"\".concat(this.namespace,\"/\").concat(t,\"/next-activity\"),e,n)},dispatch:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/dispatch\"),e,n).then(this.afterFetch.bind(this))},start:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/start\"),e,n).then(this.afterFetch.bind(this))},updateActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/update-activity\"),e,n).then(this.afterFetch.bind(this))},setDestination:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return wt(e)&&(e=e.id),this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/set-destination/\").concat(e),n,r).then(this.afterFetch.bind(this))},captureQrCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return wt(e)&&(e=e.id),this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/capture-qr\").concat(e?\"/\"+e:\"\"),n,r)},captureSignature:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return wt(e)&&(e=e.id),this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/capture-signature\").concat(e?\"/\"+e:\"\"),n,r)},complete:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"\".concat(this.namespace,\"/\").concat(t,\"/complete\"),e,n).then(this.afterFetch.bind(this))},cancel:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete(\"\".concat(this.namespace,\"/\").concat(t,\"/cancel\"),e,n).then(this.afterFetch.bind(this))}}),xt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"order\",A({actions:At},r)])}return b(t,kt),v(t,[{key:\"getDistanceAndTime\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getDistanceAndTime(this.id,t,e)}},{key:\"dispatch\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.dispatch(this.id,t,e)}},{key:\"start\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.start(this.id,t,e)}},{key:\"setDestination\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.setDestination(this.id,t,e,n)}},{key:\"captureQrCode\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureQrCode(this.id,t,e,n)}},{key:\"captureSignature\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureSignature(this.id,t,e,n)}},{key:\"getNextActivity\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getNextActivity(this.id,t,e)}},{key:\"updateActivity\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.updateActivity(this.id,t,e)}},{key:\"cancel\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.cancel(this.id,t,e)}},{key:\"complete\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.complete(this.id,t,e)}},{key:\"isDispatched\",get:function(){return null!==this.getAttribute(\"dispatched_at\")}},{key:\"isNotDispatched\",get:function(){return null==this.getAttribute(\"dispatched_at\")}},{key:\"isStarted\",get:function(){return null!==this.getAttribute(\"started_at\")}},{key:\"isNotStarted\",get:function(){return null==this.getAttribute(\"started_at\")}},{key:\"isCompleted\",get:function(){return\"completed\"==this.getAttribute(\"status\")}},{key:\"isCanceled\",get:function(){return\"canceled\"==this.getAttribute(\"status\")}},{key:\"isEnroute\",get:function(){return\"driver_enroute\"==this.getAttribute(\"status\")||\"enroute\"===this.getAttribute(\"status\")}},{key:\"isInProgress\",get:function(){return this.isStarted&&!this.isCanceled&&!this.isCompleted}},{key:\"scheduledAt\",get:function(){return this.isAttributeFilled(\"scheduled_at\")?new Date(this.getAttribute(\"scheduled_at\")):null}},{key:\"startedAt\",get:function(){return this.isAttributeFilled(\"started_at\")?new Date(this.getAttribute(\"started_at\")):null}},{key:\"dispatchedAt\",get:function(){return this.isAttributeFilled(\"dispatched_at\")?new Date(this.getAttribute(\"dispatched_at\")):null}},{key:\"status\",get:function(){return this.getAttribute(\"status\")}}])}();q(\"resource\",\"Order\",xt);var Ot=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"payload\",r])}return b(t,kt),v(t,[{key:\"attach\",value:function(t){}},{key:\"entities\",get:function(){var t=this;return ot(this.entities.map((function(e){return G(\"Entity\",e,t.adapter)})))}},{key:\"dropoff\",get:function(){return this.dropoff?G(\"Place\",this.dropoff,this.adapter):null}},{key:\"pickup\",get:function(){return this.pickup?G(\"Place\",this.pickup,this.adapter):null}},{key:\"waypoints\",get:function(){var t=this;return ot(this.waypoints.map((function(e){return G(\"Waypoint\",e,t.adapter)})))}}])}();q(\"resource\",\"Payload\",Ot);var Rt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"entity\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Entity\",Rt);var St=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"place\",r])}return b(t,kt),v(t,[{key:\"latitude\",get:function(){var t;return null===(t=this.getAttribute(\"location\",new dt))||void 0===t?void 0:t.coordinates[1]}},{key:\"longitude\",get:function(){var t;return null===(t=this.getAttribute(\"location\",new dt))||void 0===t?void 0:t.coordinates[0]}},{key:\"coordinates\",get:function(){return[this.latitude,this.longitude]}},{key:\"setOwner\",value:function(t){return wt(t)&&this.setAttribute(\"owner\",t.id),\"string\"==typeof t&&this.setAttribute(\"owner\",t),this}}],[{key:\"fromGoogleAddress\",value:function(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=R(e.getAttribute(\"coordinates\"),2),o=i[0],a=i[1];return new t({name:null,address:e.getAttribute(\"address\"),location:new dt(o,a),street1:e.getAttribute(\"address\"),street2:null,city:e.getAttribute(\"city\"),province:e.getAttribute(\"stateLong\"),postal_code:e.getAttribute(\"postalCode\"),neighborhood:e.get(\"neighborhood\"),district:e.getAttribute(\"county\"),building:e.get(\"building\"),country:e.getAttribute(\"countryShort\"),phone:null,security_access_code:null},n,r)}}])}();q(\"resource\",\"Place\",St);var jt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"waypoint\",r])}return b(t,St),v(t)}();q(\"resource\",\"Waypoint\",jt);var Tt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"tracking-status\",r])}return b(t,kt),v(t)}();q(\"resource\",\"TrackingStatus\",Tt);var _t=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"vehicle\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Vehicle\",_t);var Pt=new mt({current:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.get(\"\".concat(this.namespace,\"/current\"),t,e)}}),Lt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"organization\",A({actions:Pt},r)])}return b(t,kt),v(t)}();q(\"resource\",\"Organization\",Lt);var Ct=function(t,e){return V(t)?t.map((function(t){return new Lt(t,e)})):new Lt(t,e)},Nt=new mt({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(function(){return/^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/g.test(arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\")}(t))return this.adapter.post(\"drivers/login-with-sms\",{phone:t});if(!e)throw new Error(\"Login requires password!\");return this.adapter.post(\"drivers/login\",A({identity:t,password:e},n)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"drivers/verify-code\",A({identity:t,code:e},n)).then(this.afterFetch.bind(this))},track:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"drivers/\".concat(t,\"/track\"),e,n).then(this.afterFetch.bind(this))},listOrganizations:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get(\"drivers/\".concat(t,\"/organizations\"),n,r).then((function(t){return Ct(t,e.adapter)}))},switchOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"drivers/\".concat(t,\"/switch-organization\"),n,r).then((function(t){return Ct(t,e.adapter)}))},currentOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get(\"drivers/\".concat(t,\"/current-organization\"),n,r).then((function(t){return Ct(t,e.adapter)}))},retrieve:function(t){return this.findRecord(t)},syncDevice:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post(\"drivers/\".concat(t,\"/register-device\"),e,n)}}),Ft=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"driver\",A({actions:Nt},r)])}return b(t,kt),v(t,[{key:\"token\",get:function(){return this.getAttribute(\"token\")}},{key:\"isOnline\",get:function(){return!0===this.getAttribute(\"online\")}},{key:\"latitude\",get:function(){var t;return null===(t=this.getAttribute(\"location\",new dt))||void 0===t?void 0:t.coordinates[1]}},{key:\"longitude\",get:function(){var t;return null===(t=this.getAttribute(\"location\",new dt))||void 0===t?void 0:t.coordinates[0]}},{key:\"coordinates\",get:function(){return[this.latitude,this.longitude]}},{key:\"track\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.track(this.id,t,e)}},{key:\"syncDevice\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.syncDevice(this.id,t,e)}},{key:\"listOrganizations\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.listOrganizations(this.id,t,e)}},{key:\"switchOrganization\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.switchOrganization(this.id,{next:t},e)}},{key:\"currentOrganization\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.currentOrganization(this.id,t,e)}}])}();q(\"resource\",\"Driver\",Ft);var Dt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"vendor\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Vendor\",Dt);var $t=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"contact\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Contact\",$t);var Ut=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"zone\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Zone\",Ut);var zt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"service-area\",r])}return b(t,kt),v(t)}();q(\"resource\",\"ServiceArea\",zt);var Bt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"service-rate\",r])}return b(t,kt),v(t)}();q(\"resource\",\"ServiceRate\",Bt);var qt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"service-quote\",r])}return b(t,kt),v(t,[{key:\"fromPreliminary\",value:function(){}},{key:\"fromPayload\",value:function(){}}])}();q(\"resource\",\"ServiceQuote\",qt);var It=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return h(this,t),l(this,t,[e,n,\"fleet\",r])}return b(t,kt),v(t)}();q(\"resource\",\"Fleet\",It);var Mt=v((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};h(this,t),this.version=e.version||\"v1\",this.host=e.host||null,this.namespace=e.namespace||null,this.headers=e.headers||{}}));q(\"adapter\",\"Adapter\",Mt);var Ht=function(){function t(e){var n;return h(this,t),(n=l(this,t,[e])).setHeaders({Authorization:\"Bearer \".concat(e.publicKey),\"Content-Type\":\"application/json\",\"User-Agent\":\"@fleetbase/sdk;browser\"}),n}return b(t,Mt),v(t,[{key:\"setHeaders\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.headers=A(A({},this.headers),t),this}},{key:\"parseJSON\",value:function(t){return new Promise((function(e,n){t.json().then((function(n){e({statusText:t.statusText,status:t.status,ok:t.ok,json:n})})).catch((function(){n(new Error(\"Oops! Something went wrong when handling your request.\"))}))}))}},{key:\"request\",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"GET\",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new Promise((function(o,a){fetch(i.url||\"\".concat(e.host,\"/\").concat(e.namespace,\"/\").concat(t),A({method:n,mode:i.mode||\"cors\",headers:new Headers(A(A({},e.headers||{}),i.headers||{}))},r)).then(e.parseJSON).then((function(t){if(t.ok)return o(t.json);a(new Error(t.json.errors?t.json.errors[0]:t.statusText))})).catch((function(t){a(t)}))}))}},{key:\"get\",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=st(e=n)||\"string\"==typeof e&&!1===/\\S/.test(e)?\"\":new URLSearchParams(n).toString();return this.request(\"\".concat(t).concat(i?\"?\".concat(i):\"\"),\"GET\",{},r)}},{key:\"post\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,\"POST\",{body:JSON.stringify(e)},n)}},{key:\"put\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,\"PUT\",{body:JSON.stringify(e)},n)}},{key:\"delete\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(t,\"DELETE\",{},e)}},{key:\"patch\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,\"PATCH\",{body:JSON.stringify(e)},n)}}])}();function Jt(t,e){return function(){return t.apply(e,arguments)}}q(\"adapter\",\"BrowserAdapter\",Ht);var Wt,Kt=Object.prototype.toString,Gt=Object.getPrototypeOf,Vt=(Wt=Object.create(null),function(t){var e=Kt.call(t);return Wt[e]||(Wt[e]=e.slice(8,-1).toLowerCase())}),Xt=function(t){return t=t.toLowerCase(),function(e){return Vt(e)===t}},Qt=function(t){return function(e){return T(e)===t}},Yt=Array.isArray,Zt=Qt(\"undefined\");var te=Xt(\"ArrayBuffer\");var ee=Qt(\"string\"),ne=Qt(\"function\"),re=Qt(\"number\"),ie=function(t){return null!==t&&\"object\"===T(t)},oe=function(t){if(\"object\"!==Vt(t))return!1;var e=Gt(t);return!(null!==e&&e!==Object.prototype&&null!==Object.getPrototypeOf(e)||Symbol.toStringTag in t||Symbol.iterator in t)},ae=Xt(\"Date\"),se=Xt(\"File\"),ue=Xt(\"Blob\"),ce=Xt(\"FileList\"),le=Xt(\"URLSearchParams\"),he=R([\"ReadableStream\",\"Request\",\"Response\",\"Headers\"].map(Xt),4),fe=he[0],de=he[1],ve=he[2],pe=he[3];function ge(t,e){var n,r,i=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).allOwnKeys,o=void 0!==i&&i;if(null!=t)if(\"object\"!==T(t)&&(t=[t]),Yt(t))for(n=0,r=t.length;n0;)if(e===(n=r[i]).toLowerCase())return n;return null}var be=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:global,me=function(t){return!Zt(t)&&t!==be};var we,ke=(we=\"undefined\"!=typeof Uint8Array&&Gt(Uint8Array),function(t){return we&&t instanceof we}),Ee=Xt(\"HTMLFormElement\"),Ae=function(){var t=Object.prototype.hasOwnProperty;return function(e,n){return t.call(e,n)}}(),xe=Xt(\"RegExp\"),Oe=function(t,e){var n=Object.getOwnPropertyDescriptors(t),r={};ge(n,(function(n,i){var o;!1!==(o=e(n,i,t))&&(r[i]=o||n)})),Object.defineProperties(t,r)},Re=\"abcdefghijklmnopqrstuvwxyz\",Se=\"0123456789\",je={DIGIT:Se,ALPHA:Re,ALPHA_DIGIT:Re+Re.toUpperCase()+Se};var Te,_e,Pe,Le,Ce=Xt(\"AsyncFunction\"),Ne=(Te=\"function\"==typeof setImmediate,_e=ne(be.postMessage),Te?setImmediate:_e?(Pe=\"axios@\".concat(Math.random()),Le=[],be.addEventListener(\"message\",(function(t){var e=t.source,n=t.data;e===be&&n===Pe&&Le.length&&Le.shift()()}),!1),function(t){Le.push(t),be.postMessage(Pe,\"*\")}):function(t){return setTimeout(t)}),Fe=\"undefined\"!=typeof queueMicrotask?queueMicrotask.bind(be):\"undefined\"!=typeof process&&process.nextTick||Ne,De={isArray:Yt,isArrayBuffer:te,isBuffer:function(t){return null!==t&&!Zt(t)&&null!==t.constructor&&!Zt(t.constructor)&&ne(t.constructor.isBuffer)&&t.constructor.isBuffer(t)},isFormData:function(t){var e;return t&&(\"function\"==typeof FormData&&t instanceof FormData||ne(t.append)&&(\"formdata\"===(e=Vt(t))||\"object\"===e&&ne(t.toString)&&\"[object FormData]\"===t.toString()))},isArrayBufferView:function(t){return\"undefined\"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&te(t.buffer)},isString:ee,isNumber:re,isBoolean:function(t){return!0===t||!1===t},isObject:ie,isPlainObject:oe,isReadableStream:fe,isRequest:de,isResponse:ve,isHeaders:pe,isUndefined:Zt,isDate:ae,isFile:se,isBlob:ue,isRegExp:xe,isFunction:ne,isStream:function(t){return ie(t)&&ne(t.pipe)},isURLSearchParams:le,isTypedArray:ke,isFileList:ce,forEach:ge,merge:function t(){for(var e=(me(this)&&this||{}).caseless,n={},r=function(r,i){var o=e&&ye(n,i)||i;oe(n[o])&&oe(r)?n[o]=t(n[o],r):oe(r)?n[o]=t({},r):Yt(r)?n[o]=r.slice():n[o]=r},i=0,o=arguments.length;i3&&void 0!==arguments[3]?arguments[3]:{}).allOwnKeys}),t},trim:function(t){return t.trim?t.trim():t.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\"\")},stripBOM:function(t){return 65279===t.charCodeAt(0)&&(t=t.slice(1)),t},inherits:function(t,e,n,r){t.prototype=Object.create(e.prototype,r),t.prototype.constructor=t,Object.defineProperty(t,\"super\",{value:e.prototype}),n&&Object.assign(t.prototype,n)},toFlatObject:function(t,e,n,r){var i,o,a,s={};if(e=e||{},null==t)return e;do{for(o=(i=Object.getOwnPropertyNames(t)).length;o-- >0;)a=i[o],r&&!r(a,t,e)||s[a]||(e[a]=t[a],s[a]=!0);t=!1!==n&&Gt(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},kindOf:Vt,kindOfTest:Xt,endsWith:function(t,e,n){t=String(t),(void 0===n||n>t.length)&&(n=t.length),n-=e.length;var r=t.indexOf(e,n);return-1!==r&&r===n},toArray:function(t){if(!t)return null;if(Yt(t))return t;var e=t.length;if(!re(e))return null;for(var n=new Array(e);e-- >0;)n[e]=t[e];return n},forEachEntry:function(t,e){for(var n,r=(t&&t[Symbol.iterator]).call(t);(n=r.next())&&!n.done;){var i=n.value;e.call(t,i[0],i[1])}},matchAll:function(t,e){for(var n,r=[];null!==(n=t.exec(e));)r.push(n);return r},isHTMLForm:Ee,hasOwnProperty:Ae,hasOwnProp:Ae,reduceDescriptors:Oe,freezeMethods:function(t){Oe(t,(function(e,n){if(ne(t)&&-1!==[\"arguments\",\"caller\",\"callee\"].indexOf(n))return!1;var r=t[n];ne(r)&&(e.enumerable=!1,\"writable\"in e?e.writable=!1:e.set||(e.set=function(){throw Error(\"Can not rewrite read-only method '\"+n+\"'\")}))}))},toObjectSet:function(t,e){var n={},r=function(t){t.forEach((function(t){n[t]=!0}))};return Yt(t)?r(t):r(String(t).split(e)),n},toCamelCase:function(t){return t.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,(function(t,e,n){return e.toUpperCase()+n}))},noop:function(){},toFiniteNumber:function(t,e){return null!=t&&Number.isFinite(t=+t)?t:e},findKey:ye,global:be,isContextDefined:me,ALPHABET:je,generateString:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:je.ALPHA_DIGIT,n=\"\",r=e.length;t--;)n+=e[Math.random()*r|0];return n},isSpecCompliantForm:function(t){return!!(t&&ne(t.append)&&\"FormData\"===t[Symbol.toStringTag]&&t[Symbol.iterator])},toJSONObject:function(t){var e=new Array(10),n=function(t,r){if(ie(t)){if(e.indexOf(t)>=0)return;if(!(\"toJSON\"in t)){e[r]=t;var i=Yt(t)?[]:{};return ge(t,(function(t,e){var o=n(t,r+1);!Zt(o)&&(i[e]=o)})),e[r]=void 0,i}}return t};return n(t,0)},isAsyncFn:Ce,isThenable:function(t){return t&&(ie(t)||ne(t))&&ne(t.then)&&ne(t.catch)},setImmediate:Ne,asap:Fe};function $e(t,e,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=t,this.name=\"AxiosError\",e&&(this.code=e),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status?i.status:null)}De.inherits($e,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:De.toJSONObject(this.config),code:this.code,status:this.status}}});var Ue=$e.prototype,ze={};[\"ERR_BAD_OPTION_VALUE\",\"ERR_BAD_OPTION\",\"ECONNABORTED\",\"ETIMEDOUT\",\"ERR_NETWORK\",\"ERR_FR_TOO_MANY_REDIRECTS\",\"ERR_DEPRECATED\",\"ERR_BAD_RESPONSE\",\"ERR_BAD_REQUEST\",\"ERR_CANCELED\",\"ERR_NOT_SUPPORT\",\"ERR_INVALID_URL\"].forEach((function(t){ze[t]={value:t}})),Object.defineProperties($e,ze),Object.defineProperty(Ue,\"isAxiosError\",{value:!0}),$e.from=function(t,e,n,r,i,o){var a=Object.create(Ue);return De.toFlatObject(t,a,(function(t){return t!==Error.prototype}),(function(t){return\"isAxiosError\"!==t})),$e.call(a,t.message,e,n,r,i),a.cause=t,a.name=t.name,o&&Object.assign(a,o),a};function Be(t){return De.isPlainObject(t)||De.isArray(t)}function qe(t){return De.endsWith(t,\"[]\")?t.slice(0,-2):t}function Ie(t,e,n){return t?t.concat(e).map((function(t,e){return t=qe(t),!n&&e?\"[\"+t+\"]\":t})).join(n?\".\":\"\"):e}var Me=De.toFlatObject(De,{},null,(function(t){return/^is[A-Z]/.test(t)}));function He(t,e,n){if(!De.isObject(t))throw new TypeError(\"target must be an object\");e=e||new FormData;var r=(n=De.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(t,e){return!De.isUndefined(e[t])}))).metaTokens,i=n.visitor||c,o=n.dots,a=n.indexes,s=(n.Blob||\"undefined\"!=typeof Blob&&Blob)&&De.isSpecCompliantForm(e);if(!De.isFunction(i))throw new TypeError(\"visitor must be a function\");function u(t){if(null===t)return\"\";if(De.isDate(t))return t.toISOString();if(!s&&De.isBlob(t))throw new $e(\"Blob is not supported. Use a Buffer instead.\");return De.isArrayBuffer(t)||De.isTypedArray(t)?s&&\"function\"==typeof Blob?new Blob([t]):Buffer.from(t):t}function c(t,n,i){var s=t;if(t&&!i&&\"object\"===T(t))if(De.endsWith(n,\"{}\"))n=r?n:n.slice(0,-2),t=JSON.stringify(t);else if(De.isArray(t)&&function(t){return De.isArray(t)&&!t.some(Be)}(t)||(De.isFileList(t)||De.endsWith(n,\"[]\"))&&(s=De.toArray(t)))return n=qe(n),s.forEach((function(t,r){!De.isUndefined(t)&&null!==t&&e.append(!0===a?Ie([n],r,o):null===a?n:n+\"[]\",u(t))})),!1;return!!Be(t)||(e.append(Ie(i,n,o),u(t)),!1)}var l=[],h=Object.assign(Me,{defaultVisitor:c,convertValue:u,isVisitable:Be});if(!De.isObject(t))throw new TypeError(\"data must be an object\");return function t(n,r){if(!De.isUndefined(n)){if(-1!==l.indexOf(n))throw Error(\"Circular reference detected in \"+r.join(\".\"));l.push(n),De.forEach(n,(function(n,o){!0===(!(De.isUndefined(n)||null===n)&&i.call(e,n,De.isString(o)?o.trim():o,r,h))&&t(n,r?r.concat(o):[o])})),l.pop()}}(t),e}function Je(t){var e={\"!\":\"%21\",\"'\":\"%27\",\"(\":\"%28\",\")\":\"%29\",\"~\":\"%7E\",\"%20\":\"+\",\"%00\":\"\\0\"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,(function(t){return e[t]}))}function We(t,e){this._pairs=[],t&&He(t,this,e)}var Ke=We.prototype;function Ge(t){return encodeURIComponent(t).replace(/%3A/gi,\":\").replace(/%24/g,\"$\").replace(/%2C/gi,\",\").replace(/%20/g,\"+\").replace(/%5B/gi,\"[\").replace(/%5D/gi,\"]\")}function Ve(t,e,n){if(!e)return t;var r=n&&n.encode||Ge;De.isFunction(n)&&(n={serialize:n});var i,o=n&&n.serialize;if(i=o?o(e,n):De.isURLSearchParams(e)?e.toString():new We(e,n).toString(r)){var a=t.indexOf(\"#\");-1!==a&&(t=t.slice(0,a)),t+=(-1===t.indexOf(\"?\")?\"?\":\"&\")+i}return t}Ke.append=function(t,e){this._pairs.push([t,e])},Ke.toString=function(t){var e=t?function(e){return t.call(this,e,Je)}:Je;return this._pairs.map((function(t){return e(t[0])+\"=\"+e(t[1])}),\"\").join(\"&\")};var Xe=function(){return v((function t(){h(this,t),this.handlers=[]}),[{key:\"use\",value:function(t,e,n){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}},{key:\"eject\",value:function(t){this.handlers[t]&&(this.handlers[t]=null)}},{key:\"clear\",value:function(){this.handlers&&(this.handlers=[])}},{key:\"forEach\",value:function(t){De.forEach(this.handlers,(function(e){null!==e&&t(e)}))}}])}(),Qe={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Ye={isBrowser:!0,classes:{URLSearchParams:\"undefined\"!=typeof URLSearchParams?URLSearchParams:We,FormData:\"undefined\"!=typeof FormData?FormData:null,Blob:\"undefined\"!=typeof Blob?Blob:null},protocols:[\"http\",\"https\",\"file\",\"blob\",\"url\",\"data\"]},Ze=\"undefined\"!=typeof window&&\"undefined\"!=typeof document,tn=\"object\"===(\"undefined\"==typeof navigator?\"undefined\":T(navigator))&&navigator||void 0,en=Ze&&(!tn||[\"ReactNative\",\"NativeScript\",\"NS\"].indexOf(tn.product)<0),nn=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&\"function\"==typeof self.importScripts,rn=Ze&&window.location.href||\"http://localhost\",on=A(A({},Object.freeze({__proto__:null,hasBrowserEnv:Ze,hasStandardBrowserEnv:en,hasStandardBrowserWebWorkerEnv:nn,navigator:tn,origin:rn})),Ye);function an(t){function e(t,n,r,i){var o=t[i++];if(\"__proto__\"===o)return!0;var a=Number.isFinite(+o),s=i>=t.length;return o=!o&&De.isArray(r)?r.length:o,s?(De.hasOwnProp(r,o)?r[o]=[r[o],n]:r[o]=n,!a):(r[o]&&De.isObject(r[o])||(r[o]=[]),e(t,n,r[o],i)&&De.isArray(r[o])&&(r[o]=function(t){var e,n,r={},i=Object.keys(t),o=i.length;for(e=0;e-1,o=De.isObject(t);if(o&&De.isHTMLForm(t)&&(t=new FormData(t)),De.isFormData(t))return i?JSON.stringify(an(t)):t;if(De.isArrayBuffer(t)||De.isBuffer(t)||De.isStream(t)||De.isFile(t)||De.isBlob(t)||De.isReadableStream(t))return t;if(De.isArrayBufferView(t))return t.buffer;if(De.isURLSearchParams(t))return e.setContentType(\"application/x-www-form-urlencoded;charset=utf-8\",!1),t.toString();if(o){if(r.indexOf(\"application/x-www-form-urlencoded\")>-1)return function(t,e){return He(t,new on.classes.URLSearchParams,Object.assign({visitor:function(t,e,n,r){return on.isNode&&De.isBuffer(t)?(this.append(e,t.toString(\"base64\")),!1):r.defaultVisitor.apply(this,arguments)}},e))}(t,this.formSerializer).toString();if((n=De.isFileList(t))||r.indexOf(\"multipart/form-data\")>-1){var a=this.env&&this.env.FormData;return He(n?{\"files[]\":t}:t,a&&new a,this.formSerializer)}}return o||i?(e.setContentType(\"application/json\",!1),function(t,e){if(De.isString(t))try{return(e||JSON.parse)(t),De.trim(t)}catch(t){if(\"SyntaxError\"!==t.name)throw t}return(0,JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){var e=this.transitional||sn.transitional,n=e&&e.forcedJSONParsing,r=\"json\"===this.responseType;if(De.isResponse(t)||De.isReadableStream(t))return t;if(t&&De.isString(t)&&(n&&!this.responseType||r)){var i=!(e&&e.silentJSONParsing)&&r;try{return JSON.parse(t)}catch(t){if(i){if(\"SyntaxError\"===t.name)throw $e.from(t,$e.ERR_BAD_RESPONSE,this,null,this.response);throw t}}}return t}],timeout:0,xsrfCookieName:\"XSRF-TOKEN\",xsrfHeaderName:\"X-XSRF-TOKEN\",maxContentLength:-1,maxBodyLength:-1,env:{FormData:on.classes.FormData,Blob:on.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:\"application/json, text/plain, */*\",\"Content-Type\":void 0}}};De.forEach([\"delete\",\"get\",\"head\",\"post\",\"put\",\"patch\"],(function(t){sn.headers[t]={}}));var un=De.toObjectSet([\"age\",\"authorization\",\"content-length\",\"content-type\",\"etag\",\"expires\",\"from\",\"host\",\"if-modified-since\",\"if-unmodified-since\",\"last-modified\",\"location\",\"max-forwards\",\"proxy-authorization\",\"referer\",\"retry-after\",\"user-agent\"]),cn=Symbol(\"internals\");function ln(t){return t&&String(t).trim().toLowerCase()}function hn(t){return!1===t||null==t?t:De.isArray(t)?t.map(hn):String(t)}function fn(t,e,n,r,i){return De.isFunction(r)?r.call(this,e,n):(i&&(e=n),De.isString(e)?De.isString(r)?-1!==e.indexOf(r):De.isRegExp(r)?r.test(e):void 0:void 0)}var dn=function(){return v((function t(e){h(this,t),e&&this.set(e)}),[{key:\"set\",value:function(t,e,n){var r=this;function i(t,e,n){var i=ln(e);if(!i)throw new Error(\"header name must be a non-empty string\");var o=De.findKey(r,i);(!o||void 0===r[o]||!0===n||void 0===n&&!1!==r[o])&&(r[o||e]=hn(t))}var o=function(t,e){return De.forEach(t,(function(t,n){return i(t,n,e)}))};if(De.isPlainObject(t)||t instanceof this.constructor)o(t,e);else if(De.isString(t)&&(t=t.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim()))o(function(t){var e,n,r,i={};return t&&t.split(\"\\n\").forEach((function(t){r=t.indexOf(\":\"),e=t.substring(0,r).trim().toLowerCase(),n=t.substring(r+1).trim(),!e||i[e]&&un[e]||(\"set-cookie\"===e?i[e]?i[e].push(n):i[e]=[n]:i[e]=i[e]?i[e]+\", \"+n:n)})),i}(t),e);else if(De.isHeaders(t)){var a,s=p(t.entries());try{for(s.s();!(a=s.n()).done;){var u=R(a.value,2),c=u[0];i(u[1],c,n)}}catch(t){s.e(t)}finally{s.f()}}else null!=t&&i(e,t,n);return this}},{key:\"get\",value:function(t,e){if(t=ln(t)){var n=De.findKey(this,t);if(n){var r=this[n];if(!e)return r;if(!0===e)return function(t){for(var e,n=Object.create(null),r=/([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;e=r.exec(t);)n[e[1]]=e[2];return n}(r);if(De.isFunction(e))return e.call(this,r,n);if(De.isRegExp(e))return e.exec(r);throw new TypeError(\"parser must be boolean|regexp|function\")}}}},{key:\"has\",value:function(t,e){if(t=ln(t)){var n=De.findKey(this,t);return!(!n||void 0===this[n]||e&&!fn(0,this[n],n,e))}return!1}},{key:\"delete\",value:function(t,e){var n=this,r=!1;function i(t){if(t=ln(t)){var i=De.findKey(n,t);!i||e&&!fn(0,n[i],i,e)||(delete n[i],r=!0)}}return De.isArray(t)?t.forEach(i):i(t),r}},{key:\"clear\",value:function(t){for(var e=Object.keys(this),n=e.length,r=!1;n--;){var i=e[n];t&&!fn(0,this[i],i,t,!0)||(delete this[i],r=!0)}return r}},{key:\"normalize\",value:function(t){var e=this,n={};return De.forEach(this,(function(r,i){var o=De.findKey(n,i);if(o)return e[o]=hn(r),void delete e[i];var a=t?function(t){return t.trim().toLowerCase().replace(/([a-z\\d])(\\w*)/g,(function(t,e,n){return e.toUpperCase()+n}))}(i):String(i).trim();a!==i&&delete e[i],e[a]=hn(r),n[a]=!0})),this}},{key:\"concat\",value:function(){for(var t,e=arguments.length,n=new Array(e),r=0;r1?n-1:0),i=1;i2&&void 0!==arguments[2]?arguments[2]:3,r=0,i=function(t,e){t=t||10;var n,r=new Array(t),i=new Array(t),o=0,a=0;return e=void 0!==e?e:1e3,function(s){var u=Date.now(),c=i[a];n||(n=u),r[o]=s,i[o]=u;for(var l=a,h=0;l!==o;)h+=r[l++],l%=t;if((o=(o+1)%t)===a&&(a=(a+1)%t),!(u-n1&&void 0!==arguments[1]?arguments[1]:Date.now();i=o,n=null,r&&(clearTimeout(r),r=null),t.apply(null,e)};return[function(){for(var t=Date.now(),e=t-i,s=arguments.length,u=new Array(s),c=0;c=o?a(u,t):(n=u,r||(r=setTimeout((function(){r=null,a(n)}),o-e)))},function(){return n&&a(n)}]}((function(n){var o=n.loaded,a=n.lengthComputable?n.total:void 0,s=o-r,u=i(s);r=o;var c=g({loaded:o,total:a,progress:a?o/a:void 0,bytes:s,rate:u||void 0,estimated:u&&a&&o<=a?(a-o)/u:void 0,event:n,lengthComputable:null!=a},e?\"download\":\"upload\",!0);t(c)}),n)},mn=function(t,e){var n=null!=t;return[function(r){return e[0]({lengthComputable:n,total:t,loaded:r})},e[1]]},wn=function(t){return function(){for(var e=arguments.length,n=new Array(e),r=0;r1?e-1:0),r=1;r1?\"since :\\n\"+s.map(Wn).join(\"\\n\"):\" \"+Wn(s[0]):\"as no adapter specified\"),\"ERR_NOT_SUPPORT\")}return n};function Vn(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new gn(null,t)}function Xn(t){return Vn(t),t.headers=dn.from(t.headers),t.data=vn.call(t,t.transformRequest),-1!==[\"post\",\"put\",\"patch\"].indexOf(t.method)&&t.headers.setContentType(\"application/x-www-form-urlencoded\",!1),Gn(t.adapter||sn.adapter)(t).then((function(e){return Vn(t),e.data=vn.call(t,t.transformResponse,e),e.headers=dn.from(e.headers),e}),(function(e){return pn(e)||(Vn(t),e&&e.response&&(e.response.data=vn.call(t,t.transformResponse,e.response),e.response.headers=dn.from(e.response.headers))),Promise.reject(e)}))}var Qn=\"1.7.9\",Yn={};[\"object\",\"boolean\",\"number\",\"function\",\"string\",\"symbol\"].forEach((function(t,e){Yn[t]=function(n){return T(n)===t||\"a\"+(e<1?\"n \":\" \")+t}}));var Zn={};Yn.transitional=function(t,e,n){function r(t,e){return\"[Axios v1.7.9] Transitional option '\"+t+\"'\"+e+(n?\". \"+n:\"\")}return function(n,i,o){if(!1===t)throw new $e(r(i,\" has been removed\"+(e?\" in \"+e:\"\")),$e.ERR_DEPRECATED);return e&&!Zn[i]&&(Zn[i]=!0,console.warn(r(i,\" has been deprecated since v\"+e+\" and will be removed in the near future\"))),!t||t(n,i,o)}},Yn.spelling=function(t){return function(e,n){return console.warn(\"\".concat(n,\" is likely a misspelling of \").concat(t)),!0}};var tr={assertOptions:function(t,e,n){if(\"object\"!==T(t))throw new $e(\"options must be an object\",$e.ERR_BAD_OPTION_VALUE);for(var r=Object.keys(t),i=r.length;i-- >0;){var o=r[i],a=e[o];if(a){var s=t[o],u=void 0===s||a(s,o,t);if(!0!==u)throw new $e(\"option \"+o+\" must be \"+u,$e.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new $e(\"Unknown option \"+o,$e.ERR_BAD_OPTION)}},validators:Yn},er=tr.validators,nr=function(){return v((function t(e){h(this,t),this.defaults=e,this.interceptors={request:new Xe,response:new Xe}}),[{key:\"request\",value:(t=u(x().mark((function t(e,n){var r,i;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,this._request(e,n);case 3:return t.abrupt(\"return\",t.sent);case 6:if(t.prev=6,t.t0=t.catch(0),t.t0 instanceof Error){r={},Error.captureStackTrace?Error.captureStackTrace(r):r=new Error,i=r.stack?r.stack.replace(/^.+\\n/,\"\"):\"\";try{t.t0.stack?i&&!String(t.t0.stack).endsWith(i.replace(/^.+\\n.+\\n/,\"\"))&&(t.t0.stack+=\"\\n\"+i):t.t0.stack=i}catch(t){}}throw t.t0;case 10:case\"end\":return t.stop()}}),t,this,[[0,6]])}))),function(e,n){return t.apply(this,arguments)})},{key:\"_request\",value:function(t,e){\"string\"==typeof t?(e=e||{}).url=t:e=t||{};var n=e=On(this.defaults,e),r=n.transitional,i=n.paramsSerializer,o=n.headers;void 0!==r&&tr.assertOptions(r,{silentJSONParsing:er.transitional(er.boolean),forcedJSONParsing:er.transitional(er.boolean),clarifyTimeoutError:er.transitional(er.boolean)},!1),null!=i&&(De.isFunction(i)?e.paramsSerializer={serialize:i}:tr.assertOptions(i,{encode:er.function,serialize:er.function},!0)),tr.assertOptions(e,{baseUrl:er.spelling(\"baseURL\"),withXsrfToken:er.spelling(\"withXSRFToken\")},!0),e.method=(e.method||this.defaults.method||\"get\").toLowerCase();var a=o&&De.merge(o.common,o[e.method]);o&&De.forEach([\"delete\",\"get\",\"head\",\"post\",\"put\",\"patch\",\"common\"],(function(t){delete o[t]})),e.headers=dn.concat(a,o);var s=[],u=!0;this.interceptors.request.forEach((function(t){\"function\"==typeof t.runWhen&&!1===t.runWhen(e)||(u=u&&t.synchronous,s.unshift(t.fulfilled,t.rejected))}));var c,l=[];this.interceptors.response.forEach((function(t){l.push(t.fulfilled,t.rejected)}));var h,f=0;if(!u){var d=[Xn.bind(this),void 0];for(d.unshift.apply(d,s),d.push.apply(d,l),h=d.length,c=Promise.resolve(e);f0;)r._listeners[e](t);r._listeners=null}})),this.promise.then=function(t){var e,n=new Promise((function(t){r.subscribe(t),e=t})).then(t);return n.cancel=function(){r.unsubscribe(e)},n},e((function(t,e,i){r.reason||(r.reason=new gn(t,e,i),n(r.reason))}))}return v(t,[{key:\"throwIfRequested\",value:function(){if(this.reason)throw this.reason}},{key:\"subscribe\",value:function(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t]}},{key:\"unsubscribe\",value:function(t){if(this._listeners){var e=this._listeners.indexOf(t);-1!==e&&this._listeners.splice(e,1)}}},{key:\"toAbortSignal\",value:function(){var t=this,e=new AbortController,n=function(t){e.abort(t)};return this.subscribe(n),e.signal.unsubscribe=function(){return t.unsubscribe(n)},e.signal}}],[{key:\"source\",value:function(){var e;return{token:new t((function(t){e=t})),cancel:e}}}])}();var ir={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(ir).forEach((function(t){var e=R(t,2),n=e[0],r=e[1];ir[r]=n}));var or=function t(e){var n=new nr(e),r=Jt(nr.prototype.request,n);return De.extend(r,nr.prototype,n,{allOwnKeys:!0}),De.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return t(On(e,n))},r}(sn);or.Axios=nr,or.CanceledError=gn,or.CancelToken=rr,or.isCancel=pn,or.VERSION=Qn,or.toFormData=He,or.AxiosError=$e,or.Cancel=or.CanceledError,or.all=function(t){return Promise.all(t)},or.spread=function(t){return function(e){return t.apply(null,e)}},or.isAxiosError=function(t){return De.isObject(t)&&!0===t.isAxiosError},or.mergeConfig=On,or.AxiosHeaders=dn,or.formToJSON=function(t){return an(De.isHTMLForm(t)?new FormData(t):t)},or.getAdapter=Gn,or.HttpStatusCode=ir,or.default=or,or.Axios,or.AxiosError,or.CanceledError,or.isCancel,or.CancelToken,or.VERSION,or.all,or.Cancel,or.isAxiosError,or.spread,or.toFormData,or.AxiosHeaders,or.HttpStatusCode,or.formToJSON,or.getAdapter,or.mergeConfig;var ar=function(){function t(e){var n;return h(this,t),(n=l(this,t,[e])).axiosInstance=or.create({baseURL:\"\".concat(n.host,\"/\").concat(n.namespace),headers:{Authorization:\"Bearer \".concat(e.publicKey),\"Content-Type\":\"application/json\",\"User-Agent\":\"@fleetbase/sdk;node\"}}),n.axiosInstance.interceptors.response.use((function(t){return t.data}),(function(t){if(t.response){var e=t.response.data;if(V(e.errors)&&e.errors.length)throw new Error(e.errors[0]);if(e.error)throw new Error(e.error)}throw t})),n}return b(t,Mt),v(t,[{key:\"setHeaders\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.axiosInstance.defaults.headers.common=A(A({},this.axiosInstance.defaults.headers.common),t),this}},{key:\"request\",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axiosInstance.request(A({method:t,url:e},n))}},{key:\"get\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(\"GET\",t,A({params:e},n))}},{key:\"post\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(\"POST\",t,A({data:e},n))}},{key:\"put\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(\"PUT\",t,A({data:e},n))}},{key:\"delete\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(\"DELETE\",t,e)}},{key:\"patch\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(\"PATCH\",t,A({data:e},n))}}])}();q(\"adapter\",\"NodeAdapter\",ar);var sr=function(){function t(){return h(this,t),l(this,t,arguments)}return b(t,Mt),v(t)}();q(\"adapter\",\"EmberJsAdapter\",sr);var ur=function(){function t(e){var n,r,i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(h(this,t),this.version=null!==(n=o.version)&&void 0!==n?n:\"v1\",this.options={version:this.version,host:null!==(r=o.host)&&void 0!==r?r:\"https://api.fleetbase.io\",namespace:null!==(i=o.namespace)&&void 0!==i?i:this.version,debug:a,publicKey:e},\"string\"!=typeof e||0===e.length)throw new Error(\"⚠️ Invalid public key given to Fleetbase SDK\");if(!lt()&&e.toLowerCase().startsWith(\"$\"))throw new Error(\"Secret key provided. You must use a public key with Fleetbase Javascript SDK!\");this.adapter=o.adapter||ht(this.options),this.orders=new Et(\"order\",this.adapter).extendActions(At),this.entities=new Et(\"entity\",this.adapter),this.places=new Et(\"place\",this.adapter),this.drivers=new Et(\"driver\",this.adapter).extendActions(Nt),this.vehicles=new Et(\"vehicle\",this.adapter),this.vendors=new Et(\"vendor\",this.adapter),this.contacts=new Et(\"contact\",this.adapter),this.serviceAreas=new Et(\"service-area\",this.adapter),this.zones=new Et(\"zone\",this.adapter),this.fleets=new Et(\"fleet\",this.adapter),this.organizations=new Et(\"organization\",this.adapter).extendActions(Pt)}return v(t,[{key:\"setAdapter\",value:function(t){this.adapter=t}},{key:\"getAdapter\",value:function(){return this.adapter}}],[{key:\"newInstance\",value:function(){return f(t,Array.prototype.slice.call(arguments))}}])}();export{Mt as Adapter,Ht as BrowserAdapter,at as Collection,$t as Contact,Ft as Driver,sr as EmberJsAdapter,Rt as Entity,It as Fleet,ft as GoogleAddress,ar as NodeAdapter,xt as Order,Lt as Organization,Ot as Payload,St as Place,dt as Point,J as Resolver,kt as Resource,zt as ServiceArea,qt as ServiceQuote,Bt as ServiceRate,Et as Store,mt as StoreActions,Tt as TrackingStatus,_t as Vehicle,Dt as Vendor,jt as Waypoint,Ut as Zone,$ as camelize,z as classify,ot as createCollection,H as createResource,M as createStore,bt as createStoreActions,U as dasherize,ur as default,ht as detectAdapter,yt as extendStoreActions,ut as isLatitude,ct as isLongitude,lt as isNodeEnvironment,wt as isResource,W as lookup,F as pluralize,q as register,K as resolve,G as resolveResource,D as singularize};\n//# sourceMappingURL=fleetbase.js.map\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["Store","extendStoreActions","lookup","classify","isArray","Resource","register","StoreActions","Collection","Place","Order","ServiceQuote","Adapter","FleetbaseOrder","isResource","detectAdapter"],"mappings":"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C,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAA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,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC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AC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAQ,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,EAAE,EAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;;ACIz5vG,MAAO,eAA6B,SAAQA,EAAQ,CAAA;AAC9D,IAAA,WAAA,CAAY,QAAgB,EAAE,OAAgB,EAAE,UAAsB,EAAE,EAAA;AACpE,QAAA,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC;IACrC;IAEA,aAAa,CAAC,UAA2C,EAAE,EAAA;AACvD,QAAA,OAAOC,EAAkB,CAAC,IAAI,EAAE,OAAO,CAAC;IAC5C;AAEA,IAAA,SAAS,CAAC,IAAgB,EAAA;AACtB,QAAA,OAAOC,CAAM,CAAI,UAAU,EAAEC,CAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC;IAC7E;AACH;;AChBK,SAAU,OAAO,CAAC,KAAK,GAAG,EAAE,EAAA;AAC9B,IAAA,OAAO,+CAA+C,CAAC,IAAI,CAAC,KAAK,CAAC;AACtE;;ACFM,SAAU,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAE,eAAA,GAA+D,QAAQ,EAAA;AAChI,IAAA,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AAClC,QAAA,KAAK,EAAE,UAAU;QACjB,QAAQ;QACR,eAAe;AAClB,KAAA,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;AACrB;;ACNM,SAAU,UAAU,CAAC,GAAY,EAAA;IACnC,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE,KAAK,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACjH;;ACFM,SAAU,OAAO,CAAC,GAAY,EAAA;IAChC,MAAM,IAAI,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;IAC9C,IAAI,IAAI,EAAE;AACN,QAAA,OAAO,IAAI;IACf;AAEA,IAAA,MAAM,UAAU,GAAG,OAAO,GAAG;AAE7B,IAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAQ,GAA0B,CAAC,IAAI,KAAK,QAAQ,EAAE;AACjF,QAAA,OAAO,CAAE,GAAwB,CAAC,IAAI;IAC1C;IAEA,IAAI,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,KAAK,OAAQ,GAA4B,CAAC,MAAM,KAAK,QAAQ,IAAI,UAAU,KAAK,UAAU,EAAE;AAC/I,QAAA,OAAO,CAAE,GAA0B,CAAC,MAAM;IAC9C;AAEA,IAAA,OAAO,KAAK;AAChB;;ACjBM,SAAUC,SAAO,CAAC,KAAc,EAAA;AAClC,IAAA,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAC/B;;ACCc,MAAO,kBAAmB,SAAQC,EAAQ,CAAA;AAGpD;;;;;AAKG;AACH,IAAA,UAAU,CAAC,OAAgB,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE;YACrD,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5C,YAAA,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO;AACjC,SAAA,CAAsE;AAEvE,QAAA,OAAO,IAAI;IACf;AACH;AAEDC,CAAQ,CAAC,UAAU,EAAE,oBAAoB,EAAE,kBAAkB,CAAC;;AClBvD,MAAM,aAAa,GAAG,IAAIC,EAAY,CAAC;AAC1C,IAAA,KAAK,EAAE,UAAiC,OAA2B,EAAE,UAA0B,EAAE,EAAA;QAC7F,MAAM,MAAM,GAAe,EAAE;QAE7B,IAAI,OAAO,EAAE;AACT,YAAA,MAAM,CAAC,KAAK,GAAG,OAAO;QAC1B;AAEA,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,SAAS,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;IACvE,CAAC;AACJ,CAAA,CAAC;AAEY,MAAO,MAAO,SAAQF,kBAAQ,CAAA;AACxC,IAAA,WAAA,CAAY,aAAyB,EAAE,EAAE,OAAiB,EAAE,UAAsB,EAAE,EAAA;QAChF,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;IACjD;IAEA,QAAQ,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE;IAC3B;IAEA,SAAS,GAAA;QACL,QAAQ,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE;IAC7C;IAEA,SAAS,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,KAAiB,KAAK,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC5H;AACH;AAEDC,CAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC;;AC9BxB,MAAO,SAAU,SAAQD,kBAAQ,CAAA;AAC3C,IAAA,WAAA,CAAY,aAAyB,EAAE,EAAE,OAAiB,EAAE,UAAsB,EAAE,EAAA;QAChF,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC;IACrD;AAEA,IAAA,IAAI,GAAG,GAAA;AACH,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAW;IAC7C;AAEA,IAAA,IAAI,QAAQ,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,IAAI;IACnF;AAEA,IAAA,IAAI,SAAS,GAAA;AACT,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB;AACpC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe;QAEhC,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACpE,YAAA,OAAO,KAAK;QAChB;AAEA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;AACtD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE;QAE/C,OAAO,KAAK,GAAG,EAAE;IACrB;AAEA,IAAA,IAAI,iBAAiB,GAAA;QACjB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;AAC7B,YAAA,OAAO,IAAI;QACf;QAEA,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;AACxC,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC3B,YAAA,OAAO,IAAI;QACf;AACA,QAAA,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC;QACrD,MAAM,MAAM,GAAG,eAAe,GAAG,UAAU,GAAG,OAAO;QAErD,OAAO,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;IAC3C;AAEA,IAAA,IAAI,eAAe,GAAA;QACf,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;AAC3B,YAAA,OAAO,IAAI;QACf;QAEA,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;AACpC,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACzB,YAAA,OAAO,IAAI;QACf;AACA,QAAA,MAAM,eAAe,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC;QACnD,MAAM,MAAM,GAAG,eAAe,GAAG,UAAU,GAAG,OAAO;QAErD,OAAO,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;IACzC;AAEA,IAAA,IAAI,uBAAuB,GAAA;AACvB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB;AACpC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe;QAEhC,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACpE,YAAA,OAAO,CAAA,EAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA,GAAA,EAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;QACxE;AAEA,QAAA,OAAO,CAAA,EAAG,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA,GAAA,EAAM,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;IACxD;AAEA,IAAA,IAAI,kBAAkB,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,OAAO,QAAQ;QACnB;AAEA,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,OAAO,UAAU;QACrB;QAEA,OAAO,IAAI,CAAC,uBAAuB;IACvC;;IAGA,MAAM,GAAA;AACF,QAAA,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC;IAClE;;IAGA,MAAM,GAAA;AACF,QAAA,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC;IAClE;;IAGA,OAAO,GAAA;AACH,QAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC;IACnE;;IAGA,MAAM,GAAA;AACF,QAAA,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC;IAClE;AACH;AAEDC,CAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC;;ACpG9B,MAAO,aAAc,SAAQD,kBAAQ,CAAA;AAC/C,IAAA,WAAA,CAAY,aAAyB,EAAE,EAAE,OAAiB,EAAE,UAAsB,EAAE,EAAA;QAChF,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,CAAC;IACzD;AAEA,IAAA,IAAI,QAAQ,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,8BAA8B,CAAuB;IAClF;AAEA,IAAA,IAAI,SAAS,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,8BAA8B,CAAuB;IAClF;AAEA,IAAA,IAAI,KAAK,GAAA;QACL,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAe,OAAO,EAAE,EAAE,CAAC;QAC1D,OAAO,IAAIG,EAAU,CAAC,CAAC,KAAK,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,UAAU,KAAK,IAAI,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACrG;;AAGA,IAAA,IAAI,SAAS,GAAA;QACT,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;QACrD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;AAE9C,QAAA,OAAO,aAAa,KAAK,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,GAAG,WAAW,GAAG,IAAI,CAAC;IACjG;;AAGA,IAAA,IAAI,OAAO,GAAA;QACP,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;AAExC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAA8B;QAChD,QAAQ,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,IAAI,EAAE,EAAE,IAAI,IAAI,EAAE,SAAS;IAC3E;;AAGA,IAAA,IAAI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,GAAGN,CAAM,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI;IAC5F;AAEA,IAAA,IAAI,YAAY,GAAA;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,SAAS,CAAC;IAC/E;AAEA,IAAA,IAAI,KAAK,GAAA;QACL,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,MAAM,CAAC;AAExC,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC/B;AAEA,IAAA,IAAI,QAAQ,GAAA;QACR,MAAM,QAAQ,GAA0C,EAAE;AAC1D,QAAA,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC;AAE3F,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE;AAEpB,YAAA,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAIM,EAAU,EAAE;QACpC;AAEA,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YAEnC,IAAI,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBAC5B,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;YACvC;QACJ;AAEA,QAAA,OAAO,QAAQ;IACnB;;IAGA,MAAM,GAAA;AACF,QAAA,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC;IAClE;;IAGA,MAAM,GAAA;AACF,QAAA,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC;IAClE;;IAGA,OAAO,GAAA;AACH,QAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC;IACnE;AACH;AAEDF,CAAQ,CAAC,UAAU,EAAE,eAAe,EAAE,aAAa,CAAC;;ACxFtC,MAAO,cAAe,SAAQD,kBAAQ,CAAA;AACxC,IAAA,KAAK;AAEb,IAAA,WAAA,CAAY,aAAyB,EAAE,EAAE,OAAiB,EAAE,UAAsB,EAAE,EAAA;QAChF,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC;IAC1D;AAEA,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAuB;IAC1D;AAEA,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAuB;IAC1D;AAEA,IAAA,IAAI,aAAa,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM;IAC/B;AAEA,IAAA,IAAI,eAAe,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;IACjC;AAEA,IAAA,IAAI,aAAa,GAAA;QACb,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;IACvD;AAEA,IAAA,gBAAgB,CAAC,KAAa,EAAA;AAC1B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;IACtB;IAEA,gBAAgB,GAAA;QACZ,OAAO,IAAI,CAAC,KAAK;IACrB;;IAGA,UAAU,GAAA;AACN,QAAA,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC;IAC5E;;IAGA,MAAM,GAAA;AACF,QAAA,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC;IACxE;;IAGA,MAAM,GAAA;AACF,QAAA,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC;IACxE;;IAGA,OAAO,GAAA;AACH,QAAA,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC;IACzE;;IAGA,MAAM,GAAA;AACF,QAAA,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC;IACxE;AACH;AAEDC,CAAQ,CAAC,UAAU,EAAE,gBAAgB,EAAE,cAAc,CAAC;;AC1DxC,MAAO,KAAM,SAAQD,kBAAQ,CAAA;AACvC,IAAA,WAAA,CAAY,aAAyB,EAAE,EAAE,OAAiB,EAAE,UAAsB,EAAE,EAAA;QAChF,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IAChD;IAEA,UAAU,CAAC,SAAqB,EAAE,EAAA;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAe,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAI;YAC7F,OAAO,IAAIG,EAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,UAAsB,KAAK,IAAI,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACxG,QAAA,CAAC,CAAC;IACN;IAEA,OAAO,CAAC,SAAqB,EAAE,EAAA;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAC3C;IAEA,YAAY,CAAC,SAAqB,EAAE,EAAA;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAe,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,KAAI;YACtG,OAAO,IAAIA,EAAU,CACjB,cAAc,CAAC,GAAG,CAAC,CAAC,UAAsB,KAAI;AAC1C,gBAAA,IAAI,UAAU,CAAC,KAAK,EAAE;AAClB,oBAAA,UAAU,CAAC,KAAK,GAAG,IAAIC,EAAK,CAAC,UAAU,CAAC,KAAmB,EAAE,IAAI,CAAC,OAAO,CAAC;gBAC9E;gBAEA,OAAO,IAAI,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC;YACtD,CAAC,CAAC,CACL;AACL,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,WAAW,CAAC,EAAU,EAAA;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAa,CAAA,UAAA,EAAa,EAAE,CAAA,CAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,KAAI;YAC3F,OAAO,IAAI,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC;AACtD,QAAA,CAAC,CAAC;IACN;IAEA,kBAAkB,CAAC,SAAqB,EAAE,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAe,UAAU,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAI;YACxE,OAAO,IAAID,EAAU,CACjB,QAAQ,CAAC,GAAG,CAAC,CAAC,UAAsB,KAAI;gBACpC,OAAO,IAAI,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC;YACvD,CAAC,CAAC,CACL;AACL,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,iBAAiB,CAAC,EAAU,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAa,CAAA,SAAA,EAAY,EAAE,CAAA,CAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,KAAI;YACtE,OAAO,IAAI,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC;AACvD,QAAA,CAAC,CAAC;IACN;AACH;AAEDF,CAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC;;ACpDtB,MAAO,OAAQ,SAAQD,kBAAQ,CAAA;AACzC,IAAA,WAAA,CAAY,aAAyB,EAAE,EAAE,OAAiB,EAAE,UAAsB,EAAE,EAAA;QAChF,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC;IAClD;IAEA,QAAQ,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;IACxC;IAEA,MAAM,GAAA;AACF,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC;IAChD;IAEA,MAAM,GAAA;QACF,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE;IAC5C;IAEA,MAAM,GAAA;QACF,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE;IAC5C;IAEA,KAAK,GAAA;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE;IAC3C;AAEA,IAAA,IAAI,QAAQ,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAY;IACrD;AAEA,IAAA,IAAI,WAAW,GAAA;AACX,QAAA,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;IAC3C;AAEA,IAAA,IAAI,eAAe,GAAA;QACf,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,CAI7F;AAED,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;AAC1C,gBAAA,OAAO,IAAI;YACf;YAEA,OAAO,cAAc,CAAE,UAAqB,GAAG,GAAG,EAAE,QAAkB,CAAC;QAC3E;QAEA,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;AACrC,YAAA,OAAO,IAAI;QACf;QAEA,OAAO,cAAc,CAAE,KAAgB,GAAG,GAAG,EAAE,QAAkB,CAAC;IACtE;AAEA,IAAA,IAAI,QAAQ,GAAA;QACR,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QAE7C,OAAO,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,GAAG,IAAI,KAAK,CAAC,UAAwB,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI;IAClH;IAEA,UAAU,GAAA;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAe,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAI;YAClF,OAAO,IAAIG,EAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,UAAsB,KAAK,IAAI,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACxG,QAAA,CAAC,CAAC;IACN;AACH;AAEDF,CAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC;;ACtE1B,MAAO,QAAS,SAAQD,kBAAQ,CAAA;AAC1C,IAAA,WAAA,CAAY,aAAyB,EAAE,EAAE,OAAiB,EAAE,UAAsB,EAAE,EAAA;QAChF,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC;IACnD;IAEA,WAAW,GAAA;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAe,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAI;YACvF,OAAO,IAAIG,EAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,UAAsB,KAAK,IAAI,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1G,QAAA,CAAC,CAAC;IACN;AACH;AAEDF,CAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC;;ACXnC,MAAM,eAAe,GAAG,IAAIC,EAAY,CAAC;;IAE5C,KAAK,EAAE,UAAiC,QAAgB,EAAE,WAA0B,IAAI,EAAE,aAAyB,EAAE,EAAA;;AAEjH,QAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;AACnB,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QAC7E;QAEA,IAAI,CAAC,QAAQ,EAAE;AACX,YAAA,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;QAC/C;AAEA,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAa,iBAAiB,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnI,CAAC;;AAGD,IAAA,cAAc,EAAE,UAAiC,WAAmB,EAAE,aAAqB,EAAE,iBAAyB,EAAE,KAAa,EAAE,IAAY,EAAE,aAAyB,EAAE,EAAA;AAC5K,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAa,4BAA4B,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtL,CAAC;;IAGD,iBAAiB,EAAE,UAAiC,cAAsB,EAAE,KAAa,EAAE,IAAY,EAAE,SAAiB,EAAE,UAAA,GAAyB,EAAE,EAAA;AACnJ,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAa,+BAA+B,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrK,CAAC;;AAGD,IAAA,eAAe,EAAE,UAAiC,OAAe,EAAE,QAAgB,EAAE,aAAyB,EAAE,EAAA;AAC5G,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAa,6BAA6B,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9I,CAAC;AAED,IAAA,UAAU,EAAE,UAAiC,QAAgB,EAAE,IAAY,EAAE,aAAyB,EAAE,EAAA;AACpG,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAa,uBAAuB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrI,CAAC;AAED,IAAA,mBAAmB,CAAwB,QAAgB,EAAE,IAAI,GAAG,OAAO,EAAA;AACvE,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iCAAiC,EAAE;YACxD,QAAQ;YACR,IAAI;AACP,SAAA,CAAC;IACN,CAAC;AAED,IAAA,MAAM,CAAwB,QAAgB,EAAE,IAAY,EAAE,aAAyB,EAAE,EAAA;AACrF,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAa,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzH,CAAC;IAED,QAAQ,EAAE,UAAiC,EAAU,EAAA;AACjD,QAAA,OAAQ,IAAkC,CAAC,UAAU,CAAC,EAAE,CAAC;IAC7D,CAAC;AACJ,CAAA,CAAC;AAEY,MAAO,QAAS,SAAQF,kBAAQ,CAAA;AAC1C,IAAA,WAAA,CAAY,aAAyB,EAAE,EAAE,OAAiB,EAAE,UAAsB,EAAE,EAAA;AAChF,QAAA,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE;AACnC,YAAA,OAAO,EAAE,eAAe;AACxB,YAAA,GAAG,OAAO;AACb,SAAA,CAAC;IACN;AAEA;;;;;AAKG;AACH,IAAA,UAAU,CAAC,OAAgB,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE;YACrD,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5C,YAAA,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO;AACjC,SAAA,CAAsE;AAEvE,QAAA,OAAO,IAAI;IACf;AAEA,IAAA,IAAI,KAAK,GAAA;QACL,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;AACxC,QAAA,OAAO,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,SAAS;IACxD;AAEA,IAAA,MAAM,UAAU,CAAC,KAAa,EAAE,QAAgB,EAAA;AAC5C,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,MAAM,CAAC;IAClG;IAEA,wBAAwB,CAAc,QAAgB,EAAE,MAAA,GAAqB,EAAE,EAAE,MAAM,GAAG,KAAK,EAAE,OAAA,GAA0B,EAAE,EAAA;AACzH,QAAA,MAAM,cAAc,GAAmB;AACnC,YAAA,GAAG,OAAO;AACV,YAAA,OAAO,EAAE;gBACL,GAAG,OAAO,CAAC,OAAO;gBAClB,gBAAgB,EAAE,IAAI,CAAC,KAAK;AAC/B,aAAA;SACJ;AAED,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAmH;AACxI,QAAA,OAAO,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC;IAC3E;AAEA,IAAA,MAAM,cAAc,GAAA;QAChB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAe,kBAAkB,CAAC;QACpF,OAAO,IAAIG,EAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAsB,KAAK,IAAIC,EAAK,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACtG;AAEA,IAAA,MAAM,eAAe,CAAC,MAAA,GAAqB,EAAE,EAAA;QACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAe,kBAAkB,EAAE,MAAM,CAAC;QAC5F,OAAO,IAAID,EAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAsB,KAAK,IAAIE,EAAK,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACtG;IAEA,qBAAqB,CAAC,SAAqB,EAAE,EAAA;QACzC,OAAO,IAAI,CAAC,wBAAwB,CAAC,gCAAgC,EAAE,MAAM,EAAE,MAAM,CAAC;IAC1F;IAEA,oBAAoB,CAAC,SAAqB,EAAE,EAAA;QACxC,OAAO,IAAI,CAAC,wBAAwB,CAAC,+BAA+B,EAAE,MAAM,EAAE,MAAM,CAAC;IACzF;AAEA,IAAA,mBAAmB,CAAC,MAAA,GAAqB,EAAE,EAAE,UAA0B,EAAE,EAAA;AACrE,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,2BAA2B,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;IAC9F;AAEA,IAAA,qBAAqB,CAAC,IAAY,EAAE,SAAqB,EAAE,EAAE,UAA0B,EAAE,EAAA;AACrF,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,mCAAmC,EAAE,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC;IACnH;AAEA,IAAA,wBAAwB,CAAC,KAAa,EAAE,SAAqB,EAAE,EAAE,UAA0B,EAAE,EAAA;AACzF,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,sCAAsC,EAAE,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC;IACvH;IAEA,iBAAiB,CAAC,IAAY,EAAE,KAAa,EAAE,MAAA,GAAqB,EAAE,EAAE,OAAA,GAA0B,EAAE,EAAA;AAChG,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,+BAA+B,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC;IACtH;AAEA,IAAA,kBAAkB,CAAC,UAAA,GAAyB,EAAE,EAAE,UAA0B,EAAE,EAAA;QACxE,OAAO,IAAI,CAAC,wBAAwB,CAAa,YAAY,IAAI,CAAC,EAAE,CAAA,CAAE,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAI;AAClH,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;AAC7B,YAAA,OAAO,IAAI;AACf,QAAA,CAAC,CAAC;IACN;AACH;AAEDJ,CAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC;;AC1I1C,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK;AAElB,MAAM,WAAW,GAAG,IAAIC,EAAY,CAAC;AACxC,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,WAAW,EAAE,SAAS;AAEtB,IAAA,GAAG,EAAE,UAAiC,EAAU,EAAE,SAAiB,EAAE,QAAQ,GAAG,CAAC,EAAE,IAAA,GAAmB,EAAE,EAAE,UAA0B,EAAE,EAAA;AAClI,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAO,CAAA,EAAG,IAAI,CAAC,SAAS,IAAI,EAAE,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,EAAE,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3I,CAAC;AAED,IAAA,MAAM,EAAE,UAAiC,EAAU,EAAE,UAAkB,EAAE,QAAgB,EAAE,IAAA,GAAmB,EAAE,EAAE,OAAA,GAA0B,EAAE,EAAA;AAC1I,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAO,CAAA,EAAG,IAAI,CAAC,SAAS,IAAI,EAAE,CAAA,CAAA,EAAI,UAAU,CAAA,CAAE,EAAE,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3I,CAAC;AAED,IAAA,MAAM,EAAE,UAAiC,EAAU,EAAE,UAAkB,EAAE,UAA0B,EAAE,EAAA;AACjG,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAO,CAAA,EAAG,IAAI,CAAC,SAAS,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,UAAU,CAAA,CAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3H,CAAC;AAED,IAAA,KAAK,EAAE,UAAiC,EAAU,EAAE,UAA0B,EAAE,EAAA;AAC5E,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAO,CAAA,EAAG,IAAI,CAAC,SAAS,CAAA,CAAA,EAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChH,CAAC;AAED,IAAA,QAAQ,EAAE,UAAiC,EAAE,GAAG,EAAE,EAAA;AAC9C,QAAA,OAAQ,IAA8B,CAAC,UAAU,CAAC,EAAE,CAAC;IACzD,CAAC;AACJ,CAAA,CAAC;AAEY,MAAO,IAAK,SAAQF,kBAAQ,CAAA;AACtC,IAAA,WAAA,CAAY,aAAyB,EAAE,EAAE,OAAiB,EAAE,UAAsB,EAAE,EAAA;AAChF,QAAA,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,EAAE,CAAC;IAC5E;IAEA,GAAG,CAAC,SAA2B,EAAE,QAAQ,GAAG,CAAC,EAAE,IAAA,GAAmB,EAAE,EAAE,OAAA,GAA0B,EAAE,EAAA;AAC9F,QAAA,IAAI,SAAS,YAAY,OAAO,EAAE;AAC9B,YAAA,SAAS,GAAG,SAAS,CAAC,EAAE;QAC5B;AAEA,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAkB;IACvF;IAEA,MAAM,CAAC,UAAkB,EAAE,QAAgB,EAAE,IAAA,GAAmB,EAAE,EAAE,OAAA,GAA0B,EAAE,EAAA;AAC5F,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAmI;QAC7J,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC;IAChF;AAEA,IAAA,MAAM,CAAC,UAAkB,EAAE,OAAA,GAA0B,EAAE,EAAA;AACnD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAkB;IAC3E;IAEA,KAAK,CAAC,UAA0B,EAAE,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAkB;IAC9D;IAEA,MAAM,GAAA;AACF,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE;IACzB;IAEA,OAAO,GAAA;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAkB;IACxD;IAEA,QAAQ,GAAA;QACJ,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,QAAQ,KAAK,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IACxG;IAEA,QAAQ,GAAA;QACJ,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;AAC5C,QAAA,OAAO,OAAO,CAAC,KAAK,CAAC,GAAI,KAAsB,GAAG,EAAE;IACxD;AAEA,IAAA,UAAU,CAAC,SAAiB,EAAA;QACxB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,UAAU,KAAK,SAAS,CAAC,KAAK,EAAE;IAC5F;AAEA,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC;IACvC;AAEA,IAAA,IAAI,UAAU,GAAA;AACV,QAAA,OAAO,CAAC,IAAI,CAAC,OAAO;IACxB;AACH;AAEDC,CAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC;;ACjFpB,MAAO,OAAQ,SAAQD,kBAAQ,CAAA;AACzC,IAAA,WAAA,CAAY,aAAyB,EAAE,EAAE,OAAiB,EAAE,UAAsB,EAAE,EAAA;QAChF,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC;IAClD;IAEA,OAAO,CAAC,SAAqB,EAAE,EAAA;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAC3C;IAEA,MAAM,qBAAqB,CAAI,QAAgB,EAAE,aAAqC,EAAE,SAAqB,EAAE,EAAA;AAC3G,QAAA,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAe,QAAQ,EAAE,MAAM,CAAC;QACxE,OAAO,IAAIG,EAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,UAAsB,KAAK,IAAI,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACjH;AAEA,IAAA,MAAM,SAAS,CAAC,MAAA,GAAqB,EAAE,EAAA;QACnC,OAAO,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC;IAC9D;AAEA,IAAA,MAAM,iBAAiB,CAAC,MAAA,GAAqB,EAAE,EAAA;QAC3C,OAAO,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,EAAE,aAAa,EAAE,MAAM,CAAC;IAC/E;AAEA,IAAA,MAAM,aAAa,CAAC,MAAA,GAAqB,EAAE,EAAA;QACvC,OAAO,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC;IACrE;AAEA,IAAA,MAAM,MAAM,CAAC,KAAa,EAAE,SAAqB,EAAE,EAAA;AAC/C,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;IAChG;IAEA,MAAM,WAAW,CAAC,EAAU,EAAA;AACxB,QAAA,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAa,CAAA,OAAA,EAAU,EAAE,CAAA,CAAE,CAAC;QACrE,OAAO,IAAI,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC;IAC9C;AAEA,IAAA,MAAM,UAAU,CAAC,OAAe,EAAE,SAAqB,EAAE,EAAA;AACrD,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;IACvF;AAEA,IAAA,MAAM,kBAAkB,CAAC,MAAA,GAAqB,EAAE,EAAA;QAC5C,OAAO,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,cAAc,EAAE,MAAM,CAAC;IACzE;AACH;AAEDF,CAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC;;ACjD1B,MAAO,oBAAqB,SAAQK,EAAY,CAAA;AAC1D,IAAA,WAAA,CAAY,aAAmC,EAAE,EAAE,OAAiB,EAAE,UAAsB,EAAE,EAAA;QAC1F,IAAI,eAAe,GAAe,UAAwB;QAC1D,IAAI,YAAY,GAAwB,OAAO;;QAG/C,IAAI,UAAU,YAAYC,EAAO,KAAK,UAAU,IAAI,OAAO,UAAU,CAAC,GAAG,KAAK,UAAU,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE;YAChI,eAAe,GAAG,EAAE;YACpB,YAAY,GAAG,UAAqB;QACxC;;QAGA,KAAK,CAAC,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,OAAO,CAAC;IAClE;AAEA;;;;;AAKG;AACH,IAAA,UAAU,CAAC,OAAgB,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE;YACrD,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5C,YAAA,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO;AACjC,SAAA,CAAC;AAEF,QAAA,OAAO,IAAI;IACf;AAEA,IAAA,IAAI,eAAe,GAAA;AACf,QAAA,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAA2C;QAEjH,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;AACtC,YAAA,OAAO,IAAI;QACf;QAEA,OAAO,cAAc,CAAE,MAAiB,GAAG,GAAG,EAAE,QAAkB,CAAC;IACvE;AAEA,IAAA,MAAM,QAAQ,CAAC,GAAG,IAAoE,EAAA;AAClF,QAAA,OAAO,IAAI,CAAC,0BAA0B,CAAC,GAAG,IAAI,CAAC;IACnD;AAEA,IAAA,MAAM,0BAA0B,CAAC,MAA4B,EAAE,WAAiC,EAAE,IAA0B,EAAE,MAAM,GAAG,YAAY,EAAE,GAAG,GAAG,KAAK,EAAA;QAC5J,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,EAAE,EAAE,EAAE;AAC1C,YAAA,MAAM,GAAG,MAAM,CAAC,EAAE;QACtB;QAEA,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,EAAE,EAAE,EAAE;AACpD,YAAA,WAAW,GAAG,WAAW,CAAC,EAAE;QAChC;QAEA,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,EAAE,EAAE,EAAE;AACtC,YAAA,IAAI,GAAG,IAAI,CAAC,EAAE;QAClB;QAEA,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAA4B,0BAA0B,EAAE;YAChG,MAAM;YACN,WAAW;YACX,IAAI;YACJ,MAAM;YACN,GAAG;AACN,SAAA,CAAC;AAEF,QAAA,IAAIR,SAAO,CAAC,aAAa,CAAC,EAAE;YACxB,OAAO,IAAII,EAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,YAAwB,KAAK,IAAI,oBAAoB,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAChI;QAEA,OAAO,IAAI,oBAAoB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC;IAChE;AAEA,IAAA,aAAa,WAAW,CAAC,OAAgB,EAAE,MAA4B,EAAE,WAAiC,EAAE,IAA0B,EAAE,MAAM,GAAG,YAAY,EAAE,GAAG,GAAG,KAAK,EAAA;AACtK,QAAA,MAAM,KAAK,GAAG,IAAI,oBAAoB,CAAC,OAAO,CAAC;AAC/C,QAAA,OAAO,KAAK,CAAC,0BAA0B,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC;IACnF;AACH;AAEDF,CAAQ,CAAC,UAAU,EAAE,sBAAsB,EAAE,oBAAoB,CAAC;;ACjFpD,MAAO,KAAM,SAAQO,EAAc,CAAA;AAC7C,IAAA,WAAA,CAAY,aAAyB,EAAE,EAAE,OAAiB,EAAE,UAAsB,EAAE,EAAA;AAChF,QAAA,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC;IACvC;AACH;AAEDP,CAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC;;ACH7B,MAAM,eAAe,GAAG,IAAIC,EAAY,CAAC;AAC5C,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,WAAW,EAAE,SAAS;AAEtB,IAAA,UAAU,EAAE,UAER,QAA4B,EAC5B,IAAwB,EACxB,YAAgC,EAChC,OAA2B,EAC3B,YAAA,GAA2B,EAAE,EAC7B,UAA0B,EAAE,EAAA;AAE5B,QAAA,IAAIO,EAAU,CAAC,QAAQ,CAAC,EAAE;AACtB,YAAA,QAAQ,GAAG,QAAQ,CAAC,EAAE;QAC1B;AAEA,QAAA,IAAIA,EAAU,CAAC,IAAI,CAAC,EAAE;AAClB,YAAA,IAAI,GAAG,IAAI,CAAC,EAAE;QAClB;AAEA,QAAA,IAAIA,EAAU,CAAC,YAAY,CAAC,EAAE;AAC1B,YAAA,YAAY,GAAG,YAAY,CAAC,EAAE;QAClC;AAEA,QAAA,IAAIA,EAAU,CAAC,OAAO,CAAC,EAAE;AACrB,YAAA,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC;QAC1C;QAEA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,SAAS,CAAA,OAAA,CAAS,EAAE,EAAE,GAAG,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC;IAC5H,CAAC;IAED,YAAY,EAAE,UAAiC,KAAa,EAAE,SAAqB,EAAE,EAAE,UAA0B,EAAE,EAAA;AAC/G,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAa,CAAA,EAAG,IAAI,CAAC,SAAS,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5J,CAAC;IAED,uBAAuB,EAAE,UAAiC,QAA4B,EAAE,SAAqB,EAAE,EAAE,UAA0B,EAAE,EAAA;AACzI,QAAA,IAAIA,EAAU,CAAC,QAAQ,CAAC,EAAE;AACtB,YAAA,QAAQ,GAAG,QAAQ,CAAC,EAAE;QAC1B;QAEA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,SAAS,sBAAsB,EAAE,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC;IACvG,CAAC;AAED,IAAA,yBAAyB,EAAE,UAEvB,aAAqB,EACrB,QAA4B,EAC5B,IAAwB,EACxB,YAAgC,EAChC,YAAA,GAA2B,EAAE,EAC7B,UAA0B,EAAE,EAAA;AAE5B,QAAA,IAAIA,EAAU,CAAC,QAAQ,CAAC,EAAE;AACtB,YAAA,QAAQ,GAAG,QAAQ,CAAC,EAAE;QAC1B;AAEA,QAAA,IAAIA,EAAU,CAAC,IAAI,CAAC,EAAE;AAClB,YAAA,IAAI,GAAG,IAAI,CAAC,EAAE;QAClB;AAEA,QAAA,IAAIA,EAAU,CAAC,YAAY,CAAC,EAAE;AAC1B,YAAA,YAAY,GAAG,YAAY,CAAC,EAAE;QAClC;QAEA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,SAAS,CAAA,6BAAA,CAA+B,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,EAAE,OAAO,CAAC;IACxJ,CAAC;AAED,IAAA,SAAS,EAAE,UAAiC,QAA4B,EAAE,KAAa,EAAE,UAA0B,EAAE,EAAA;AACjH,QAAA,IAAIA,EAAU,CAAC,QAAQ,CAAC,EAAE;AACtB,YAAA,QAAQ,GAAG,QAAQ,CAAC,EAAE;QAC1B;QAEA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,SAAS,SAAS,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC;IACrF,CAAC;IAED,WAAW,EAAE,UAAiC,QAA4B,EAAE,SAAqB,EAAE,EAAE,UAA0B,EAAE,EAAA;AAC7H,QAAA,IAAIA,EAAU,CAAC,QAAQ,CAAC,EAAE;AACtB,YAAA,QAAQ,GAAG,QAAQ,CAAC,EAAE;QAC1B;QAEA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,SAAS,eAAe,EAAE,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC;IAChG,CAAC;IAED,mBAAmB,EAAE,UAAiC,QAA4B,EAAE,SAAqB,EAAE,EAAE,UAA0B,EAAE,EAAA;AACrI,QAAA,IAAIA,EAAU,CAAC,QAAQ,CAAC,EAAE;AACtB,YAAA,QAAQ,GAAG,QAAQ,CAAC,EAAE;QAC1B;QAEA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,SAAS,eAAe,EAAE,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC;IAC/F,CAAC;AACJ,CAAA,CAAC;AAEY,MAAO,QAAS,SAAQT,kBAAQ,CAAA;AAC1C,IAAA,WAAA,CAAY,aAAyB,EAAE,EAAE,OAAiB,EAAE,UAAsB,EAAE,EAAA;AAChF,QAAA,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,OAAO,EAAE,CAAC;IACpF;AAEA,IAAA,UAAU,CACN,QAA4B,EAC5B,IAAwB,EACxB,YAAgC,EAChC,OAA2B,EAC3B,YAAA,GAA2B,EAAE,EAC7B,UAA0B,EAAE,EAAA;AAE5B,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,CAAqB;IAClH;AAEA,IAAA,YAAY,CAAC,KAAa,EAAE,SAAqB,EAAE,EAAE,UAA0B,EAAE,EAAA;AAC7E,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAmB;IAC5E;AAEA,IAAA,uBAAuB,CAAC,QAA4B,EAAE,SAAqB,EAAE,EAAE,UAA0B,EAAE,EAAA;AACvG,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAqB;IAC5F;AAEA,IAAA,yBAAyB,CACrB,aAAqB,EACrB,QAA4B,EAC5B,IAAwB,EACxB,YAAgC,EAChC,YAAA,GAA2B,EAAE,EAC7B,UAA0B,EAAE,EAAA;AAE5B,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,CAAqB;IACvI;AAEA,IAAA,SAAS,CAAC,QAA4B,EAAE,KAAa,EAAE,UAA0B,EAAE,EAAA;AAC/E,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAqB;IAC7E;AAEA,IAAA,WAAW,CAAC,QAA4B,EAAE,SAAqB,EAAE,EAAE,UAA0B,EAAE,EAAA;AAC3F,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAqB;IAChF;AAEA,IAAA,mBAAmB,CAAC,QAA4B,EAAE,SAAqB,EAAE,EAAE,UAA0B,EAAE,EAAA;AACnG,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAqB;IACxF;AACH;AAEDC,CAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC;;ACjJ5B,MAAO,SAAU,SAAQD,kBAAQ,CAAA;AAC3C,IAAA,WAAA,CAAY,aAAyB,EAAE,EAAE,OAAiB,EAAE,UAAsB,EAAE,EAAA;QAChF,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC;IACrD;AACH;AAEDC,CAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC;;ACN5C,SAAS,KAAK,CAAC,KAAwB,EAAA;AACnC,IAAA,OAAOQ,EAAU,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK;AAC/C;AAEO,MAAM,YAAY,GAAG,IAAIP,EAAY,CAAC;AACzC,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,WAAW,EAAE,SAAS;IAEtB,cAAc,EAAE,UAAiC,KAAwB,EAAE,SAAqB,EAAE,EAAE,UAA0B,EAAE,EAAA;QAC5H,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,SAAS,CAAA,UAAA,CAAY,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC;IACvG,CAAC;IAED,UAAU,EAAE,UAAiC,KAAwB,EAAE,SAAqB,EAAE,EAAE,UAA0B,EAAE,EAAA;QACxH,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,SAAS,CAAA,QAAA,CAAU,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC;IACtG,CAAC;AACJ,CAAA,CAAC;;ACgDF;;;;AAIG;AACW,MAAO,UAAU,CAAA;AAC3B,IAAA,OAAO;AACP,IAAA,OAAO;AACP,IAAA,OAAO;AACP,IAAA,QAAQ;AACR,IAAA,UAAU;AACV,IAAA,UAAU;AACV,IAAA,OAAO;AACP,IAAA,SAAS;AACT,IAAA,IAAI;AACJ,IAAA,QAAQ;AACR,IAAA,MAAM;AAEN;;;;;;;AAOG;AACH,IAAA,WAAA,CAAY,QAAgB,EAAE,MAAA,GAA2B,EAAE,EAAE,KAAK,GAAG,KAAK,EAAA;QACtE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI;QACrC,IAAI,CAAC,OAAO,GAAG;YACX,OAAO,EAAE,IAAI,CAAC,OAAO;AACrB,YAAA,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,0BAA0B;YAC/C,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,CAAA,WAAA,EAAc,IAAI,CAAC,OAAO,CAAA,CAAE;AAC3D,YAAA,SAAS,EAAE,QAAQ;YACnB,KAAK;SACR;AAED,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;AACvB,YAAA,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC;QACxE;AAEA,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAIQ,EAAa,CAAC,IAAI,CAAC,OAAO,CAAC;QAE5D,IAAI,CAAC,gBAAgB,EAAE;IAC3B;IAEA,gBAAgB,GAAA;AACZ,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,eAAe,CAAU,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC;AACrE,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAW,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC;AACzE,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAY,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC;AAC5E,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAS,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,aAAa,CAAgB;AAC9G,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAW,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,eAAe,CAAkB;AACxH,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,eAAe,CAAO,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,WAAW,CAAc;AACnG,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,eAAe,CAAW,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,eAAe,CAAkB;AACvH,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAQ,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,YAAY,CAAe;AAEzG,QAAA,OAAO,IAAI;IACf;AAEA;;;;;AAKG;IACH,KAAK,CAAC,UAAkC,EAAE,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAa,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,MAAM,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,CAAC;IACtI;;IAGA,QAAQ,GAAA;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAA6B;IACrE;AAEA;;;;;;AAMG;AACH,IAAA,MAAM,CAAC,EAAU,EAAE,OAAA,GAAkC,EAAE,EAAA;AACnD,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAa,CAAA,OAAA,EAAU,EAAE,CAAA,CAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,MAAM,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,CAAC;IAC7I;AAEA;;;AAGG;AACH,IAAA,cAAc,CAAC,EAAU,EAAA;AACrB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAA6B;IAC1E;AAEA;;;;;;AAMG;AACH,IAAA,MAAM,CAAC,KAAa,EAAE,OAAA,GAAsB,EAAE,EAAA;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAe,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAI;YACrF,OAAO,IAAIP,EAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAmB,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACpG,QAAA,CAAC,CAAC;IACN;IAEA,YAAY,CAAC,aAAyB,EAAE,EAAA;AACpC,QAAA,IAAI,UAAU,EAAE,UAAU,KAAK,IAAI,EAAE;YACjC,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC;QAChD;QAEA,OAAO,IAAI,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC;IAC9C;AAEA,IAAA,OAAO,WAAW,CAAC,GAAG,IAA8C,EAAA;AAChE,QAAA,OAAO,IAAI,UAAU,CAAC,GAAG,IAAI,CAAC;IAClC;AAEA,IAAA,UAAU,CAAC,OAAgB,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AAEtB,QAAA,OAAO,IAAI,CAAC,gBAAgB,EAAE;IAClC;IAEA,UAAU,GAAA;QACN,OAAO,IAAI,CAAC,OAAO;IACvB;AACH;;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/docs/api-contract.md b/docs/api-contract.md new file mode 100644 index 0000000..ede700e --- /dev/null +++ b/docs/api-contract.md @@ -0,0 +1,63 @@ +# Storefront API contract + +This matrix records the contract sources used for the v1.2 SDK refactor. It was audited on 2026-08-31 against: + +- [`fleetbase/storefront` routes and v1 controllers at `7f0ba99`](https://github.com/fleetbase/storefront/blob/7f0ba993aa719710c5033a91ecbcf89d1ae8c97c/server/src/routes.php), which are authoritative for Storefront-specific verbs, paths, and controller payloads; +- [`fleetbase/postman` at `9a7d4d8`](https://github.com/fleetbase/postman/tree/9a7d4d898b4e74d735d93c78d67d4d5013c1a28b/postman/collections/Fleetbase%20API/Customers), which supplies current customer request examples and authentication flows; +- [`fleetbase/core-api` routing infrastructure at `b7691c0`](https://github.com/fleetbase/core-api/blob/b7691c06ffdfe8f8874352e746aa8e523d5e3531/src/Routing/RESTRegistrar.php), which defines the shared REST conventions used by Fleetbase package routes. + +The executable wire assertions are in `tests/actions.test.js`; the frozen JavaScript surface is in `tests/contracts/public-api.snapshot.json`. + +## Root and marketplace routes + +| HTTP | Storefront path | SDK surface | +| ---- | ----------------------------- | ------------------------------------------------------------------ | +| GET | `about` | `storefront.about()`, `storefront.getOwner()` | +| GET | `lookup/{id}` | `storefront.lookup()`, `lookupResource()`, `network.lookupStore()` | +| GET | `search` | `storefront.search()`, `network.search()` | +| GET | `stores` | `network.getStores()` | +| GET | `store-locations` | `network.getStoreLocations()` | +| GET | `tags` | `store.getTags()`, `network.getTags()` | +| GET | `locations`, `locations/{id}` | `store.getLocations()`, `store.getLocation()` | +| GET | `gateways`, `gateways/{id}` | store/network payment-gateway helpers | + +## Resource routes + +| HTTP | Storefront path | SDK surface | +| ------------------- | ----------------------------------- | --------------------------------------------- | +| GET | `categories` | `storefront.categories.findAll/query()` | +| GET/POST/PUT | `products`, `products/{id}` | standard product store CRUD/query methods | +| GET | `food-trucks`, `food-trucks/{id}` | standard food-truck store read/query methods | +| GET/POST/DELETE | `reviews`, `reviews/{id}` | standard review store CRUD/query methods | +| GET | `reviews/count` | `storefront.reviews.count()` | +| GET/POST/PUT/DELETE | `carts` and nested cart item routes | cart store and `Cart` action helpers | +| GET | `service-quotes/from-cart` | `DeliveryServiceQuote.fromCart/getFromCart()` | +| PUT | `orders/picked-up` | `storefront.orders.completePickup()` | +| POST | `orders/receipt` | `storefront.orders.getReceipt()` | + +## Checkout routes + +| HTTP | Storefront path | SDK surface | +| ---- | ---------------------------------------- | -------------------------------------- | +| GET | `checkouts/before` | `checkout.initialize()` | +| GET | `checkouts/status` | `checkout.getStatus()` | +| POST | `checkouts/capture` | `checkout.captureOrder()` | +| POST | `checkouts/stripe-setup-intent` | `checkout.createStripeSetupIntent()` | +| PUT | `checkouts/stripe-update-payment-intent` | `checkout.updateStripePaymentIntent()` | +| POST | `checkouts/capture-qpay` | `checkout.captureQPay()` | +| GET | `checkouts/capture-qpay` | `checkout.captureQPayCallback()` | + +## Customer routes + +The static customer-store actions cover creation, email/password login, SMS login, verification codes, and Apple/Facebook/Google login. A hydrated `Customer` supplies request-scoped `Customer-Token` authentication for device registration, places, orders, Stripe helpers, account closure, phone verification, and the compatibility `contacts/{id}` update alias. + +The SDK deliberately passes the token in each request's options instead of mutating adapter-global headers. This preserves the server contract while preventing one customer session from leaking into another request. + +## Compatibility decisions + +- The default constructor, `newInstance`, root named exports, store names, action names, resource prototypes, synchronous validation errors, request verbs/paths/payloads, and adapter-preserving hydration are frozen by executable tests. +- `src/cart-store` and `src/customer-store` were unreachable duplicate implementations. The historical package had an `exports` map containing only `"."`, so these paths were not supported deep imports. They were removed after their active action-based replacements reached parity. +- `Product.getReviews()` continues sending the product identifier in the legacy `store` parameter. The server route accepts the request and changing it silently could break consumers; any corrected product-review query should be introduced as a separately reviewed API. +- Customer-authorized requests retain the existing public method and header name but now use request-local options rather than adapter-global mutation. +- The package-local `@fleetbase/sdk` declaration shim exists because upstream `@fleetbase/sdk@1.2.13` ships no TypeScript declarations. The shim is strict, contains no public `any`, and is verified by Node16, NodeNext, and Bundler resolution fixtures. +- ESM and CommonJS temporarily bundle the build-time-only `@fleetbase/sdk`. Its current ESM target is reported as having no exports by webpack, while its `.js` CommonJS target sits inside a `type: module` package and fails clean CommonJS consumers when externalized. The vulnerable upstream dependency graph is therefore not installed in consuming applications; patched build-time overrides are compiled into the verified artifacts. Vite, webpack, Next.js, and clean CommonJS fixtures prevent removing this boundary before upstream publishes standards-compliant entries. `countries-list` and `date-fns` remain externalized from the module builds. diff --git a/docs/api-reference.md b/docs/api-reference.md new file mode 100644 index 0000000..c6cbfd3 --- /dev/null +++ b/docs/api-reference.md @@ -0,0 +1,60 @@ +# API reference + +The generated TypeScript declarations shipped in `types/` are the exact signature source of truth. This guide summarizes the public runtime surface. All request methods return promises; collection methods return Fleetbase `Collection` instances whose elements retain the active adapter. + +## Storefront client + +`new Storefront(storeKey, config?, debug?)` accepts a public `store_…` or `network_…` key. Configuration supports `host`, `version`, `namespace`, and a custom Fleetbase-compatible `adapter`. + +| Member | Result or purpose | +| -------------------------------------- | ----------------------------------------------------- | +| `Storefront.newInstance(...args)` | Construct another client | +| `about({ resource? })` | Raw owner payload, or hydrated `Store`/`Network` | +| `getOwner()` | Hydrated `Store` or `Network` | +| `lookup(id, { resource? })` | Raw lookup payload, or hydrated owner | +| `lookupResource(id)` | Hydrated `Store` or `Network` | +| `search(query, options?)` | `Collection` | +| `setAdapter(adapter)` / `getAdapter()` | Replace/read the adapter; replacement rebuilds stores | + +The client exposes `products`, `categories`, `foodTrucks`, `reviews`, `customers`, `cart`, `checkout`, and `orders`. Standard stores inherit the Fleetbase store methods such as `findAll`, `query`, `findRecord`, `createRecord`, and `updateRecord`, subject to the server route's supported verbs. + +## Store actions + +| Store | Actions | +| ----------- | --------------------------------------------------------------------------------------------------------------------------------------- | +| `reviews` | `count(storeId?, options?)` | +| `customers` | `login`, `loginWithApple`, `loginWithFacebook`, `loginWithGoogle`, `verifyCode`, `requestCreationCode`, `create`, `retrieve` | +| `cart` | `add(cartId, productId, quantity?, data?, options?)`, `update`, `remove`, `empty`, `retrieve` | +| `checkout` | `initialize`, `captureOrder`, `createStripeSetupIntent`, `updateStripePaymentIntent`, `getStatus`, `captureQPay`, `captureQPayCallback` | +| `orders` | `completePickup(order, params?, options?)`, `getReceipt(order, params?, options?)` | + +Most identifier arguments accept either a public ID or the corresponding resource object. `RequestOptions` can carry adapter request options and headers. + +## Resources + +Every resource inherits the Fleetbase `Resource` attribute, serialization, and adapter behavior. + +| Resource | Public helpers and derived values | +| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Cart` | `add`, `update`, `remove`, `empty`, `delete`, `refresh`, `subtotal`, `contents`, `hasProduct`, `isEmpty`, `isNotEmpty` | +| `Category` | `getProducts()` | +| `Checkout` | The checkout actions listed above, scoped to the resource | +| `Customer` | `syncDevice`, authorized request helper, saved places/order history, Stripe helpers, account closure, phone verification, contact alias update, and `token` | +| `DeliveryServiceQuote` | `fromCart`, `fetchServiceQuotesFromCart`, static `getFromCart`, `formattedAmount`, `setAdapter` | +| `FoodTruck` | Standard resource attributes | +| `Network` | `getTags`, `getStores`, `getStoreLocations`, `getCategories`, `search`, `lookupStore`, `getReviews`, `getPaymentGateways` | +| `Order` | Fleetbase order behavior plus Storefront hydration | +| `PaymentGateway` | `type`, `code`, cash/Stripe/QPay flags, checkout-token setter/getter; unsupported CRUD methods throw | +| `Product` | `variants`, `addons`, `images`, `videos`, `hours`, sale flags, `formattedAmount`, `merchant`, `getReviews` | +| `Review` | `getMedia`, `getPhotos`, `getVideos` | +| `Store` | `getReviews`, `getTags`, `getLocations`, `getLocation`, `getPaymentGateways`, `getPaymentGateway` | +| `StoreHour` | `day`, closed/24-hour flags, parsed start/end dates, human-readable ranges; unsupported mutation/reload methods throw | +| `StoreLocation` | coordinates, typed hours, normalized `storeData`/`storeId`, typed `merchant`, always-open/today/schedule helpers; unsupported mutation methods throw | + +## Exports and errors + +The package root exports the default `Storefront` class, every resource above, and Fleetbase `lookup`. CommonJS returns a directly constructible default with the named exports attached. The `browser` subpath exposes the self-contained browser build. + +Invalid storefront keys throw synchronously. Adapter/network errors reject their returned promises unchanged. Unsupported resource operations throw synchronously. Customer-authorized calls add `Customer-Token` to that request's headers without mutating global adapter headers. + +See [the wire contract](api-contract.md) for HTTP routes, [the compatibility policy](compatibility.md) for supported environments, and the published `.d.ts`/`.d.cts` files for complete parameter and return types. diff --git a/docs/compatibility.md b/docs/compatibility.md new file mode 100644 index 0000000..d904e88 --- /dev/null +++ b/docs/compatibility.md @@ -0,0 +1,29 @@ +# Compatibility policy + +## Supported matrix + +| Area | Supported and verified | +| --------------------- | ---------------------------------------------------------- | +| Node.js | 22 and 24 | +| Forward compatibility | Node.js 26, allowed to fail until it becomes LTS | +| Modules | Native ESM and directly constructible CommonJS | +| TypeScript | `node16`, `nodenext`, and `bundler` package resolution | +| Package managers | npm, pnpm, Yarn 4, and Bun | +| Browser | Self-contained UMD bundle with no DOM access during import | +| Server rendering | Package import has no browser-global dependency | +| Bundlers | Vite 8 and webpack 5 | +| Frameworks | Next.js 16 client/server and Ember 7 with Vite/Embroider | + +The CI matrix installs the exact packed tarball rather than linking the repository source. Claims are expanded only after a distinct runtime or resolver path has a maintained fixture. + +## Package entry points + +- `@fleetbase/storefront` selects ESM, CommonJS, and matching declarations through conditional exports. +- `@fleetbase/storefront/browser` selects the self-contained browser build for ESM consumers and the compatible CommonJS build for `require()` consumers. +- `@fleetbase/storefront/package.json` exposes package metadata. + +Historical undocumented deep imports are not public API. Use named exports from the package root. + +## Deprecation policy + +Compatible additions ship in minor releases. A deprecated public API remains available for at least one minor release and is documented with its replacement. Removal or a consumer-visible change to exports, arguments, requests, resource types, or error timing requires a major release. diff --git a/docs/migration-v1.2.md b/docs/migration-v1.2.md new file mode 100644 index 0000000..ebb6ae3 --- /dev/null +++ b/docs/migration-v1.2.md @@ -0,0 +1,34 @@ +# Migrating from v1.1 to v1.2 + +Version 1.2 is designed as a compatible upgrade. Existing ESM imports, the `Storefront` constructor, store properties, and resource methods remain available. + +## CommonJS + +CommonJS now resolves to a real `.cjs` artifact and remains directly constructible: + +```js +const Storefront = require('@fleetbase/storefront'); +const storefront = new Storefront('store_your_public_storefront_key'); +``` + +Named exports are properties on the constructor, so `Storefront.Product` remains available. + +## TypeScript + +Declarations are generated from maintained source and exposed for both import and require conditions. Remove local declaration shims previously added for `@fleetbase/storefront` and use the package declarations. + +## Typed owner helpers + +`about()` and `lookup()` still return raw objects by default. New code can opt into resources with `getOwner()` and `lookupResource()`. + +## Adapter behavior + +Calling `setAdapter()` now rebuilds all Storefront stores. Search results, nested merchant resources, places, orders, and delivery quotes retain the active adapter. Customer authorization is request-scoped and no longer mutates shared headers. + +## Package contents + +Obsolete historical bundles and undocumented deep-import files are no longer shipped. Use the package root or the documented `browser` entry point. + +## New API coverage + +The SDK adds current Storefront API helpers for marketplace networks, customer account closure and phone verification, Stripe setup and payment-intent updates, QPay capture and status, order pickup completion, and receipt retrieval. diff --git a/docs/releasing.md b/docs/releasing.md new file mode 100644 index 0000000..a2d1057 --- /dev/null +++ b/docs/releasing.md @@ -0,0 +1,42 @@ +# Release process + +## One-time repository setup + +1. Ensure the repository can inherit the organization `_GITHUB_AUTH_TOKEN` secret required by the shared release-tag workflow. +2. Create a protected GitHub environment named `npm-production` and require release-owner approval. +3. Configure npm trusted publishing for package `@fleetbase/storefront`: + - provider: GitHub Actions; + - organization: `fleetbase`; + - repository: `storefront-js`; + - workflow filename: `publish.yml`; + - environment: `npm-production`; + - allowed action: publish. +4. After the first successful trusted publish, disable token-based publishing and revoke the old automation token. +5. Create a `storefront-smoke` environment with the public, non-production `FLEETBASE_STOREFRONT_PUBLIC_KEY` secret and optional `FLEETBASE_STOREFRONT_HOST` variable. +6. Protect `main` and active `release/**` branches with the required quality, supported Node, packed-artifact, framework/package-manager compatibility, mutation, dependency-review, security, and CodeQL checks. + +## Release flow + +1. Collect consumer-visible work on a branch named `release/v` created from current `main`. +2. Set `package.json` to that exact version, update `CHANGELOG.md`, and replace `RELEASE.md` with release-specific notes whose first line names `v`. +3. Target feature pull requests for the release at the release branch, then merge them only after their normal CI gates pass. +4. Keep the release pull request targeted at `main`. Confirm its complete quality, runtime, packed-artifact, framework/package-manager, mutation, dependency-review, security, CodeQL, and application-acceptance gates. +5. Merge the release pull request. `release.yml` validates the branch, package version, and release notes through the organization release workflow and pushes the immutable `v` tag. +6. The tag starts `publish.yml`, which checks out that exact revision, reruns the complete suite, packs and verifies one tarball, publishes those bytes through npm OpenID Connect, verifies registry metadata, and creates the GitHub Release with the tarball and SHA-256 checksum attached. +7. Verify the npm dist-tag, provenance, GitHub Release, attached checksum, and clean registry installs before announcing the release. + +## Prereleases + +Use a branch such as `release/v1.2.0-rc.1` for a release candidate. The publish workflow detects the prerelease suffix and publishes it under the npm `next` dist-tag. Validate application consumers against the registry artifact before preparing the stable release branch. + +An npm prerelease and its later stable version are necessarily different immutable package versions. Validate each from its own packed artifact; never claim that `1.2.0-rc.N` and `1.2.0` are byte-identical. Within each version, CI verifies and publishes one tarball without rebuilding it. + +## Workflow maintenance + +Third-party actions are pinned to reviewed commit SHAs. Dependabot checks action and npm updates weekly; review upstream release notes before accepting a changed SHA. The live smoke runs weekly and on demand, is read-only, has a ten-minute timeout, and never has publish permissions. + +## Recovery + +npm versions are immutable. Do not attempt to rewrite a published version. On failure, restore the previous dist-tag or publish a corrected patch release, then document the incident in the release notes. + +The publish workflow is retry-safe only when an existing registry version has exactly the same SHA-512 integrity as the locally verified tarball. It refuses to continue when the bytes differ. diff --git a/eslint.config.js b/eslint.config.js index 2fb3007..2da09e8 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -1,9 +1,22 @@ import globals from 'globals'; import pluginJs from '@eslint/js'; +import tseslint from 'typescript-eslint'; /** @type {import('eslint').Linter.Config[]} */ -export default [ +export default tseslint.config( { languageOptions: { globals: { ...globals.browser, ...globals.node } } }, pluginJs.configs.recommended, - { files: ['tests/**/*.js'], languageOptions: { globals: globals.mocha } }, -]; + ...tseslint.configs.recommended, + { + rules: { + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }], + }, + }, + { + files: ['**/*.cts'], + rules: { + '@typescript-eslint/no-require-imports': 'off', + }, + } +); diff --git a/package.json b/package.json index 159868a..903eaad 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@fleetbase/storefront", - "version": "1.1.14", - "description": "Fleetbase Storefront JS & Node SDK", + "version": "1.2.0", + "description": "Official JavaScript SDK for the Fleetbase Storefront API", "license": "AGPL-3.0-or-later", "author": "Ronald A. Richardson (https://ron.dev)", "type": "module", @@ -10,47 +10,126 @@ "logistics", "headless ecommerce" ], - "main": "dist/cjs/storefront.js", + "repository": { + "type": "git", + "url": "git+https://github.com/fleetbase/storefront-js.git" + }, + "homepage": "https://github.com/fleetbase/storefront-js#readme", + "bugs": { + "url": "https://github.com/fleetbase/storefront-js/issues" + }, + "engines": { + "node": ">=22" + }, + "packageManager": "pnpm@9.15.4", + "sideEffects": true, + "files": [ + "dist/esm/storefront.js", + "dist/esm/storefront.js.map", + "dist/cjs/storefront.cjs", + "dist/cjs/storefront.cjs.map", + "dist/@storefront.min.js", + "dist/@storefront.min.js.map", + "types", + "docs", + "README.md", + "CHANGELOG.md", + "CONTRIBUTING.md", + "SECURITY.md", + "LICENSE.md" + ], + "main": "dist/cjs/storefront.cjs", "module": "dist/esm/storefront.js", + "types": "types/storefront.d.ts", "exports": { ".": { - "import": "./dist/esm/storefront.js", - "require": "./dist/cjs/storefront.js" - } + "import": { + "types": "./types/storefront.d.ts", + "default": "./dist/esm/storefront.js" + }, + "require": { + "types": "./types/storefront.d.cts", + "default": "./dist/cjs/storefront.cjs" + }, + "default": "./dist/esm/storefront.js" + }, + "./browser": { + "import": { + "types": "./types/storefront.d.ts", + "default": "./dist/@storefront.min.js" + }, + "require": { + "types": "./types/storefront.d.cts", + "default": "./dist/cjs/storefront.cjs" + }, + "default": "./dist/@storefront.min.js" + }, + "./package.json": "./package.json" + }, + "publishConfig": { + "access": "public", + "provenance": true }, "scripts": { - "prebuild": "npm run lint", - "lint": "eslint src", + "build": "pnpm run build:types && pnpm run bundle", + "lint": "eslint src tests scripts vitest.config.js rollup.config.js stryker.config.mjs", "lint:fix": "eslint src --fix", "lint:tests": "eslint tests", "bundle": "rollup -c", "dev": "rollup -c -w", - "test": "mocha -r @babel/register -r dotenv/config 'tests/*.test.js' --timeout 10000", - "format": "prettier . --write" + "test": "vitest run", + "test:coverage": "vitest run --coverage", + "test:mutation": "stryker run", + "test:browser": "node scripts/verify-browser-bundle.mjs", + "test:frameworks": "node scripts/verify-framework-consumers.mjs", + "test:watch": "vitest", + "typecheck": "tsc --noEmit && tsc --noEmit --project tests/types/tsconfig.json", + "build:types": "tsc -p tsconfig.build.json && node scripts/create-cjs-types.mjs && prettier types --write", + "package:check": "publint && attw --pack . --profile node16", + "package:artifact": "node scripts/verify-package-artifact.mjs", + "check": "pnpm run format:check && pnpm run lint && pnpm run typecheck && pnpm run test:coverage && pnpm run bundle && pnpm run test:browser && pnpm run package:check", + "format": "prettier . --write", + "format:check": "prettier . --check", + "prepack": "pnpm run build" }, "dependencies": { - "@fleetbase/sdk": "^1.2.13", - "countries-list": "^3.1.1", - "date-fns": "^4.1.0" + "countries-list": "^3.4.1", + "date-fns": "^4.4.0" }, "devDependencies": { - "@babel/core": "^7.26.0", - "@babel/node": "^7.26.0", - "@babel/plugin-proposal-decorators": "^7.25.9", - "@babel/preset-env": "^7.26.0", - "@babel/register": "^7.25.9", - "@eslint/js": "^9.17.0", - "@rollup/plugin-babel": "^6.0.4", - "@rollup/plugin-commonjs": "^28.0.2", - "@rollup/plugin-eslint": "^9.0.5", - "@rollup/plugin-node-resolve": "^16.0.0", - "@rollup/plugin-terser": "^0.4.4", - "chai": "^5.1.2", - "dotenv": "^16.4.7", - "eslint": "^9.17.0", - "globals": "^15.14.0", - "mocha": "^11.0.1", - "prettier": "3.4.2", - "rollup": "^4.29.1" + "@arethetypeswrong/cli": "^0.18.2", + "@eslint/js": "^10.0.1", + "@rollup/plugin-commonjs": "^29.0.3", + "@rollup/plugin-node-resolve": "^16.0.3", + "@rollup/plugin-terser": "^1.0.0", + "@rollup/plugin-typescript": "^12.3.0", + "@fleetbase/sdk": "1.2.13", + "@stryker-mutator/core": "10.0.0", + "@stryker-mutator/vitest-runner": "10.0.0", + "@vitest/coverage-v8": "^4.0.0", + "eslint": "^10.0.0", + "globals": "^17.0.0", + "next": "16.3.3", + "prettier": "^3.9.0", + "publint": "^0.3.15", + "react": "19.2.8", + "react-dom": "19.2.8", + "rollup": "^4.63.0", + "tslib": "^2.8.1", + "typescript": "^5.9.0", + "typescript-eslint": "^8.68.0", + "vite": "8.2.2", + "vitest": "^4.0.0", + "webpack": "5.110.2", + "webpack-cli": "7.2.3" + }, + "pnpm": { + "overrides": { + "@babel/runtime": "7.28.4", + "axios": "1.20.0", + "follow-redirects": "1.16.0", + "form-data": "4.0.6", + "qs": "6.16.0" + } } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 557b71e..c622f7c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,719 +4,870 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +overrides: + '@babel/runtime': 7.28.4 + axios: 1.20.0 + follow-redirects: 1.16.0 + form-data: 4.0.6 + qs: 6.16.0 + importers: .: dependencies: - '@fleetbase/sdk': - specifier: ^1.2.13 - version: 1.2.13 countries-list: - specifier: ^3.1.1 - version: 3.1.1 + specifier: ^3.4.1 + version: 3.4.1 date-fns: - specifier: ^4.1.0 - version: 4.1.0 + specifier: ^4.4.0 + version: 4.4.0 devDependencies: - '@babel/core': - specifier: ^7.26.0 - version: 7.26.0 - '@babel/node': - specifier: ^7.26.0 - version: 7.26.0(@babel/core@7.26.0) - '@babel/plugin-proposal-decorators': - specifier: ^7.25.9 - version: 7.25.9(@babel/core@7.26.0) - '@babel/preset-env': - specifier: ^7.26.0 - version: 7.26.0(@babel/core@7.26.0) - '@babel/register': - specifier: ^7.25.9 - version: 7.25.9(@babel/core@7.26.0) + '@arethetypeswrong/cli': + specifier: ^0.18.2 + version: 0.18.5 '@eslint/js': - specifier: ^9.17.0 - version: 9.17.0 - '@rollup/plugin-babel': - specifier: ^6.0.4 - version: 6.0.4(@babel/core@7.26.0)(rollup@4.29.1) + specifier: ^10.0.1 + version: 10.0.1(eslint@10.9.1) + '@fleetbase/sdk': + specifier: 1.2.13 + version: 1.2.13 '@rollup/plugin-commonjs': - specifier: ^28.0.2 - version: 28.0.2(rollup@4.29.1) - '@rollup/plugin-eslint': - specifier: ^9.0.5 - version: 9.0.5(rollup@4.29.1) + specifier: ^29.0.3 + version: 29.0.3(rollup@4.63.1) '@rollup/plugin-node-resolve': - specifier: ^16.0.0 - version: 16.0.0(rollup@4.29.1) + specifier: ^16.0.3 + version: 16.0.3(rollup@4.63.1) '@rollup/plugin-terser': - specifier: ^0.4.4 - version: 0.4.4(rollup@4.29.1) - chai: - specifier: ^5.1.2 - version: 5.1.2 - dotenv: - specifier: ^16.4.7 - version: 16.4.7 + specifier: ^1.0.0 + version: 1.0.0(rollup@4.63.1) + '@rollup/plugin-typescript': + specifier: ^12.3.0 + version: 12.3.0(rollup@4.63.1)(tslib@2.8.1)(typescript@5.9.3) + '@stryker-mutator/core': + specifier: 10.0.0 + version: 10.0.0 + '@stryker-mutator/vitest-runner': + specifier: 10.0.0 + version: 10.0.0(@stryker-mutator/core@10.0.0)(vitest@4.1.11) + '@vitest/coverage-v8': + specifier: ^4.0.0 + version: 4.1.11(vitest@4.1.11) eslint: - specifier: ^9.17.0 - version: 9.17.0 + specifier: ^10.0.0 + version: 10.9.1 globals: - specifier: ^15.14.0 - version: 15.14.0 - mocha: - specifier: ^11.0.1 - version: 11.0.1 + specifier: ^17.0.0 + version: 17.11.0 + next: + specifier: 16.3.3 + version: 16.3.3(@babel/core@8.0.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) prettier: - specifier: 3.4.2 - version: 3.4.2 + specifier: ^3.9.0 + version: 3.9.6 + publint: + specifier: ^0.3.15 + version: 0.3.24 + react: + specifier: 19.2.8 + version: 19.2.8 + react-dom: + specifier: 19.2.8 + version: 19.2.8(react@19.2.8) rollup: - specifier: ^4.29.1 - version: 4.29.1 + specifier: ^4.63.0 + version: 4.63.1 + tslib: + specifier: ^2.8.1 + version: 2.8.1 + typescript: + specifier: ^5.9.0 + version: 5.9.3 + typescript-eslint: + specifier: ^8.68.0 + version: 8.68.0(eslint@10.9.1)(typescript@5.9.3) + vite: + specifier: 8.2.2 + version: 8.2.2(terser@5.51.2)(yaml@2.9.0) + vitest: + specifier: ^4.0.0 + version: 4.1.11(@vitest/coverage-v8@4.1.11)(vite@8.2.2(terser@5.51.2)(yaml@2.9.0)) + webpack: + specifier: 5.110.2 + version: 5.110.2(webpack-cli@7.2.3) + webpack-cli: + specifier: 7.2.3 + version: 7.2.3(js-yaml@4.3.2)(json5@2.2.3)(webpack@5.110.2) packages: - '@ampproject/remapping@2.3.0': - resolution: { integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== } - engines: { node: '>=6.0.0' } + '@andrewbranch/untar.js@1.0.4': + resolution: { integrity: sha512-pVXSwPsLuw8IGLo2Di0EaOfsk+ntVvpkk942J/sHYIkwvtKUakEcPh7HBgZ6tuimgzKSEHgCvO4XgQ05DEbwDw== } - '@babel/code-frame@7.26.2': - resolution: { integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ== } - engines: { node: '>=6.9.0' } + '@arethetypeswrong/cli@0.18.5': + resolution: { integrity: sha512-gM+8vRsQOD/Uc7EnBedUhkG5OCsDWE4uoak5QvomGpMpaky0Eh41p04nIMgrWb8EOmqZUJGc6zz9hsP6E56R7g== } + engines: { node: '>=20' } + hasBin: true - '@babel/compat-data@7.26.3': - resolution: { integrity: sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g== } - engines: { node: '>=6.9.0' } + '@arethetypeswrong/core@0.18.5': + resolution: { integrity: sha512-9ytjzGwxjm9Uz7I9avfbt5vlQt6uk9uRRESzJjqrznl6WKvI6dwYTo+vJ3U02Wrq/mR3iql/PzhvHhKdJIAjDQ== } + engines: { node: '>=20' } - '@babel/core@7.26.0': - resolution: { integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg== } - engines: { node: '>=6.9.0' } + '@babel/code-frame@8.0.0': + resolution: { integrity: sha512-dYYg153EyN2Ekbqw2zAsbd6/JR+9N2SEoC7YV2GyyqMM7x9bLDTjBD6XBhSMLH0wtIVyJj03jWNriQhaN+eoCw== } + engines: { node: ^22.18.0 || >=24.11.0 } - '@babel/generator@7.26.3': - resolution: { integrity: sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ== } - engines: { node: '>=6.9.0' } + '@babel/compat-data@8.0.0': + resolution: { integrity: sha512-DOjnob/cXOUgDOozCDeq/aK2p5y8dUIVdf6tNhEV1HQRd6I8aQ4f4fbtHRVEvb6lP3BGomrKHiS8ICAASSVQSw== } + engines: { node: ^22.18.0 || >=24.11.0 } - '@babel/helper-annotate-as-pure@7.25.9': - resolution: { integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g== } - engines: { node: '>=6.9.0' } + '@babel/core@8.0.1': + resolution: { integrity: sha512-5FgxM4dLQpMJHSiVATk8foW263dVHQHBVpXYiimNECVWG01f4nFyEbQixeT6Mwvg7TayREJ2gpKl3o2RoMdnqw== } + engines: { node: ^22.18.0 || >=24.11.0 } - '@babel/helper-compilation-targets@7.25.9': - resolution: { integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ== } - engines: { node: '>=6.9.0' } + '@babel/generator@8.0.0': + resolution: { integrity: sha512-NT9NrVwJsbSV6Y2FSstWa71EETOnzrjkL5/wX3D2mYHtKM+qvqB1DvR4D0Setb/gDBsHzRICifwEWMO8CnTF6g== } + engines: { node: ^22.18.0 || >=24.11.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-annotate-as-pure@8.0.0': + resolution: { integrity: sha512-NSpMkMsvvZqzThJ0p1B02cbtA2ObEyfBvq950bmNkyxsxvcxwhvvCB036rKhlEnuBBo30bOrk13u3FzlKSoRrw== } + engines: { node: ^22.18.0 || >=24.11.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-compilation-targets@8.0.0': + resolution: { integrity: sha512-JwculLABZvyPvyLBpwU/E/IbH2uM3mnxNtIJpxnIfb24y1PrdVxK5Dqjle4DpgqpGRnwgC7G8IkzPdSXZrO1Ew== } + engines: { node: ^22.18.0 || >=24.11.0 } - '@babel/helper-define-polyfill-provider@0.6.3': - resolution: { integrity: sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg== } + '@babel/helper-create-class-features-plugin@8.0.1': + resolution: { integrity: sha512-++t3ZktzlLmASAxIlxeXQK9Z2YwUafYGYcvGBFevqOqt16HozVHStUoQvWD09fzAZOb/uJGpUTBuGK41AJAuOA== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + '@babel/core': ^8.0.0 - '@babel/helper-member-expression-to-functions@7.25.9': - resolution: { integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ== } - engines: { node: '>=6.9.0' } + '@babel/helper-globals@8.0.0': + resolution: { integrity: sha512-lLozHOM6sWWlxNo8CYqHy4MBZeTvHXNgVPBfPOGsjPKUzHC2Az9QwB6gxdQmpwHl6GlQtbGgS+lj5887guDiLw== } + engines: { node: ^22.18.0 || >=24.11.0 } - '@babel/helper-module-imports@7.25.9': - resolution: { integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw== } - engines: { node: '>=6.9.0' } + '@babel/helper-member-expression-to-functions@8.0.0': + resolution: { integrity: sha512-xkXrMbtk87Gk7+oKBVmBc6EORg/Qwx++AHESldmHkpvG8wgccdhJJFwrzqlF382Fk8wfXhJHWE/g/43QvEGNPQ== } + engines: { node: ^22.18.0 || >=24.11.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-imports@8.0.0': + resolution: { integrity: sha512-NZ7mSS93o4ndX4KrbD7W8Sf3QT8Qe24PrnFyUcuOPDzK6faqDFKjY9RG7he7+I7FdiQ4llpnosFqzrXa+Vy3Ew== } + engines: { node: ^22.18.0 || >=24.11.0 } - '@babel/helper-optimise-call-expression@7.25.9': - resolution: { integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ== } - engines: { node: '>=6.9.0' } + '@babel/helper-module-transforms@8.0.1': + resolution: { integrity: sha512-UgAhl1kqiW5ciE0yCXqqvnb4H2n3IELJ7lIIQRezwDPilPEZX5i+Rvbja9MFTkwUn2biEiSMeV31aUzR4Lwakw== } + engines: { node: ^22.18.0 || >=24.11.0 } + peerDependencies: + '@babel/core': ^8.0.0 - '@babel/helper-plugin-utils@7.25.9': - resolution: { integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw== } - engines: { node: '>=6.9.0' } + '@babel/helper-optimise-call-expression@8.0.0': + resolution: { integrity: sha512-3W6satvtPuCUkUx63S2jMoW9EQNYkADgs1HTfufmL7gCmAulHMKupA/12WNz4A0GMMFn/YnWWwqOT9IZrJHQjg== } + engines: { node: ^22.18.0 || >=24.11.0 } - '@babel/helper-remap-async-to-generator@7.25.9': - resolution: { integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw== } - engines: { node: '>=6.9.0' } + '@babel/helper-plugin-utils@8.0.1': + resolution: { integrity: sha512-3PKFgjTyPlhFhorfP+SjKQxLViIL++zWjFOO4hGriYU+Bsm983DxEM1JmDRJVWXV0O9npu+xXRqz7Pbd3mh70g== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0 + '@babel/core': ^8.0.0 - '@babel/helper-replace-supers@7.25.9': - resolution: { integrity: sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ== } - engines: { node: '>=6.9.0' } + '@babel/helper-replace-supers@8.0.1': + resolution: { integrity: sha512-B1SZADIcy3tmH8CmWvj4SHi/oAPom4UL3uknTc2QRNsPVLFk/sPnZvQL/8kj7Y5omvjMqie0vklvs6XM4OLW5Q== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0 + '@babel/core': ^8.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@8.0.0': + resolution: { integrity: sha512-xmCA9kP3IhySsqhzwIdWGlDN/1A4cCKNBO/uwZx/3YzmDoMePwno2Q5/Bq0q+tYaKbeF940YiKV/kaW8Mzvpjw== } + engines: { node: ^22.18.0 || >=24.11.0 } - '@babel/helper-string-parser@7.25.9': - resolution: { integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA== } + '@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-string-parser@8.0.0': + resolution: { integrity: sha512-6mJgmFFFIIO82vvoLt9XtRC7/TkzXfts1t/SpRX4IHSzMgqoPYCWesVu1udUPUWioAE/2fcG6WuI8zrkE1gwrg== } + engines: { node: ^22.18.0 || >=24.11.0 } - '@babel/helper-validator-option@7.25.9': - resolution: { integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw== } + '@babel/helper-validator-identifier@7.29.7': + resolution: { integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg== } 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-validator-identifier@8.0.4': + resolution: { integrity: sha512-4wFaiLd0bVo4cIoTXI3zKI038NIWE/cr3jvBjejOVYVxV/m8Ltav1USiGzG1fmS5J2RhgEOgXNNK46cRPnRsrg== } + engines: { node: ^22.18.0 || >=24.11.0 } - '@babel/helpers@7.26.0': - resolution: { integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw== } - engines: { node: '>=6.9.0' } + '@babel/helper-validator-option@8.0.0': + resolution: { integrity: sha512-U4Dybxh4WESWHt5XhBeExi4DrY0/DNK1aHpQbsrQXCUbFHuMweT0TpLEWKvaraV2Y6fS+ZXunsZ8zIuZIgvF2Q== } + engines: { node: ^22.18.0 || >=24.11.0 } - '@babel/node@7.26.0': - resolution: { integrity: sha512-5ASMjh42hbnqyCOK68Q5chh1jKAqn91IswFTN+niwt4FLABhEWCT1tEuuo6mlNQ4WG/oFQLvJ71PaHAKtWtJyA== } - engines: { node: '>=6.9.0' } - hasBin: true - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/helpers@8.0.0': + resolution: { integrity: sha512-wfbi91pM3py96oIiJEz7qIpyXDytgr9zQC1HEWwlGNVRAEmItuU/0a41ZUKu1sJGyhhOIpc4t5vk4PYzt8wpsg== } + engines: { node: ^22.18.0 || >=24.11.0 } - '@babel/parser@7.26.3': - resolution: { integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA== } + '@babel/parser@7.29.8': + resolution: { integrity: sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA== } 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== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/parser@8.0.4': + resolution: { integrity: sha512-srpptsAkEbbNIC/q8nT7o+m6CQe8CJUTV/t7MYc9NnWlgYVtHOb7JH6SorxMhN0kuRJjVqXbKClG6xSbPtzz+g== } + engines: { node: ^22.18.0 || >=24.11.0 } + hasBin: true - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9': - resolution: { integrity: sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw== } - engines: { node: '>=6.9.0' } + '@babel/plugin-proposal-decorators@8.0.2': + resolution: { integrity: sha512-+C6O6KKXU7BBq1GNaIkFJxrALUVGRcr+WeWm4OcuRl3h+l/CmNfcTLMrT2Lm3uvGBimBH/8pEBRrXJFLoO67Gg== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0 + '@babel/core': ^8.0.0 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9': - resolution: { integrity: sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug== } - engines: { node: '>=6.9.0' } + '@babel/plugin-syntax-decorators@8.0.1': + resolution: { integrity: sha512-NI+0S/6MvR6GlcQFwjDZ+WIc2qvG6TXN534lYs9llNldwW4b7Dh6KTtk030FA0xWdYGs4t1lWo+OEWN8wGB+Nw== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0 + '@babel/core': ^8.0.0 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9': - resolution: { integrity: sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g== } - engines: { node: '>=6.9.0' } + '@babel/plugin-syntax-jsx@8.0.1': + resolution: { integrity: sha512-n0jtCOxEovhU7METqSQjcZO9pX53nu9uNIjMS+hEt+Nt9jA7oOZoBIgbCxhhASmF6T6rPDGge5UAvh6Z4eFz/g== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.13.0 + '@babel/core': ^8.0.0 - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9': - resolution: { integrity: sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg== } - engines: { node: '>=6.9.0' } + '@babel/plugin-syntax-typescript@8.0.3': + resolution: { integrity: sha512-jmTPwps7oSQSZaV1SxkQ3C12UWyufGysGc5OzDpZzvPAIX4mO7dJT3hoqkWVrSImvkcMiknir1iLN1SNV/CZzg== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0 + '@babel/core': ^8.0.0 - '@babel/plugin-proposal-decorators@7.25.9': - resolution: { integrity: sha512-smkNLL/O1ezy9Nhy4CNosc4Va+1wo5w4gzSZeLe6y6dM4mmHfYOCPolXQPHQxonZCF+ZyebxN9vqOolkYrSn5g== } - engines: { node: '>=6.9.0' } + '@babel/plugin-transform-destructuring@8.0.1': + resolution: { integrity: sha512-RtR8uLDl0QcCmqMNIkM8gmDeYZ3rS0ZH+sa+I6sfc09yFoqfp9AEPgBstq9KyfVb0lFCVSRFfJXCI70FIl5ccw== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^8.0.0 - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': - resolution: { integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== } - engines: { node: '>=6.9.0' } + '@babel/plugin-transform-explicit-resource-management@8.0.1': + resolution: { integrity: sha512-VzDIYwBlLCpV6mJfloRdJm8HmYnMqs7O+bGha8yfg2kP7jAdxeCw6yZBVBeaKKQUThtSU52iy+3lB7DhYsbOBA== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^8.0.0 - '@babel/plugin-syntax-decorators@7.25.9': - resolution: { integrity: sha512-ryzI0McXUPJnRCvMo4lumIKZUzhYUO/ScI+Mz4YVaTLt04DHNSjEUjKVvbzQjZFLuod/cYEc07mJWhzl6v4DPg== } - engines: { node: '>=6.9.0' } + '@babel/plugin-transform-modules-commonjs@8.0.1': + resolution: { integrity: sha512-PMuzulWrrzFNmY3lXSk/tV9NRb7y0eZZLJY4UEo2TKszroxvUZHAPPi+T9FDyrQhod+TQA+t+8/QYaaMpiEuhA== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^8.0.0 - '@babel/plugin-syntax-import-assertions@7.26.0': - resolution: { integrity: sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg== } - engines: { node: '>=6.9.0' } + '@babel/plugin-transform-react-display-name@8.0.1': + resolution: { integrity: sha512-soLishXlkyu6jcICPyO3HEP7A3GCzKEnn7XfvYrImuWEOwFAz93qShmWSYPf5ww0ZkO4By0zsN2bVIDF54fSdA== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^8.0.0 - '@babel/plugin-syntax-import-attributes@7.26.0': - resolution: { integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A== } - engines: { node: '>=6.9.0' } + '@babel/plugin-transform-react-jsx-development@8.0.1': + resolution: { integrity: sha512-Hb+HUZpV9KFHjm+F+P3aLDMi8QXU9l3ROCQv20z18Me2sGyW5nNNR5YTevNlgHvCpFek3BnAwhDGq/BRndXViw== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^8.0.0 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6': - resolution: { integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== } - engines: { node: '>=6.9.0' } + '@babel/plugin-transform-react-jsx@8.0.1': + resolution: { integrity: sha512-NgkoF7Uq+30TmOPDdNUimT0Nta02uVjqJRFNlVWKrbOCu/CkzfHa4aMnIs0lMpkMmZmWA1e42Va+F04i/pY1zw== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0 + '@babel/core': ^8.0.0 - '@babel/plugin-transform-arrow-functions@7.25.9': - resolution: { integrity: sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg== } - engines: { node: '>=6.9.0' } + '@babel/plugin-transform-react-pure-annotations@8.0.1': + resolution: { integrity: sha512-7/8UwU8hoPBurXa9tUiTTC8aACTRy5tCqLUtqikHp2eGiWoEB57AduOdbQ71OOMTEvawKrGhv3WfzkDpI+/oSg== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^8.0.0 - '@babel/plugin-transform-async-generator-functions@7.25.9': - resolution: { integrity: sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw== } - engines: { node: '>=6.9.0' } + '@babel/plugin-transform-typescript@8.0.1': + resolution: { integrity: sha512-0Svqp3413Eg0GElldykF/T7SNsxQO5YVGD70fZyAdZTnX8WRgcopmbiU7GTa5xY5ZnJcEpNbfns8/GjX+/1yeA== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^8.0.0 - '@babel/plugin-transform-async-to-generator@7.25.9': - resolution: { integrity: sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ== } - engines: { node: '>=6.9.0' } + '@babel/preset-react@8.0.1': + resolution: { integrity: sha512-jrFuPp/pTddFZbtmWhdLNAYc6UMcpboeUPnw0BBrm4nOmcAko/1TRcFi1PzWCeOFRU+VaSiKmat87W1HvR7mIg== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^8.0.0 - '@babel/plugin-transform-block-scoped-functions@7.25.9': - resolution: { integrity: sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA== } - engines: { node: '>=6.9.0' } + '@babel/preset-typescript@8.0.1': + resolution: { integrity: sha512-qrPhQIN1NLrPmzgazF9XKQqXrOcp/WJly+K+6ReFonn24FZqRJO7clxOJo6Ni75L+2vAqI3cHVU2OJLBxoPp5A== } + engines: { node: ^22.18.0 || >=24.11.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^8.0.0 - '@babel/plugin-transform-block-scoping@7.25.9': - resolution: { integrity: sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg== } + '@babel/runtime@7.28.4': + resolution: { integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ== } engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-properties@7.25.9': - resolution: { integrity: sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/template@8.0.0': + resolution: { integrity: sha512-eAD0QW/AlbamBbw0FeGiwasbCVPq5ncW0HNVyLP3B9czqLyh4gvw+5JTSNt6le9+ziAU7mqDZsKTHf3jTb4chQ== } + engines: { node: ^22.18.0 || >=24.11.0 } - '@babel/plugin-transform-class-static-block@7.26.0': - resolution: { integrity: sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.12.0 + '@babel/traverse@8.0.4': + resolution: { integrity: sha512-bZnmqzGG8UZneG1lLxBoWIH0G6Gr1D846Yu4/3XnY6FhCndMR49u26nTY08u/dAxWmLWF9vGQOuC+84FfIUoeg== } + engines: { node: ^22.18.0 || >=24.11.0 } - '@babel/plugin-transform-classes@7.25.9': - resolution: { integrity: sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg== } + '@babel/types@7.29.8': + resolution: { integrity: sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg== } 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/types@8.0.4': + resolution: { integrity: sha512-eY+Yn3dCqTGmyiq2QRU66lA5FL8lqqqvecHt0fF3uHONIa7ToYsaCiWV8lOKqAs0Rb2SjixiKFROngnulPtt2g== } + engines: { node: ^22.18.0 || >=24.11.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 + '@bcoe/v8-coverage@1.0.2': + resolution: { integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA== } + engines: { node: '>=18' } - '@babel/plugin-transform-dotall-regex@7.25.9': - resolution: { integrity: sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@braidai/lang@1.1.2': + resolution: { integrity: sha512-qBcknbBufNHlui137Hft8xauQMTZDKdophmLFv05r2eNmdIv/MlPuP4TdUknHG68UdWLgVZwgxVe735HzJNIwA== } - '@babel/plugin-transform-duplicate-keys@7.25.9': - resolution: { integrity: sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@colors/colors@1.5.0': + resolution: { integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== } + engines: { node: '>=0.1.90' } - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9': - resolution: { integrity: sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0 + '@discoveryjs/json-ext@1.1.0': + resolution: { integrity: sha512-Xc3VhU02wqZ1HvHRJUwL09HkZSTvidqY5Ya0NXBSYOxAp+Ln9dcJr9fySI+CkONzP3PekQo9WdzCv0PGER/mOA== } + engines: { node: '>=14.17.0' } - '@babel/plugin-transform-dynamic-import@7.25.9': - resolution: { integrity: sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emnapi/runtime@1.11.3': + resolution: { integrity: sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA== } - '@babel/plugin-transform-exponentiation-operator@7.26.3': - resolution: { integrity: sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ== } - engines: { node: '>=6.9.0' } + '@eslint-community/eslint-utils@4.10.1': + resolution: { integrity: sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } peerDependencies: - '@babel/core': ^7.0.0-0 + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@babel/plugin-transform-export-namespace-from@7.25.9': - resolution: { integrity: sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@eslint-community/regexpp@4.12.2': + resolution: { integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew== } + engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 } - '@babel/plugin-transform-for-of@7.25.9': - resolution: { integrity: sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@eslint/config-array@0.23.5': + resolution: { integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA== } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } - '@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 + '@eslint/config-helpers@0.7.0': + resolution: { integrity: sha512-DObd/KKUsU+FaFv4PLxSRenpXfQWmPXXP3pPZ6/K1PCrMu2vQpMDMuQe/BqYeoLcz8ro0bVDF1RxOJgfVEdhUw== } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } - '@babel/plugin-transform-json-strings@7.25.9': - resolution: { integrity: sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@eslint/core@1.2.1': + resolution: { integrity: sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ== } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } - '@babel/plugin-transform-literals@7.25.9': - resolution: { integrity: sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ== } - engines: { node: '>=6.9.0' } + '@eslint/js@10.0.1': + resolution: { integrity: sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA== } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } peerDependencies: - '@babel/core': ^7.0.0-0 + eslint: ^10.0.0 + peerDependenciesMeta: + eslint: + optional: true - '@babel/plugin-transform-logical-assignment-operators@7.25.9': - resolution: { integrity: sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@eslint/object-schema@3.0.5': + resolution: { integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw== } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } - '@babel/plugin-transform-member-expression-literals@7.25.9': - resolution: { integrity: sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@eslint/plugin-kit@0.7.2': + resolution: { integrity: sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A== } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } - '@babel/plugin-transform-modules-amd@7.25.9': - resolution: { integrity: sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@fleetbase/sdk@1.2.13': + resolution: { integrity: sha512-PeOKCBMp5FEQsf+ms9NlXAAZsRI7MJikBDfN3s6iLcy85RsqIJTQH+uam1Fldj6SuUvOPhdcRkkdoDvgt4ZMPQ== } - '@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 + '@humanfs/core@0.19.1': + resolution: { integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA== } + engines: { node: '>=18.18.0' } - '@babel/plugin-transform-modules-systemjs@7.25.9': - resolution: { integrity: sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@humanfs/node@0.16.6': + resolution: { integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw== } + engines: { node: '>=18.18.0' } - '@babel/plugin-transform-modules-umd@7.25.9': - resolution: { integrity: sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@humanwhocodes/module-importer@1.0.1': + resolution: { integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== } + engines: { node: '>=12.22' } - '@babel/plugin-transform-named-capturing-groups-regex@7.25.9': - resolution: { integrity: sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0 + '@humanwhocodes/retry@0.3.1': + resolution: { integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA== } + engines: { node: '>=18.18' } - '@babel/plugin-transform-new-target@7.25.9': - resolution: { integrity: sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@humanwhocodes/retry@0.4.3': + resolution: { integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ== } + engines: { node: '>=18.18' } - '@babel/plugin-transform-nullish-coalescing-operator@7.25.9': - resolution: { integrity: sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@img/colour@1.1.0': + resolution: { integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ== } + engines: { node: '>=18' } - '@babel/plugin-transform-numeric-separator@7.25.9': - resolution: { integrity: sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@img/sharp-darwin-arm64@0.35.4': + resolution: { integrity: sha512-Uhfl4V4lhP2nbUVF9+hyH1+luj86f1gUFeo8ALYxFoULoU+G87D43BfeMP8XHsk9boxAnCY/bf2EHwhA7MuGsA== } + engines: { node: '>=20.9.0' } + cpu: [arm64] + os: [darwin] - '@babel/plugin-transform-object-rest-spread@7.25.9': - resolution: { integrity: sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@img/sharp-darwin-x64@0.35.4': + resolution: { integrity: sha512-hWniXY3bG5qKpkKrAwPe4y+VTPmf086YQAnkxWh7uA1YrlRouWGa0M0Mxj3ZjnXFkv7/TD1bTy9lGUK26vRvWw== } + engines: { node: '>=20.9.0' } + cpu: [x64] + os: [darwin] - '@babel/plugin-transform-object-super@7.25.9': - resolution: { integrity: sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@img/sharp-freebsd-wasm32@0.35.4': + resolution: { integrity: sha512-lIsKw/BU+kjB4eZjxrYrZmwOJYi3Ajrv66iAlBmUPyKc3HpnloevB1g3wxGD9P/5BbQ1brBGl65VRRrCvQDEqA== } + engines: { node: '>=20.9.0' } + os: [freebsd] - '@babel/plugin-transform-optional-catch-binding@7.25.9': - resolution: { integrity: sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@img/sharp-libvips-darwin-arm64@1.3.3': + resolution: { integrity: sha512-suTBPTDGrI9WodccaDdwZItTSaBYASlBk1NSfElSHrUfzu3szG6lvIF58+WiFvnfzuK8ZBFS5zE00PxqxnRiPg== } + cpu: [arm64] + os: [darwin] - '@babel/plugin-transform-optional-chaining@7.25.9': - resolution: { integrity: sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@img/sharp-libvips-darwin-x64@1.3.3': + resolution: { integrity: sha512-FVJZ5mITMobmXIz/hPDTw0EintTW5H3WfrxwLqEqjiIihlu+hVRyGrFQ60xl0Lxn7Bt3zdpevPaQi0HEzqz9fw== } + cpu: [x64] + os: [darwin] - '@babel/plugin-transform-parameters@7.25.9': - resolution: { integrity: sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@img/sharp-libvips-linux-arm64@1.3.3': + resolution: { integrity: sha512-0DaL0A6Xu6sQSQFwe4iVCrKWU2cCTItnRsYsCdxAMm9NF6twAA9BKnoqy4hqz4+azQ0JHuA26qiUKsf1XJ/v5A== } + cpu: [arm64] + os: [linux] - '@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 + '@img/sharp-libvips-linux-arm@1.3.3': + resolution: { integrity: sha512-3rbU4vqXXc3hY/OiXdl52xZvT0F1yEngWfvqudtPJg/KkyiaQw2DRsFrNzpmLvfavbwOq3qXn36GP8obHRULQA== } + cpu: [arm] + os: [linux] - '@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 + '@img/sharp-libvips-linux-ppc64@1.3.3': + resolution: { integrity: sha512-cdn1OvUBwsXhbC0zSzJnNzf5MZ/mTrobawDvNXBTxe8VtqKAm0sRuEY2Evzovb/w9JMk4TvRxqt1mekSuJz64w== } + cpu: [ppc64] + os: [linux] - '@babel/plugin-transform-property-literals@7.25.9': - resolution: { integrity: sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@img/sharp-libvips-linux-riscv64@1.3.3': + resolution: { integrity: sha512-HjPVx7yKz+0lqdhDlTw1tt90wamBoxhiXpvl1XZpJLiHH4RCJ5yDTqH+VlYPv2fwFs89JFw4c1IexYOcQUi4IQ== } + cpu: [riscv64] + os: [linux] - '@babel/plugin-transform-regenerator@7.25.9': - resolution: { integrity: sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@img/sharp-libvips-linux-s390x@1.3.3': + resolution: { integrity: sha512-neWLh+3yCNThxnfy3c4BbVBeGgt9aftno+XbT56iK28RgeDs3UOFWviLWlUu0bArYVYJaFDK+RRohbicUNCm8Q== } + cpu: [s390x] + os: [linux] - '@babel/plugin-transform-regexp-modifiers@7.26.0': - resolution: { integrity: sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw== } - engines: { node: '>=6.9.0' } + '@img/sharp-libvips-linux-x64@1.3.3': + resolution: { integrity: sha512-4vKmvAst9nrowcqquKFAyZJUDolUaIp8uRiN0mWFguJ1IplC9/pitXtlnnlU4aa/eJw3J7i67V+pwUL+wZGdsA== } + cpu: [x64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-arm64@1.3.3': + resolution: { integrity: sha512-Y9kQaLMuNoB0bPYOOdcZMaseNrFpPodIWWMrx+CZyydf2xn68j9WYc6sWWRrDwNkzCQjKYfc68L7jKjGlHMibw== } + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-x64@1.3.3': + resolution: { integrity: sha512-fj8Mv0HHfD1Rr+4I68+3agJynxDWtBFgicTbSOb9Bke6pIwzGcJ+RX/yHjmiEGFMCavY/dxvem7MyNaJF+wDiw== } + cpu: [x64] + os: [linux] + + '@img/sharp-linux-arm64@0.35.4': + resolution: { integrity: sha512-De4jpEnAU8Hd5oT0j1G3uL4ZvTuipVMn7YC6vPaJhy6/7EwEae0SVAoBrUMYQbkLGDm85taVWwuPc1a44LTzCQ== } + engines: { node: '>=20.9.0' } + cpu: [arm64] + os: [linux] + + '@img/sharp-linux-arm@0.35.4': + resolution: { integrity: sha512-7OAS8gI0EReKGVN2HssHlM6umJgxF5VI3xN0p9FA91p/YO+ou5hiNghLdZ5BEHztwaaK5+bLKRf8x/o2L2nk9A== } + engines: { node: '>=20.9.0' } + cpu: [arm] + os: [linux] + + '@img/sharp-linux-ppc64@0.35.4': + resolution: { integrity: sha512-2oYZJeIl4kCcMGk4ouZVjnkCtFrpQFlNEtJ6GbxzhHQchwH0NH/qEb9ykmOl29dqwMq+JhFdZn+1ak2FKhI9fQ== } + engines: { node: '>=20.9.0' } + cpu: [ppc64] + os: [linux] + + '@img/sharp-linux-riscv64@0.35.4': + resolution: { integrity: sha512-cPbNChoRURAWdebDIHSenxRpgEdy7JkPydSnUxRm9VvKD7m0/xVaR/8Fzlu81pk5nHEvHH87UZUA7cTtwnbJSA== } + engines: { node: '>=20.9.0' } + cpu: [riscv64] + os: [linux] + + '@img/sharp-linux-s390x@0.35.4': + resolution: { integrity: sha512-RY0JFY8Fd6RonCBtHz+DvadaPkXDSI1AUn6yWL9TipqkZ1vY8w8evqdgyDFnkm4/K1ve1TvZiaePP5oSd4+WVQ== } + engines: { node: '>=20.9.0' } + cpu: [s390x] + os: [linux] + + '@img/sharp-linux-x64@0.35.4': + resolution: { integrity: sha512-9qvvEAuk8k89TfWUoX2htWjbAMX8p+NxCppjpcg5k6xMsjhBQPTsoIh36h9Qde4WRuGpJeYnOjdosDn/cnv+OA== } + engines: { node: '>=20.9.0' } + cpu: [x64] + os: [linux] + + '@img/sharp-linuxmusl-arm64@0.35.4': + resolution: { integrity: sha512-KB5jxpfWQTr0nc3xdHtWChdbifHrBGsd2SM62Eyxrl8afikm+f5qGBU75SJIZBT/S1MC8XyacdlXBMSWq6OURA== } + engines: { node: '>=20.9.0' } + cpu: [arm64] + os: [linux] + + '@img/sharp-linuxmusl-x64@0.35.4': + resolution: { integrity: sha512-f+eZJZIQNEEd26RPSW+76chwOf1XtA2Y/O+5ocVyLliHkeih3e+jhLVBdNTd2rS3IbNXK8+ug93Vf5ZXtF5Lxg== } + engines: { node: '>=20.9.0' } + cpu: [x64] + os: [linux] + + '@img/sharp-wasm32@0.35.4': + resolution: { integrity: sha512-zQnl4Kwp7Q6NHsENtU2T/00Zi+w3AQNwz3+UaTyVBy2FpXrzXzGjndpK61onhZjRtRpQXxCTeqw19bVyXOh7jA== } + engines: { node: '>=20.9.0' } + + '@img/sharp-webcontainers-wasm32@0.35.4': + resolution: { integrity: sha512-ESfNkywmCfPNyaZjxooddJQiQ+l/nTpGEOGthxiLnIHXC/CmcBixnfwUleX9mCz9ovrUUvKMap/pm8RYbzfwaA== } + engines: { node: '>=20.9.0' } + cpu: [wasm32] + + '@img/sharp-win32-arm64@0.35.4': + resolution: { integrity: sha512-iNdlBX9gLVvqe2I3uIJSIKTq6wckP/DYxZtcqxm09x5Gi24DnFBmPAWZmr60ZyYMG0xlzo6goG3670ar+RXvRw== } + engines: { node: '>=20.9.0' } + cpu: [arm64] + os: [win32] + + '@img/sharp-win32-ia32@0.35.4': + resolution: { integrity: sha512-kqRsbaa5CS6KHlpxnN7WhE6vAAugXyZButpRdvDWetlv6Qv4N9WTcrWzF7tXfB9T7MsoadqdI8hmwLq6UlLvtw== } + engines: { node: ^20.9.0 } + cpu: [ia32] + os: [win32] + + '@img/sharp-win32-x64@0.35.4': + resolution: { integrity: sha512-XtmnYhBcrORsJ4XJngyzr/EWP0hRZLAZRFaApdKuviyqF78+ylxh2y06ZmtULAMOnObJ3ucpN0AcwSWnMowTRg== } + engines: { node: '>=20.9.0' } + cpu: [x64] + os: [win32] + + '@inquirer/ansi@2.0.7': + resolution: { integrity: sha512-3eTuUO1vH2cZm2ZKHeQxnOqlTi9EfZDGgIe3BL3I4u+rJHocr9Fz86M4fjYABPvFnQG/gGK551HqDiIcETwU6Q== } + engines: { node: '>=23.5.0 || ^22.13.0 || ^20.17.0' } + + '@inquirer/checkbox@5.2.3': + resolution: { integrity: sha512-XEYX2WA8SBkLPczL6/yXPHLPCvDoptmh9v56Cy05BSV1Smk1vWy19bTC4qJBuIffw7+6l4CcaYYzGqG60RfW1g== } + engines: { node: '>=23.5.0 || ^22.13.0 || ^20.17.0' } peerDependencies: - '@babel/core': ^7.0.0 + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@babel/plugin-transform-reserved-words@7.25.9': - resolution: { integrity: sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg== } - engines: { node: '>=6.9.0' } + '@inquirer/confirm@6.3.0': + resolution: { integrity: sha512-pZHXJImFtERmSNMBHcjwuz8Ck5vEFEYNUZnwbb8aJpjHv/TwGuFErNxF2Hp8+V+pNJs2EYPMlyWscvFEqO9jOQ== } + engines: { node: '>=23.5.0 || ^22.13.0 || ^20.17.0' } peerDependencies: - '@babel/core': ^7.0.0-0 + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@babel/plugin-transform-shorthand-properties@7.25.9': - resolution: { integrity: sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng== } - engines: { node: '>=6.9.0' } + '@inquirer/core@12.0.1': + resolution: { integrity: sha512-JMD5Jy/ScL5TZE18m83Nw25HjqGFLoWXwnEkW7IdwwAhZpB9Bus55/WU7zn3UqR1MOCjjTQOIYpiD4vjWA3LPw== } + engines: { node: '>=23.5.0 || ^22.13.0 || ^20.17.0' } peerDependencies: - '@babel/core': ^7.0.0-0 + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@babel/plugin-transform-spread@7.25.9': - resolution: { integrity: sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A== } - engines: { node: '>=6.9.0' } + '@inquirer/editor@5.3.1': + resolution: { integrity: sha512-y43COoyVUjPWIobn2Qep/uI1drPS78aaZZZ9kVi94Tyu/GuW2N8d8Q4rifJXGAXCEAXCPTTMjD8gC1HyvM5ukA== } + engines: { node: '>=23.5.0 || ^22.13.0 || ^20.17.0' } peerDependencies: - '@babel/core': ^7.0.0-0 + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@babel/plugin-transform-sticky-regex@7.25.9': - resolution: { integrity: sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA== } - engines: { node: '>=6.9.0' } + '@inquirer/expand@5.1.3': + resolution: { integrity: sha512-3NQJiXNJ/aj9wiAsr7pECdp5Qe9J0X9YUJCKsaFXS+ddOxfL6J4AIl3w3T4Gq3kK0WsQY5GMoDokK5X94m6lHw== } + engines: { node: '>=23.5.0 || ^22.13.0 || ^20.17.0' } peerDependencies: - '@babel/core': ^7.0.0-0 + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@babel/plugin-transform-template-literals@7.25.9': - resolution: { integrity: sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw== } - engines: { node: '>=6.9.0' } + '@inquirer/external-editor@3.0.4': + resolution: { integrity: sha512-tZbbaK2ovq6vlrRBNQvjrypmrED/p5x2ncIHQ79cD55tei3dD96v5glMMA+6tiq7K104i/25DVYKWVPJuV6ptA== } + engines: { node: '>=23.5.0 || ^22.13.0 || ^20.17.0' } peerDependencies: - '@babel/core': ^7.0.0-0 + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@babel/plugin-transform-typeof-symbol@7.25.9': - resolution: { integrity: sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA== } - engines: { node: '>=6.9.0' } + '@inquirer/figures@2.0.8': + resolution: { integrity: sha512-tApbon79GM9ry56ja/Ud3SY2CL4TQsao9fIwDQbgTeNY55025GdMzQ2+UdegV/lx51VNGUB59M0v0nMpybYY4Q== } + engines: { node: '>=23.5.0 || ^22.13.0 || ^20.17.0' } + + '@inquirer/input@5.1.4': + resolution: { integrity: sha512-3xQkQrOvgOzpSN2ciTVdRDlg1FWMCA8l+0KfB6SNlILoTCGzJTzO/gc0Rwjcb3usuGyKdaGtI6OiyMdeMeLWkg== } + engines: { node: '>=23.5.0 || ^22.13.0 || ^20.17.0' } peerDependencies: - '@babel/core': ^7.0.0-0 + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@babel/plugin-transform-unicode-escapes@7.25.9': - resolution: { integrity: sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q== } - engines: { node: '>=6.9.0' } + '@inquirer/number@4.2.1': + resolution: { integrity: sha512-5KaqwZNLRpUuWcoCrYghPP9TMaXL5v2Sk4xqePM7RCVegcJStoXdWibio60YIC1bec+z1fCyb67N6XPJIkZtGA== } + engines: { node: '>=23.5.0 || ^22.13.0 || ^20.17.0' } peerDependencies: - '@babel/core': ^7.0.0-0 + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@babel/plugin-transform-unicode-property-regex@7.25.9': - resolution: { integrity: sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg== } - engines: { node: '>=6.9.0' } + '@inquirer/password@5.2.0': + resolution: { integrity: sha512-CvVcW09emkBESEOW+4R8CjLNkP3fB3XrjeL8CDvfpjgrJN+V9oerXmJAXXM3l+4xqYPD5Yaujzy/Ph0PLOdDuA== } + engines: { node: '>=23.5.0 || ^22.13.0 || ^20.17.0' } peerDependencies: - '@babel/core': ^7.0.0-0 + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@babel/plugin-transform-unicode-regex@7.25.9': - resolution: { integrity: sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA== } - engines: { node: '>=6.9.0' } + '@inquirer/prompts@8.7.0': + resolution: { integrity: sha512-yQwBMYvpJ6jqrXtKiOwRD5XezjJoyt3VQvIyjsr5Arqb519nfIohOQymWVJ8/vEgg8xtZerrCsqlSaqt/LPC9A== } + engines: { node: '>=23.5.0 || ^22.13.0 || ^20.17.0' } peerDependencies: - '@babel/core': ^7.0.0-0 + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@babel/plugin-transform-unicode-sets-regex@7.25.9': - resolution: { integrity: sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ== } - engines: { node: '>=6.9.0' } + '@inquirer/rawlist@5.3.3': + resolution: { integrity: sha512-Mu7WrtmDLaXBDEyrRLS70SZgX9ZSm4Up1w0ZxiH8C1OOp9oaVCn2k8q3QGgmlnhsKYUhuaU3zFWhAP6wxkVIMA== } + engines: { node: '>=23.5.0 || ^22.13.0 || ^20.17.0' } peerDependencies: - '@babel/core': ^7.0.0 + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@babel/preset-env@7.26.0': - resolution: { integrity: sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw== } - engines: { node: '>=6.9.0' } + '@inquirer/search@4.3.1': + resolution: { integrity: sha512-0VWOvsHWI0rPj6CG70MoP4oXNCB6adcyN8bVFZXnh11eLDdPIK2f2XCmva78acPPDfJisfab7qNakwBh7hdBXw== } + engines: { node: '>=23.5.0 || ^22.13.0 || ^20.17.0' } peerDependencies: - '@babel/core': ^7.0.0-0 + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@babel/preset-modules@0.1.6-no-external-plugins': - resolution: { integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== } + '@inquirer/select@5.2.3': + resolution: { integrity: sha512-KuRTodDa6xBXX2noIpjuitpX/QT7Sfav7dIZ/OfUY54Hxg95nrGoshSzxx6Ey7qqLbImKdiGkSDt7KjPXjQgmA== } + engines: { node: '>=23.5.0 || ^22.13.0 || ^20.17.0' } peerDependencies: - '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@babel/register@7.25.9': - resolution: { integrity: sha512-8D43jXtGsYmEeDvm4MWHYUpWf8iiXgWYx3fW7E7Wb7Oe6FWqJPl5K6TuFW0dOwNZzEE5rjlaSJYH9JjrUKJszA== } - engines: { node: '>=6.9.0' } + '@inquirer/type@4.1.0': + resolution: { integrity: sha512-FMiJpuHUG3Dk0ex+UIXkre7i+i4OcwHWk9YdcVtZHFwb/r2rnrU2ipTCNAB7A+QOP0ryzIcqOfy76fRyyvOEAw== } + engines: { node: '>=23.5.0 || ^22.13.0 || ^20.17.0' } peerDependencies: - '@babel/core': ^7.0.0-0 + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@babel/runtime@7.26.0': - resolution: { integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw== } - engines: { node: '>=6.9.0' } + '@jridgewell/gen-mapping@0.3.13': + resolution: { integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== } - '@babel/template@7.25.9': - resolution: { integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg== } - engines: { node: '>=6.9.0' } + '@jridgewell/gen-mapping@0.3.8': + resolution: { integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA== } + engines: { node: '>=6.0.0' } - '@babel/traverse@7.26.4': - resolution: { integrity: sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w== } - engines: { node: '>=6.9.0' } + '@jridgewell/resolve-uri@3.1.2': + resolution: { integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== } + engines: { node: '>=6.0.0' } - '@babel/types@7.26.3': - resolution: { integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA== } - engines: { node: '>=6.9.0' } + '@jridgewell/set-array@1.2.1': + resolution: { integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== } + engines: { node: '>=6.0.0' } - '@eslint-community/eslint-utils@4.4.1': - resolution: { integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@jridgewell/source-map@0.3.6': + resolution: { integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== } - '@eslint-community/regexpp@4.12.1': - resolution: { integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== } - engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 } + '@jridgewell/sourcemap-codec@1.5.0': + resolution: { integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== } - '@eslint/config-array@0.19.1': - resolution: { integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA== } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + '@jridgewell/sourcemap-codec@1.6.0': + resolution: { integrity: sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw== } - '@eslint/core@0.9.1': - resolution: { integrity: sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q== } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + '@jridgewell/trace-mapping@0.3.25': + resolution: { integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== } - '@eslint/eslintrc@2.1.4': - resolution: { integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + '@jridgewell/trace-mapping@0.3.31': + resolution: { integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== } - '@eslint/eslintrc@3.2.0': - resolution: { integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w== } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + '@loaderkit/resolve@1.0.6': + resolution: { integrity: sha512-G8FdIoF5CypfwmD9rl8BXod5HDn8JqB0CCNBXDTaRZ+yRYhARrrSToX1zg1zy9jX3zLqigsELwhT4gNtkdQAUg== } - '@eslint/js@8.57.1': - resolution: { integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + '@napi-rs/lzma-linux-x64-gnu@1.5.1': + resolution: { integrity: sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ== } + engines: { node: ^22.20 || ^24.12 || >=25 } + cpu: [x64] + os: [linux] - '@eslint/js@9.17.0': - resolution: { integrity: sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w== } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + '@next/env@16.3.3': + resolution: { integrity: sha512-U2eYQRwXj+dsqxV79zFqExDdatnNY/ZWc2nsJU1p/OgT7fd3dXwlF6OjYaFQCfMoeTA19PWq+wVmYgimVA+V+g== } - '@eslint/object-schema@2.1.5': - resolution: { integrity: sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ== } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + '@next/swc-darwin-arm64@16.3.3': + resolution: { integrity: sha512-8Hiv32QJPwdV6KYJ8meR9SBA061tQqnIKTJDocvOXlEQqib0xMFpzArosuffFUUc0sslbh7QQ8a3Yey1QV8EIw== } + engines: { node: '>= 10' } + cpu: [arm64] + os: [darwin] - '@eslint/plugin-kit@0.2.4': - resolution: { integrity: sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg== } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + '@next/swc-darwin-x64@16.3.3': + resolution: { integrity: sha512-A1lgKgwVchRYmSe467zdwhxT9040dd8lH+o65sL5Jet8fjB4kegw/rDyPIpYVRb6jAqwXFOJpjIXJLxQKLiE3A== } + engines: { node: '>= 10' } + cpu: [x64] + os: [darwin] - '@fleetbase/sdk@1.2.13': - resolution: { integrity: sha512-PeOKCBMp5FEQsf+ms9NlXAAZsRI7MJikBDfN3s6iLcy85RsqIJTQH+uam1Fldj6SuUvOPhdcRkkdoDvgt4ZMPQ== } + '@next/swc-linux-arm64-gnu@16.3.3': + resolution: { integrity: sha512-bf0FIssMFueU2dm7vQEWWxk0c8UjKTdW0yzuh0sQsD8pf1+KCLDdaqhYZNMYGmXwEOiHAUzgBKudovIlcvvBjg== } + engines: { node: '>= 10' } + cpu: [arm64] + os: [linux] - '@humanfs/core@0.19.1': - resolution: { integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA== } - engines: { node: '>=18.18.0' } + '@next/swc-linux-arm64-musl@16.3.3': + resolution: { integrity: sha512-W7viwCk9JY/cAkdz/A273rd5bb3RgT/IHwR7Upv90tunjBWNtAAhGhoecHh+teRNRSinuAFmE+l7fwZ4YKkrXg== } + engines: { node: '>= 10' } + cpu: [arm64] + os: [linux] - '@humanfs/node@0.16.6': - resolution: { integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw== } - engines: { node: '>=18.18.0' } + '@next/swc-linux-x64-gnu@16.3.3': + resolution: { integrity: sha512-0W46zw1N3ODpI6n0GeivHvvob1pooozgZVqy65k0mh4/7vr+FbY9+WpHzNVXjHipJf/A3FDheBG19H1s5A25rA== } + engines: { node: '>= 10' } + cpu: [x64] + os: [linux] - '@humanwhocodes/config-array@0.13.0': - resolution: { integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw== } - engines: { node: '>=10.10.0' } - deprecated: Use @eslint/config-array instead + '@next/swc-linux-x64-musl@16.3.3': + resolution: { integrity: sha512-H4mBso8ZTMBPtdT0PN0pBx2ayTvQuTuvS6qT13d77yVFJXAPCxkyIhLTmdMaGTJs0krQYI/qpzdHijCeihXhbg== } + engines: { node: '>= 10' } + cpu: [x64] + os: [linux] - '@humanwhocodes/module-importer@1.0.1': - resolution: { integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== } - engines: { node: '>=12.22' } + '@next/swc-win32-arm64-msvc@16.3.3': + resolution: { integrity: sha512-cTMUJpcEGmeywofCUfhR+rSsoE33+rVPnPEYNTNdLNlsOeEg/vktOsKUSTb28vUGqD2jkm4Zaskcwn7OCI6FQg== } + engines: { node: '>= 10' } + cpu: [arm64] + os: [win32] - '@humanwhocodes/object-schema@2.0.3': - resolution: { integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== } - deprecated: Use @eslint/object-schema instead + '@next/swc-win32-x64-msvc@16.3.3': + resolution: { integrity: sha512-2VR4cTBzHXaBjnGsuH6GyJjENzQOmHeAh11uY1iUhjm3j5dEUrVJuUj+VL78jaGi/Dik8xS76zEj18BsFhlVZQ== } + engines: { node: '>= 10' } + cpu: [x64] + os: [win32] - '@humanwhocodes/retry@0.3.1': - resolution: { integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA== } - engines: { node: '>=18.18' } + '@oxc-project/types@0.147.0': + resolution: { integrity: sha512-IJ3s6ltHLp45S0bh7phkX+gJO7A1Wuz2EaqpAhb8WjqDwbzMiWKHhyyT42tskaWjEYXtHtVCPpnBJVT9+dcRLg== } - '@humanwhocodes/retry@0.4.1': - resolution: { integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA== } - engines: { node: '>=18.18' } + '@publint/pack@0.1.7': + resolution: { integrity: sha512-4EDEmvxWtgsCnnVeBvtFIFZtUhPPt1+bA9JrSwU4Sa//6oKtzCSlGGXYJr44OD9aGISymbieJ4mCKHUygUDU+g== } + engines: { node: '>=18' } - '@isaacs/cliui@8.0.2': - resolution: { integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== } - engines: { node: '>=12' } + '@rolldown/binding-android-arm-eabi@1.2.6': + resolution: { integrity: sha512-b+jTcARdTiFLI6jB4a5XjTm0RWd6KcRfQj/I2356fxUZemiho9zQLxo0RtCuMDAyKcLo6cEltkgbQp6d1+sjjQ== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm] + os: [android] - '@jridgewell/gen-mapping@0.3.8': - resolution: { integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA== } - engines: { node: '>=6.0.0' } + '@rolldown/binding-android-arm64@1.2.6': + resolution: { integrity: sha512-lkWU8ZJaRk9q3CIEY1Tc7vIFALp3Xw5NfGJo2hQg5oIqNgxWi1zI+IiDEK3r70BF5Dzol1tcXsnzsRc8NLhG+Q== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [android] - '@jridgewell/resolve-uri@3.1.2': - resolution: { integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== } - engines: { node: '>=6.0.0' } + '@rolldown/binding-darwin-arm64@1.2.6': + resolution: { integrity: sha512-dgR56NYnvAszm7Ob1B2/Vn0e8bUQYZH2UjVaMMtMVOCKFSfjhfLmuA/9+O+F+ajUdG6B/bSssrKW6JJYASa8jA== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [darwin] - '@jridgewell/set-array@1.2.1': - resolution: { integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== } - engines: { node: '>=6.0.0' } + '@rolldown/binding-darwin-x64@1.2.6': + resolution: { integrity: sha512-vpVxFvUCFioJqug7OTvqptkc4yb8UX0AwfDmJpaR/0sWz+BUmqSVAf7c8JkUgnN8YLspb4a/N6NhTyMAmdyQ7Q== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [x64] + os: [darwin] - '@jridgewell/source-map@0.3.6': - resolution: { integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== } + '@rolldown/binding-freebsd-x64@1.2.6': + resolution: { integrity: sha512-h1wG6Y6K3JlRswxsI64qQJqBAy4vrLuHgRbc8CZMGSWTOFRY6ghMApM1NKzB2I0n5xV1fjkE18SuVl2QpLeNpA== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [x64] + os: [freebsd] - '@jridgewell/sourcemap-codec@1.5.0': - resolution: { integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== } + '@rolldown/binding-linux-arm-gnueabihf@1.2.6': + resolution: { integrity: sha512-tbCiqub0q2MVWJKgF5PoAlNWCtQydiOYSLIkd8sByqK/6MMYLJRcSXSYodqYtd0O+Fw7QaVmKKlS4oL94YRZ0w== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm] + os: [linux] - '@jridgewell/trace-mapping@0.3.25': - resolution: { integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== } + '@rolldown/binding-linux-arm64-gnu@1.2.6': + resolution: { integrity: sha512-oxK9+baEBPhZG5HB4URY+uU04zJWeZlH6Tb9rB5DK4DF9XR1uXNLXt5Q5ZsugTKayNCNLhkcwz/ye74hRI98dg== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [linux] - '@nodelib/fs.scandir@2.1.5': - resolution: { integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== } - engines: { node: '>= 8' } + '@rolldown/binding-linux-arm64-musl@1.2.6': + resolution: { integrity: sha512-muWCk27FVBEZtv0MsK8gnfSmgczA8KQ0uRVJbTABKhkRfQc38aUrcb7fhi3BNiyseFmgcRsoMfQsSNJ+DbZdSw== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [linux] - '@nodelib/fs.stat@2.0.5': - resolution: { integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== } - engines: { node: '>= 8' } + '@rolldown/binding-linux-ppc64-gnu@1.2.6': + resolution: { integrity: sha512-eWDoSfU7Co2qj3vgB3Dt4lj1mG6CoWbcJQkRMP3XJplyCMtuaq3LHvPFjS9QIPvMGWVadJC04Xiy0IdcVPtnwQ== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [ppc64] + os: [linux] - '@nodelib/fs.walk@1.2.8': - resolution: { integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== } - engines: { node: '>= 8' } + '@rolldown/binding-linux-s390x-gnu@1.2.6': + resolution: { integrity: sha512-2bWNjRSIayvupRKxXUY2tWG9fYdoUlTqWywHRvE8Eq3GvuQ+f2HeIkve697fIt+IQs/PV8yFsdWuhp1aJ1PdnA== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [s390x] + os: [linux] - '@pkgjs/parseargs@0.11.0': - resolution: { integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== } - engines: { node: '>=14' } + '@rolldown/binding-linux-x64-gnu@1.2.6': + resolution: { integrity: sha512-KekI0gS0wLxe1UBSQSjenBVwou/JkcQPDzBPICGZjxUv9k3RteHDPBQaiOicZUFKRIH2wKEimGwVpnJsbPzu7w== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [x64] + os: [linux] - '@rollup/plugin-babel@6.0.4': - resolution: { integrity: sha512-YF7Y52kFdFT/xVSuVdjkV5ZdX/3YtmX0QulG+x0taQOtJdHYzVU61aSSkAgVJ7NOv6qPkIYiJSgSWWN/DM5sGw== } - engines: { node: '>=14.0.0' } - peerDependencies: - '@babel/core': ^7.0.0 - '@types/babel__core': ^7.1.9 - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - '@types/babel__core': - optional: true - rollup: - optional: true + '@rolldown/binding-linux-x64-musl@1.2.6': + resolution: { integrity: sha512-TvtPnfVr+HtyGiDmPK4VWmlNm7QhNNAcK5Q9A7aOXsI8545yCyaoMaicXrFZ72JzeYjaUVk7yT243zT0jzjFKQ== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [x64] + os: [linux] + + '@rolldown/binding-openharmony-arm64@1.2.6': + resolution: { integrity: sha512-iOo0VEay2XFhaCcH0sps5XIimkSuOnNaZrf6+ZkoSOQBJPKNU48RkmJv0/lSpipexu5P+ouFgafe5IGr/DiQfg== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [openharmony] + + '@rolldown/binding-win32-arm64-msvc@1.2.6': + resolution: { integrity: sha512-y5NTmmasMS455JlOCO4ZM9krIchv3Mvm1crL1iUPGOPgEzSkves9n0SdC5Sjz6+qWDFhd8/JpfWMH8NSWNHe+A== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [arm64] + os: [win32] + + '@rolldown/binding-win32-x64-msvc@1.2.6': + resolution: { integrity: sha512-np8iZSLfXlAD4kWhiyq/u0Yt8oZDtRQ8lGhQaCXo2rl37KNjeU0GjJuwr4P3oeZ++ROfofsKNBqR5LTO8aXyWQ== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [x64] + os: [win32] - '@rollup/plugin-commonjs@28.0.2': - resolution: { integrity: sha512-BEFI2EDqzl+vA1rl97IDRZ61AIwGH093d9nz8+dThxJNH8oSoB7MjWvPCX3dkaK1/RCJ/1v/R1XB15FuSs0fQw== } + '@rolldown/pluginutils@1.0.1': + resolution: { integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw== } + + '@rollup/plugin-commonjs@29.0.3': + resolution: { integrity: sha512-ZaOxZceP7SOUW7Lqw5IRVweSQYWaeIPnXIGLiB690EBA3FGJTO40EEr2L5yZplJWsgTCogILRSpcAe7+U0Otdg== } engines: { node: '>=16.0.0 || 14 >= 14.17' } peerDependencies: rollup: ^2.68.0||^3.0.0||^4.0.0 @@ -724,32 +875,36 @@ packages: rollup: optional: true - '@rollup/plugin-eslint@9.0.5': - resolution: { integrity: sha512-C4nh0sSeJuxVW5u5tDX+dCMjKcNfHm4hS+zeUVh1si7gttnhgGbrmPkUxIX7iZgYABwdEh/ewyMbZB+WXjSJdA== } + '@rollup/plugin-node-resolve@16.0.3': + resolution: { integrity: sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg== } engines: { node: '>=14.0.0' } peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + rollup: ^2.78.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true - '@rollup/plugin-node-resolve@16.0.0': - resolution: { integrity: sha512-0FPvAeVUT/zdWoO0jnb/V5BlBsUSNfkIOtFHzMO4H9MOklrmQFY6FduVHKucNb/aTFxvnGhj4MNj/T1oNdDfNg== } - engines: { node: '>=14.0.0' } + '@rollup/plugin-terser@1.0.0': + resolution: { integrity: sha512-FnCxhTBx6bMOYQrar6C8h3scPt8/JwIzw3+AJ2K++6guogH5fYaIFia+zZuhqv0eo1RN7W1Pz630SyvLbDjhtQ== } + engines: { node: '>=20.0.0' } peerDependencies: - rollup: ^2.78.0||^3.0.0||^4.0.0 + rollup: ^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true - '@rollup/plugin-terser@0.4.4': - resolution: { integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A== } + '@rollup/plugin-typescript@12.3.0': + resolution: { integrity: sha512-7DP0/p7y3t67+NabT9f8oTBFE6gGkto4SA6Np2oudYmZE/m1dt8RB0SjL1msMxFpLo631qjRCcBlAbq1ml/Big== } engines: { node: '>=14.0.0' } peerDependencies: - rollup: ^2.0.0||^3.0.0||^4.0.0 + rollup: ^2.14.0||^3.0.0||^4.0.0 + tslib: '*' + typescript: '>=3.7.0' peerDependenciesMeta: rollup: optional: true + tslib: + optional: true '@rollup/pluginutils@5.1.4': resolution: { integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ== } @@ -760,322 +915,544 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.29.1': - resolution: { integrity: sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw== } + '@rollup/rollup-android-arm-eabi@4.63.1': + resolution: { integrity: sha512-UZ8sUxPTiHWYX9QNdJedb1kDZSpS1t/VPWBWGSgqHNi9w3Cu6IXvu2mzbhiTiPvtrqgTQJ+zqiAq2iPIPilpaQ== } cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.29.1': - resolution: { integrity: sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew== } + '@rollup/rollup-android-arm64@4.63.1': + resolution: { integrity: sha512-cQ4nFQABN5cDvDpbvJ7bMStCpnaVxynZrRMfUJYgxcIk9Sh54FIO1vtfkg0B69REjER77ioZ/ov+eAApx/KmLQ== } cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.29.1': - resolution: { integrity: sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw== } + '@rollup/rollup-darwin-arm64@4.63.1': + resolution: { integrity: sha512-FQNqd1lRy/0QhDk3xeRIkSBiCpXCiDnZO3YLVdcDKN1UBiKToNftCzcXYNLshmPDUMlu2TdeS8tGcsU6f3YF1Q== } cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.29.1': - resolution: { integrity: sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng== } + '@rollup/rollup-darwin-x64@4.63.1': + resolution: { integrity: sha512-pvD16V939D3CloK0+qikpGaxiPrDUXTe7Y5cWOMkMSy7m1cawa8EGy/kXYi/G/cKAC4HDAbSnzCIk1WmsoOKXg== } cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.29.1': - resolution: { integrity: sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw== } + '@rollup/rollup-freebsd-arm64@4.63.1': + resolution: { integrity: sha512-pcFGeL2345VwdTnJhA6zLbew+YgWB0qBG2+dMtXjCicf6+rm6kO6cOoh5VnTe0ZMrMRgRyuHmCJxZWrIdzYuOw== } cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.29.1': - resolution: { integrity: sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w== } + '@rollup/rollup-freebsd-x64@4.63.1': + resolution: { integrity: sha512-mRJlqSRulVzcKq/LKA6ICSIc3K/l4fzlVn/gePn2nXIHy8seRi5z/eeRE0d/XMBxcMldiXtQTSpRj0tkkC3g8Q== } cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.29.1': - resolution: { integrity: sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A== } + '@rollup/rollup-linux-arm-gnueabihf@4.63.1': + resolution: { integrity: sha512-YDUNvVM85TI3g/1OpnqKP1h4NeW/j64DfWMf+G3M809xNk1bJSnpFp4sh83NpmVE5DXnkh8ULor4LTVZKoYLHw== } cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.29.1': - resolution: { integrity: sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ== } + '@rollup/rollup-linux-arm-musleabihf@4.63.1': + resolution: { integrity: sha512-7Mcn71p9ZuQFAj+h+dhQXy/yeLePRS2yKRnmW1DijA9thKO5qap0GNOIQK4yQ6iP3SU0Mrb/yWo8h8vgRba8lw== } cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.29.1': - resolution: { integrity: sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA== } + '@rollup/rollup-linux-arm64-gnu@4.63.1': + resolution: { integrity: sha512-4YiLQTX6U4CSl0L9cluep9A9W6UmTfqBDc2/CH6wlu54pl4E7Jn3cOD8oxzvBDEGk/JMKgJ47C8g+radF7mwvg== } cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.29.1': - resolution: { integrity: sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA== } + '@rollup/rollup-linux-arm64-musl@4.63.1': + resolution: { integrity: sha512-2ra8F7w8OquwZN9z2/fKFnli69wa8PLwaVzRMIPGb13ByMJwC28Fbp8YcVGoUhlYMTt7j5j9bNgpysrN2UM+vw== } cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.29.1': - resolution: { integrity: sha512-5a7q3tnlbcg0OodyxcAdrrCxFi0DgXJSoOuidFUzHZ2GixZXQs6Tc3CHmlvqKAmOs5eRde+JJxeIf9DonkmYkw== } + '@rollup/rollup-linux-loong64-gnu@4.63.1': + resolution: { integrity: sha512-Sy20ncyhjmBP0Ml+UvQbimjlk6VFgjW5uNP+qqwHB00mTE8Bl2C1TuHTlRwK2YoXeZbee5lP2XevBWVkAQAtSQ== } + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-loong64-musl@4.63.1': + resolution: { integrity: sha512-noITLp8oNjYliPnGWmLyelIHwULGqbHloQHGw1rtxbWhTuWooRpnZarZQJ1y9EUC4szuCusCc+HEpUtxpIwYvA== } cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.29.1': - resolution: { integrity: sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w== } + '@rollup/rollup-linux-ppc64-gnu@4.63.1': + resolution: { integrity: sha512-hlxxXd+F1mWiAcaFR7Sv9ZQT6m6UfI8+Vy/kFJzztq2pDMU/0wZ9sish0iszNZvsQDo8Gc0i5yuFEOz5dDf6fA== } + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-ppc64-musl@4.63.1': + resolution: { integrity: sha512-EF7OpqQTQ/BvGqLzUi4rEHuagCV9MugAUXSHemwPW5vxZ75RR+jxO/2j95Ph2dalMpFHSVECjRoioHZgA9zOYA== } cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.29.1': - resolution: { integrity: sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ== } + '@rollup/rollup-linux-riscv64-gnu@4.63.1': + resolution: { integrity: sha512-wQO3JesW9PRkwlabQ27y7sPfVOOTLRG73I4F2UYHG5PXun3J9U3y+b7ezVKSYbsvSKGQ1k1cq8Qlun4C9kLt3w== } cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.29.1': - resolution: { integrity: sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g== } + '@rollup/rollup-linux-riscv64-musl@4.63.1': + resolution: { integrity: sha512-ouAGwhO6wHRXdnOVCOsB0tRFkA7nhNB2Nwax6oECXN0YiN8EYUTBAOudADOB1PI+yDL61TeNx/u7MVCzksNbkQ== } + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.63.1': + resolution: { integrity: sha512-q2R38Sn+1J8RxhfJ+T54wSWmyKXWec+9jgDfqO2AtArEqHO5R2aeayp5H5OYLr5UYDVGsVaZPEFUooMhYCdz5A== } cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.29.1': - resolution: { integrity: sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ== } + '@rollup/rollup-linux-x64-gnu@4.63.1': + resolution: { integrity: sha512-gfI5T24WLLuFfSKw7Go/zDXjAAV0fny0swTaDv+WjK7vqcw4cRhFfdsyKL1n+ukI+ooBxn3bVQnyrn06WpI50w== } cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.29.1': - resolution: { integrity: sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA== } + '@rollup/rollup-linux-x64-musl@4.63.1': + resolution: { integrity: sha512-4h6XqthmB4Hspji84wvgk+ElodTsGj+dbZqHJHHtKxj4mYq0ANSEEPX9ys3moJueqsRjwpaJYH7874Itwnj2ow== } cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.29.1': - resolution: { integrity: sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig== } + '@rollup/rollup-openbsd-x64@4.63.1': + resolution: { integrity: sha512-dlfCOa87o1VAYegLQ9EKilx2JCeRofiyPGhTCmqnuXZ6bMPiycO1rq1+sKoulAp7pGLIsTIw+1x5R+zgh5LhhA== } + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.63.1': + resolution: { integrity: sha512-cjkLbOlfcm3QGhMM1J5zaZjsw1GggbN6rw9UTSSRrPrR1KkcXnN7Uq9rPw34xImQ9VOY9GN+6u2Zj80B9ptkcw== } + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.63.1': + resolution: { integrity: sha512-Li1KdUnWGE4N3e1F/B4RTB1ms+nG4WBgjByO46pkeBVX/2UBsY53xf5vK9WygVmnH3RwncIST7lkSdLSY6P9lg== } cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.29.1': - resolution: { integrity: sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng== } + '@rollup/rollup-win32-ia32-msvc@4.63.1': + resolution: { integrity: sha512-t4ZYOSoLTgwhuFMrmTMLx/+i1DQVK7HYqMc6kY46EApwi8X0nIVphzdNoThU3xt6n+N5urG1/gxBdCaKDLavfg== } cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.29.1': - resolution: { integrity: sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg== } + '@rollup/rollup-win32-x64-gnu@4.63.1': + resolution: { integrity: sha512-RgroPfMmKlD1RzSDxvwgcPiy2HNQKoYV7OmwIXDsk73uKW5t6B/V8KIy27SMv/FNXFo/oSBtWc9J0X7t91ezZg== } cpu: [x64] os: [win32] - '@types/estree@1.0.6': - resolution: { integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== } + '@rollup/rollup-win32-x64-msvc@4.63.1': + resolution: { integrity: sha512-at8QVep6S3h5Y6gSbdGU06bRY5WJkf6WUduM9YtvYMbYhB1MOFfUgc6kehitQXzOtMSaT70q7f9ydPhpqu821w== } + cpu: [x64] + os: [win32] - '@types/json-schema@7.0.15': - resolution: { integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== } + '@sec-ant/readable-stream@0.4.1': + resolution: { integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg== } - '@types/resolve@1.20.2': - resolution: { integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== } + '@sindresorhus/is@4.6.0': + resolution: { integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== } + engines: { node: '>=10' } - '@ungap/structured-clone@1.2.1': - resolution: { integrity: sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA== } + '@sindresorhus/merge-streams@4.0.0': + resolution: { integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ== } + engines: { node: '>=18' } - acorn-jsx@5.3.2: - resolution: { integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== } - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + '@standard-schema/spec@1.1.0': + resolution: { integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w== } - acorn@8.14.0: - resolution: { integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== } - engines: { node: '>=0.4.0' } + '@stryker-mutator/api@10.0.0': + resolution: { integrity: sha512-ZtAJ0ZT3MVRCWJTBE2h90XB/6E+4lifHYtcTyNG6nU2nLekPgTo4gD5esjX6Okxo1b/JB4jJzyxYB54fwKAoJw== } + engines: { node: '>=22.0.0' } + + '@stryker-mutator/core@10.0.0': + resolution: { integrity: sha512-ZvMsRyaXQQ5e6Thcid9pkuODv6Fn9E3nrBQJUap+hcJuGJ4unm26afo3m6YKSjn8kinyxJ/3TXf0cTWRDaTxVw== } + engines: { node: '>=22.0.0' } hasBin: true - ajv@6.12.6: - resolution: { integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== } + '@stryker-mutator/instrumenter@10.0.0': + resolution: { integrity: sha512-B7Wmn1KlEWyFeOz6D6oGvQGRfi5Xw3VemG6dEKvFQp4qLvxD9Mf4kcZghfxffgnYwXd3bFgqXsJ+ZGlhdfIOrQ== } + engines: { node: '>=22.0.0' } - ansi-colors@4.1.3: - resolution: { integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== } - engines: { node: '>=6' } + '@stryker-mutator/util@10.0.0': + resolution: { integrity: sha512-LzOpHiJaCp2ABQgnPMlrQQcsK43bd5Vo/2FGL78aN62yDoeRQ+4j3tzeuXxK5OAHdC3fUz6TDoy4IsoAuLAd3w== } - ansi-regex@5.0.1: - resolution: { integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== } - engines: { node: '>=8' } + '@stryker-mutator/vitest-runner@10.0.0': + resolution: { integrity: sha512-SHK2/vfvRUpiz7jXPnQMBnr6zLdm69DK03Mo5mPhaZWcRSygrKUqYsPqWsXsK+5ySHzlMTfCyFK5NQ/X9sJFFw== } + engines: { node: '>=22.0.0' } + peerDependencies: + '@stryker-mutator/core': 10.0.0 + vitest: '>=2.0.0' - ansi-regex@6.1.0: - resolution: { integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== } - engines: { node: '>=12' } + '@swc/helpers@0.5.23': + resolution: { integrity: sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw== } - ansi-styles@4.3.0: - resolution: { integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== } - engines: { node: '>=8' } + '@types/chai@5.2.3': + resolution: { integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA== } - ansi-styles@6.2.1: - resolution: { integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== } - engines: { node: '>=12' } + '@types/deep-eql@4.0.2': + resolution: { integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw== } - anymatch@3.1.3: - resolution: { integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== } - engines: { node: '>= 8' } + '@types/esrecurse@4.3.1': + resolution: { integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw== } - argparse@2.0.1: - resolution: { integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== } + '@types/estree@1.0.6': + resolution: { integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== } - array-buffer-byte-length@1.0.2: - resolution: { integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw== } - engines: { node: '>= 0.4' } + '@types/estree@1.0.9': + resolution: { integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg== } - array.prototype.reduce@1.0.7: - resolution: { integrity: sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q== } - engines: { node: '>= 0.4' } + '@types/gensync@1.0.5': + resolution: { integrity: sha512-MbsRCT7mTikHwKZ0X+LVUTLRrZZRLipTuXEO9qOYO+zmjMVk81axyClMROf6uoPD9MRVu46bx8zoR0Ad9q3NAg== } - arraybuffer.prototype.slice@1.0.4: - resolution: { integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ== } - engines: { node: '>= 0.4' } + '@types/jsesc@2.5.1': + resolution: { integrity: sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw== } - assertion-error@2.0.1: - resolution: { integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== } - engines: { node: '>=12' } + '@types/json-schema@7.0.15': + resolution: { integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== } - asynckit@0.4.0: - resolution: { integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== } + '@types/node@12.20.55': + resolution: { integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== } - available-typed-arrays@1.0.7: - resolution: { integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== } - engines: { node: '>= 0.4' } + '@types/resolve@1.20.2': + resolution: { integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== } - axios@1.7.9: - resolution: { integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw== } + '@typescript-eslint/eslint-plugin@8.68.0': + resolution: { integrity: sha512-WASHDpCm6qO5jj9g1a+8NiW5+GCkAyLReR56/4VruYmNgfUmqpxOfZ2Yfb8xGfJPWv5Qi6LSD8sXdces3vbp/Q== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + '@typescript-eslint/parser': ^8.68.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' - babel-plugin-polyfill-corejs2@0.4.12: - resolution: { integrity: sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og== } + '@typescript-eslint/parser@8.68.0': + resolution: { integrity: sha512-fHq2VC1kpyYfvEcbiMjOpySY4WS7voEp89yAThrHRX5sm9j2lzYppCb2umFMEed4fWcyeLjHxrz0mpjNBaBxMQ== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' - babel-plugin-polyfill-corejs3@0.10.6: - resolution: { integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA== } + '@typescript-eslint/project-service@8.68.0': + resolution: { integrity: sha512-5GQtWZCXFcFYux955pvoS02WLc49pXNlvIxocKjS0clvwo3in1RdlzVKyiqQH9vE5AKWFLTaUgeQkOrTS+0Qxw== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/scope-manager@8.68.0': + resolution: { integrity: sha512-T5eXpcaJNg8bhjHJ8Rjp68Vq/QBteYtTKY8TZqVNPaUbuz0f6jI9t6aDkylwvalpAB9XTTFeFOjrjXAZ3YvmVA== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - babel-plugin-polyfill-regenerator@0.6.3: - resolution: { integrity: sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q== } + '@typescript-eslint/tsconfig-utils@8.68.0': + resolution: { integrity: sha512-F7zrGQfiJHojPwi8vhxZQC1tWtJzvL74cK/nqri2lk8YUXvYaYwl263xOJ69jDWPUk1hmcdoayFwk9lX09npVw== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + typescript: '>=4.8.4 <6.1.0' - balanced-match@1.0.2: - resolution: { integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== } + '@typescript-eslint/type-utils@8.68.0': + resolution: { integrity: sha512-X77zqoY1EjeWGs/0JNxeaMfp5C5lIz4Tw8y66F1Ne8Faq6g424sBNYM6xBAqElfGZPLpWS+CZAp0DXyKDzWiHg== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' - binary-extensions@2.3.0: - resolution: { integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== } - engines: { node: '>=8' } + '@typescript-eslint/types@8.68.0': + resolution: { integrity: sha512-9RnpsGJjrAllCMefGVVsImJM24YurhC0Q1h4UbvivtvOqXmR/vEJge2OoE++z9m6hyg8T1Q8t5SNT6tHSbrxcg== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - brace-expansion@1.1.11: - resolution: { integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== } + '@typescript-eslint/typescript-estree@8.68.0': + resolution: { integrity: sha512-OKKsD0tYmoNiU5PW2zehO1yO56jYOm1ShYlxon/Z0SJNidAkdVg86eg9ruRuoXf8xfnuWZGbwDsStkoXbZtIIA== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + typescript: '>=4.8.4 <6.1.0' - brace-expansion@2.0.1: - resolution: { integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== } + '@typescript-eslint/utils@8.68.0': + resolution: { integrity: sha512-PB5gJMMOg0Q5P1tsgWtEAqQacJXq0qEqRHDX/YJ4FaTMLfZPpHB3gjl2EJuiZyPABxmj4ZQYiY9m1bdAJ5y7tQ== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' - braces@3.0.3: - resolution: { integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== } - engines: { node: '>=8' } + '@typescript-eslint/visitor-keys@8.68.0': + resolution: { integrity: sha512-YR65gGdGvTUAWLldC3xLOvOzamdGzB4A5/N8rehEaHs3Zvoe39BhgY+u0SPch1OvrVTfLcc55wsSgK2NcnTS/A== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - browser-stdout@1.3.1: - resolution: { integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== } + '@vitest/coverage-v8@4.1.11': + resolution: { integrity: sha512-8MVGEFnJIcdGjcbfKmeq8z0pZHH0JlVtoVZH9Q/qwUp6wyFnEJUBMrw9DCaj+ra3vShGmhavjalMIhPNxZAUcw== } + peerDependencies: + '@vitest/browser': 4.1.11 + vitest: 4.1.11 + peerDependenciesMeta: + '@vitest/browser': + optional: true - browserslist@4.24.3: - resolution: { integrity: sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA== } - engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } - hasBin: true + '@vitest/expect@4.1.11': + resolution: { integrity: sha512-VX2x5vNJXET47KAFzwERI+KRMtTTCSWTfSMKsW7JsUsXV4psq++e3DvZpuTDOpHcxytiDs6p2nhVb2tVDiiUYw== } - buffer-from@1.1.2: - resolution: { integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== } + '@vitest/mocker@4.1.11': + resolution: { integrity: sha512-2XJVD55d1o5AZous5CCGKS74g/riOj9odEt2bQpCVZeblHyHdnMeFl4jl0XjU21stf4mbjUkew2eXQZt65g5CQ== } + peerDependencies: + msw: ^2.4.9 + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true - call-bind-apply-helpers@1.0.1: - resolution: { integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g== } - engines: { node: '>= 0.4' } + '@vitest/pretty-format@4.1.11': + resolution: { integrity: sha512-yiZzPbGTS9Sr/JpFl8zHrcIkAofNbFV6k21vIgQN/cY/oxZeXhJv5sc/MBJ5jFKWmWs+oJHw0UXLZjmf931+Vw== } - call-bind@1.0.8: - resolution: { integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== } - engines: { node: '>= 0.4' } + '@vitest/runner@4.1.11': + resolution: { integrity: sha512-LztvUgdwMNJMIkj3hQnnxiC2Xy1zNxq928W/xhjCLaNCzqTZOudjwbQf6v9IntZGPw132i2Lq2rgTRZHD3JHNw== } - call-bound@1.0.3: - resolution: { integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA== } - engines: { node: '>= 0.4' } + '@vitest/snapshot@4.1.11': + resolution: { integrity: sha512-pN7ikn1ON7h8ee4gIAp4AzyK+zBtJPzVbqOgu5LCEh4VaJVbPQcgYQYJIMGQPXVeJJq1fnfazis7a5pFNPahog== } - callsites@3.1.0: - resolution: { integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== } - engines: { node: '>=6' } + '@vitest/spy@4.1.11': + resolution: { integrity: sha512-apNa/prQy2qCeywhnixOHPRCgGNhvg7T4Dapfl1GahLp/R+uhBm5cPyFoNVyqsNd2h1nJxL6BqqdIjiABL60YA== } - camelcase@6.3.0: - resolution: { integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== } - engines: { node: '>=10' } + '@vitest/utils@4.1.11': + resolution: { integrity: sha512-zTCVGpyFsGWBhllOyKlTw/vnr6D9qxsfSDyfbyZmTyjHw5N/VuvzHpHoQjm2ZJzn4RJgx5w4r7V0er69CmLgPQ== } - caniuse-lite@1.0.30001690: - resolution: { integrity: sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w== } + '@webassemblyjs/ast@1.14.1': + resolution: { integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ== } - chai@5.1.2: - resolution: { integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw== } - engines: { node: '>=12' } + '@webassemblyjs/floating-point-hex-parser@1.13.2': + resolution: { integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA== } - chalk@4.1.2: - resolution: { integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== } - engines: { node: '>=10' } + '@webassemblyjs/helper-api-error@1.13.2': + resolution: { integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ== } - check-error@2.1.1: - resolution: { integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw== } - engines: { node: '>= 16' } + '@webassemblyjs/helper-buffer@1.14.1': + resolution: { integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA== } - chokidar@3.6.0: - resolution: { integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== } - engines: { node: '>= 8.10.0' } + '@webassemblyjs/helper-numbers@1.13.2': + resolution: { integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA== } - cliui@7.0.4: - resolution: { integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== } + '@webassemblyjs/helper-wasm-bytecode@1.13.2': + resolution: { integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA== } - clone-deep@4.0.1: - resolution: { integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== } - engines: { node: '>=6' } + '@webassemblyjs/helper-wasm-section@1.14.1': + resolution: { integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw== } - color-convert@2.0.1: - resolution: { integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== } - engines: { node: '>=7.0.0' } + '@webassemblyjs/ieee754@1.13.2': + resolution: { integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw== } - color-name@1.1.4: - resolution: { integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== } + '@webassemblyjs/leb128@1.13.2': + resolution: { integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw== } - combined-stream@1.0.8: - resolution: { integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== } - engines: { node: '>= 0.8' } + '@webassemblyjs/utf8@1.13.2': + resolution: { integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ== } - commander@2.20.3: - resolution: { integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== } + '@webassemblyjs/wasm-edit@1.14.1': + resolution: { integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ== } - commander@6.2.1: - resolution: { integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== } - engines: { node: '>= 6' } + '@webassemblyjs/wasm-gen@1.14.1': + resolution: { integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg== } - commondir@1.0.1: - resolution: { integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== } + '@webassemblyjs/wasm-opt@1.14.1': + resolution: { integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw== } - concat-map@0.0.1: - resolution: { integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== } + '@webassemblyjs/wasm-parser@1.14.1': + resolution: { integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ== } - convert-source-map@2.0.0: - resolution: { integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== } + '@webassemblyjs/wast-printer@1.14.1': + resolution: { integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw== } - core-js-compat@3.39.0: - resolution: { integrity: sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw== } + '@xtuc/ieee754@1.2.0': + resolution: { integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== } - core-js@3.39.0: - resolution: { integrity: sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g== } + '@xtuc/long@4.2.2': + resolution: { integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== } - countries-list@3.1.1: - resolution: { integrity: sha512-nPklKJ5qtmY5MdBKw1NiBAoyx5Sa7p2yPpljZyQ7gyCN1m+eMFs9I6CT37Mxt8zvR5L3VzD3DJBE4WQzX3WF4A== } + acorn-jsx@5.3.2: + resolution: { integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== } + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - cross-spawn@7.0.6: - resolution: { integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== } - engines: { node: '>= 8' } + acorn@8.14.0: + resolution: { integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== } + engines: { node: '>=0.4.0' } + hasBin: true - data-view-buffer@1.0.2: - resolution: { integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ== } - engines: { node: '>= 0.4' } + acorn@8.18.0: + resolution: { integrity: sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ== } + engines: { node: '>=0.4.0' } + hasBin: true - data-view-byte-length@1.0.2: - resolution: { integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ== } - engines: { node: '>= 0.4' } + agent-base@6.0.2: + resolution: { integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== } + engines: { node: '>= 6.0.0' } - data-view-byte-offset@1.0.1: - resolution: { integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ== } + ajv-formats@2.1.1: + resolution: { integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== } + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv-keywords@5.1.0: + resolution: { integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== } + peerDependencies: + ajv: ^8.8.2 + + ajv@6.15.0: + resolution: { integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw== } + + ajv@8.20.0: + resolution: { integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA== } + + angular-html-parser@10.11.0: + resolution: { integrity: sha512-3vERzJ65UFDr3C7uozLJwsNcQS3FS784dSh583oDgDTTZMgXe3/pdyXgKndxiP5R2lvYRfW6gSl145Hnyf2OFA== } + engines: { node: '>= 14' } + + ansi-escapes@7.3.0: + resolution: { integrity: sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg== } + engines: { node: '>=18' } + + ansi-regex@5.0.1: + resolution: { integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== } + engines: { node: '>=8' } + + ansi-regex@6.1.0: + resolution: { integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== } + engines: { node: '>=12' } + + ansi-styles@4.3.0: + resolution: { integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== } + engines: { node: '>=8' } + + any-promise@1.3.0: + resolution: { integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== } + + argparse@2.0.1: + resolution: { integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== } + + assertion-error@2.0.1: + resolution: { integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== } + engines: { node: '>=12' } + + ast-v8-to-istanbul@1.0.5: + resolution: { integrity: sha512-UPAgKJFSEGMWSDr3LX4tqnAb4f7KGT8O40Tyx8wbYmmZ/yn58lNCm8h3svs3eXgiGd5AXxz8NDOvXWvicq+rJA== } + + asynckit@0.4.0: + resolution: { integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== } + + axios@1.20.0: + resolution: { integrity: sha512-r8aOh8j9cGKpgQAqpzrUHnSIc6a59Y3Xf/cv8sy1DrHCkZHzQGEuoq1tARk6qSyDdtQGSDgpb9kFlruzPvrgwg== } + + balanced-match@4.0.4: + resolution: { integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA== } + engines: { node: 18 || 20 || >=22 } + + baseline-browser-mapping@2.11.20: + resolution: { integrity: sha512-H0ulySigv6icDJ1F7SjtdCD6PrhTpdYCmP0CactWy1+ekh0AFd0o1Wn5T8b+hnTmdBx19u9yhL6wvCylXMY7zw== } + engines: { node: '>=6.0.0' } + hasBin: true + + brace-expansion@5.0.9: + resolution: { integrity: sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg== } + engines: { node: 20 || >=22 } + + browserslist@4.28.8: + resolution: { integrity: sha512-V2NpofLblG64mfOtSgDhOJESZEGogzDMBv/q+W6oc4LXWP/q75eOXoOaaOu1EOadB9U4Bwx/e0yzbvwKH8zalA== } + engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } + hasBin: true + + buffer-from@1.1.2: + resolution: { integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== } + + call-bind-apply-helpers@1.0.2: + resolution: { integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== } + engines: { node: '>= 0.4' } + + call-bound@1.0.4: + resolution: { integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== } engines: { node: '>= 0.4' } - date-fns@4.1.0: - resolution: { integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg== } + caniuse-lite@1.0.30001810: + resolution: { integrity: sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg== } + + chai@6.2.2: + resolution: { integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg== } + engines: { node: '>=18' } + + chalk@4.1.2: + resolution: { integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== } + engines: { node: '>=10' } + + chalk@5.6.2: + resolution: { integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== } + engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } + + char-regex@1.0.2: + resolution: { integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== } + engines: { node: '>=10' } + + chardet@2.2.0: + resolution: { integrity: sha512-rddelWYNPRrXq6PtNEN2S3f6t9ILzvqaN5pVgi4kqt9jHQaXIial9PznB5iSPVlQSLNaaH22ItWz3EJtQ10+OA== } + + chrome-trace-event@1.0.4: + resolution: { integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== } + engines: { node: '>=6.0' } + + cjs-module-lexer@1.4.3: + resolution: { integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q== } + + cli-highlight@2.1.11: + resolution: { integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg== } + engines: { node: '>=8.0.0', npm: '>=5.0.0' } + hasBin: true + + cli-table3@0.6.5: + resolution: { integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ== } + engines: { node: 10.* || >= 12.* } + + cli-width@4.1.0: + resolution: { integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ== } + engines: { node: '>= 12' } + + client-only@0.0.1: + resolution: { integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== } + + cliui@7.0.4: + resolution: { integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== } + + clone-deep@4.0.1: + resolution: { integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== } + engines: { node: '>=6' } + + color-convert@2.0.1: + resolution: { integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== } + engines: { node: '>=7.0.0' } + + color-name@1.1.4: + resolution: { integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== } + + combined-stream@1.0.8: + resolution: { integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== } + engines: { node: '>= 0.8' } + + commander@10.0.1: + resolution: { integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== } + engines: { node: '>=14' } + + commander@14.0.3: + resolution: { integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw== } + engines: { node: '>=20' } + + commander@2.20.3: + resolution: { integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== } + + commondir@1.0.1: + resolution: { integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== } + + convert-source-map@2.0.0: + resolution: { integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== } + + countries-list@3.4.1: + resolution: { integrity: sha512-sKLGAZD5EAdzQwQ19vOp/9u33MTjmZ0CkdXPYtp/An6cyIlJ/E8TwGf2FcPe1AnzHO+h7nbTfoHyXIi58Hpa+Q== } + + cross-spawn@7.0.6: + resolution: { integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== } + engines: { node: '>= 8' } + + date-fns@4.4.0: + resolution: { integrity: sha512-+1UMbeh68lH1SegH83CGWwpb6OHHbpSgr3+s5Eww5M4CAgswBpoWS0AjTOfEJ33HiYKz1hdj/KTFprzXHmq/6w== } debug@4.4.0: resolution: { integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== } @@ -1086,13 +1463,14 @@ packages: supports-color: optional: true - decamelize@4.0.0: - resolution: { integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== } - engines: { node: '>=10' } - - deep-eql@5.0.2: - resolution: { integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q== } - engines: { node: '>=6' } + debug@4.4.3: + resolution: { integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== } + engines: { node: '>=6.0' } + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true deep-is@0.1.4: resolution: { integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== } @@ -1101,52 +1479,52 @@ packages: resolution: { integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== } engines: { node: '>=0.10.0' } - define-data-property@1.1.4: - resolution: { integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== } - engines: { node: '>= 0.4' } - - define-properties@1.2.1: - resolution: { integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== } - engines: { node: '>= 0.4' } - delayed-stream@1.0.0: resolution: { integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== } engines: { node: '>=0.4.0' } - diff@5.2.0: - resolution: { integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== } - engines: { node: '>=0.3.1' } + des.js@1.1.0: + resolution: { integrity: sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg== } - doctrine@3.0.0: - resolution: { integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== } - engines: { node: '>=6.0.0' } + detect-libc@2.1.2: + resolution: { integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ== } + engines: { node: '>=8' } - dotenv@16.4.7: - resolution: { integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ== } - engines: { node: '>=12' } + diff-match-patch@1.0.5: + resolution: { integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw== } dunder-proto@1.0.1: resolution: { integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== } engines: { node: '>= 0.4' } - eastasianwidth@0.2.0: - resolution: { integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== } + electron-to-chromium@1.5.417: + resolution: { integrity: sha512-4T+DTDWuMPM4aHlHwWdAVCVWwp7LDilnhzkj+c/Lbj91XSQrLuOmZSLtS9Q4iIqjlPUbPOnC624zDVVHCHaolQ== } - electron-to-chromium@1.5.76: - resolution: { integrity: sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ== } + emoji-regex@10.6.0: + resolution: { integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A== } emoji-regex@8.0.0: resolution: { integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== } - emoji-regex@9.2.2: - resolution: { integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== } + emojilib@2.4.0: + resolution: { integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw== } - es-abstract@1.23.7: - resolution: { integrity: sha512-OygGC8kIcDhXX+6yAZRGLqwi2CmEXCbLQixeGUgYeR+Qwlppqmo7DIDr8XibtEBZp+fJcoYpoatp5qwLMEdcqQ== } - engines: { node: '>= 0.4' } + empathic@2.0.1: + resolution: { integrity: sha512-YGRs8knHhKHVShLkFET/rWAU8kmHbOV5LwN938RHI0pljAJ1Gf6SzXsSmRaEzcXTtOOmVqJ5+WtQPL5uigY50Q== } + engines: { node: '>=14' } + + enhanced-resolve@5.24.5: + resolution: { integrity: sha512-L1l8TNvomm6UVW5B253AGxQagSQr+vGwhMlrrfRS2qmhx46AMpMVJKQYLvWYbysTMY8VoicOvzHzoHMbyzB+4A== } + engines: { node: '>=10.13.0' } + + envinfo@7.21.0: + resolution: { integrity: sha512-Lw7I8Zp5YKHFCXL7+Dz95g4CcbMEpgvqZNNq3AmlT5XAV6CgAAk6gyAMqn2zjw08K9BHfcNuKrMiCPLByGafow== } + engines: { node: '>=4' } + hasBin: true - es-array-method-boxes-properly@1.0.0: - resolution: { integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== } + environment@1.1.0: + resolution: { integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q== } + engines: { node: '>=18' } es-define-property@1.0.1: resolution: { integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== } @@ -1156,16 +1534,15 @@ packages: resolution: { integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== } engines: { node: '>= 0.4' } - es-object-atoms@1.0.0: - resolution: { integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== } - engines: { node: '>= 0.4' } + es-module-lexer@2.3.2: + resolution: { integrity: sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw== } - es-set-tostringtag@2.0.3: - resolution: { integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== } + es-object-atoms@1.1.2: + resolution: { integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw== } engines: { node: '>= 0.4' } - es-to-primitive@1.3.0: - resolution: { integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g== } + es-set-tostringtag@2.1.0: + resolution: { integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== } engines: { node: '>= 0.4' } escalade@3.2.0: @@ -1176,31 +1553,21 @@ packages: resolution: { integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== } engines: { node: '>=10' } - eslint-scope@7.2.2: - resolution: { integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } - - eslint-scope@8.2.0: - resolution: { integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A== } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + eslint-scope@9.1.2: + resolution: { integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ== } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } eslint-visitor-keys@3.4.3: resolution: { integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } - eslint-visitor-keys@4.2.0: - resolution: { integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw== } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - - eslint@8.57.1: - resolution: { integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } - deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. - hasBin: true + eslint-visitor-keys@5.0.1: + resolution: { integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA== } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } - eslint@9.17.0: - resolution: { integrity: sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA== } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + eslint@10.9.1: + resolution: { integrity: sha512-9VaAkDURekixUQJy0oJYl2DcN6oKMfxay7XzaGYAWQwsb6qfKf+x76R2k1L8kb1boc+FyCAaTA9GmiKaaiaF+A== } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } hasBin: true peerDependencies: jiti: '*' @@ -1208,16 +1575,12 @@ packages: jiti: optional: true - espree@10.3.0: - resolution: { integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg== } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - - espree@9.6.1: - resolution: { integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + espree@11.2.0: + resolution: { integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw== } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } - esquery@1.6.0: - resolution: { integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== } + esquery@1.7.0: + resolution: { integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g== } engines: { node: '>=0.10' } esrecurse@4.3.0: @@ -1231,10 +1594,25 @@ packages: estree-walker@2.0.2: resolution: { integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== } + estree-walker@3.0.3: + resolution: { integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== } + esutils@2.0.3: resolution: { integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== } engines: { node: '>=0.10.0' } + events@3.3.0: + resolution: { integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== } + engines: { node: '>=0.8.x' } + + execa@9.6.1: + resolution: { integrity: sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA== } + engines: { node: ^18.19.0 || >=20.5.0 } + + expect-type@1.4.0: + resolution: { integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA== } + engines: { node: '>=12.0.0' } + fast-deep-equal@3.1.3: resolution: { integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== } @@ -1244,8 +1622,17 @@ packages: fast-levenshtein@2.0.6: resolution: { integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== } - fastq@1.18.0: - resolution: { integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw== } + fast-string-truncated-width@3.0.3: + resolution: { integrity: sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g== } + + fast-string-width@3.0.2: + resolution: { integrity: sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg== } + + fast-uri@3.1.6: + resolution: { integrity: sha512-7Ical1vFEMr0onbVzEDIreM22I4khW+fzyQPwvAFWBp1iwdshSZRsL4jjRvPG9JP1uiqMHRto+YU6R2/CzDz5Q== } + + fast-wrap-ansi@0.2.2: + resolution: { integrity: sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q== } fdir@6.4.2: resolution: { integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ== } @@ -1255,34 +1642,34 @@ packages: picomatch: optional: true - file-entry-cache@6.0.1: - resolution: { integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== } - engines: { node: ^10.12.0 || >=12.0.0 } + fdir@6.5.0: + resolution: { integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg== } + engines: { node: '>=12.0.0' } + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + fflate@0.8.3: + resolution: { integrity: sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA== } + + figures@6.1.0: + resolution: { integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg== } + engines: { node: '>=18' } file-entry-cache@8.0.0: resolution: { integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== } engines: { node: '>=16.0.0' } - fill-range@7.1.1: - resolution: { integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== } + find-up@4.1.0: + resolution: { integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== } engines: { node: '>=8' } - find-cache-dir@2.1.0: - resolution: { integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== } - engines: { node: '>=6' } - - find-up@3.0.0: - resolution: { integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== } - engines: { node: '>=6' } - find-up@5.0.0: resolution: { integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== } engines: { node: '>=10' } - flat-cache@3.2.0: - resolution: { integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== } - engines: { node: ^10.12.0 || >=12.0.0 } - flat-cache@4.0.1: resolution: { integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== } engines: { node: '>=16' } @@ -1294,8 +1681,8 @@ packages: flatted@3.3.2: resolution: { integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA== } - follow-redirects@1.15.9: - resolution: { integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ== } + follow-redirects@1.16.0: + resolution: { integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw== } engines: { node: '>=4.0' } peerDependencies: debug: '*' @@ -1303,20 +1690,10 @@ packages: debug: optional: true - for-each@0.3.3: - resolution: { integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== } - - foreground-child@3.3.0: - resolution: { integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg== } - engines: { node: '>=14' } - - form-data@4.0.1: - resolution: { integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw== } + form-data@4.0.6: + resolution: { integrity: sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ== } engines: { node: '>= 6' } - fs.realpath@1.0.0: - resolution: { integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== } - fsevents@2.3.3: resolution: { integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== } engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } @@ -1325,13 +1702,6 @@ packages: function-bind@1.1.2: resolution: { integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== } - function.prototype.name@1.1.8: - resolution: { integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q== } - engines: { node: '>= 0.4' } - - functions-have-names@1.2.3: - resolution: { integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== } - gensync@1.0.0-beta.2: resolution: { integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== } engines: { node: '>=6.9.0' } @@ -1340,72 +1710,37 @@ packages: resolution: { integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== } engines: { node: 6.* || 8.* || >= 10.* } - get-intrinsic@1.2.6: - resolution: { integrity: sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA== } + get-intrinsic@1.3.0: + resolution: { integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== } engines: { node: '>= 0.4' } - get-symbol-description@1.1.0: - resolution: { integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg== } + get-proto@1.0.1: + resolution: { integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== } engines: { node: '>= 0.4' } - glob-parent@5.1.2: - resolution: { integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== } - engines: { node: '>= 6' } + get-stream@9.0.1: + resolution: { integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA== } + engines: { node: '>=18' } glob-parent@6.0.2: resolution: { integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== } engines: { node: '>=10.13.0' } - glob@10.4.5: - resolution: { integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== } - hasBin: true - - glob@7.2.3: - resolution: { integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== } - deprecated: Glob versions prior to v9 are no longer supported - - globals@11.12.0: - resolution: { integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== } - engines: { node: '>=4' } - - globals@13.24.0: - resolution: { integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== } - engines: { node: '>=8' } - - globals@14.0.0: - resolution: { integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== } - engines: { node: '>=18' } - - globals@15.14.0: - resolution: { integrity: sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig== } + globals@17.11.0: + resolution: { integrity: sha512-Z2I8hM+PbJDXQDq3Icgpzv+mPdwr68iZUU9d5WW4FuXfDUQfkZaZuvjMv42/5crNyw154+9+VWXbYrUgDXbxNw== } engines: { node: '>=18' } - globalthis@1.0.4: - resolution: { integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== } - engines: { node: '>= 0.4' } - gopd@1.2.0: resolution: { integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== } engines: { node: '>= 0.4' } - graphemer@1.4.0: - resolution: { integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== } - - has-bigints@1.1.0: - resolution: { integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg== } - engines: { node: '>= 0.4' } + graceful-fs@4.2.11: + resolution: { integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== } has-flag@4.0.0: resolution: { integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== } engines: { node: '>=8' } - has-property-descriptors@1.0.2: - resolution: { integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== } - - has-proto@1.2.0: - resolution: { integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ== } - engines: { node: '>= 0.4' } - has-symbols@1.1.0: resolution: { integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== } engines: { node: '>= 0.4' } @@ -1418,115 +1753,77 @@ packages: resolution: { integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== } engines: { node: '>= 0.4' } - he@1.2.0: - resolution: { integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== } - hasBin: true + hasown@2.0.4: + resolution: { integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A== } + engines: { node: '>= 0.4' } + + highlight.js@10.7.3: + resolution: { integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== } + + html-escaper@2.0.2: + resolution: { integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== } + + https-proxy-agent@5.0.1: + resolution: { integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== } + engines: { node: '>= 6' } + + human-signals@8.0.1: + resolution: { integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ== } + engines: { node: '>=18.18.0' } - homedir-polyfill@1.0.3: - resolution: { integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== } + iconv-lite@0.7.3: + resolution: { integrity: sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ== } engines: { node: '>=0.10.0' } ignore@5.3.2: resolution: { integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== } engines: { node: '>= 4' } - import-fresh@3.3.0: - resolution: { integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== } - engines: { node: '>=6' } + ignore@7.0.8: + resolution: { integrity: sha512-YYNsSlXBjMk92SKnkwvB5LOVSa6OznlFUGcsvrFgNJbJCd0M1XKeFVRc8ZByeCqz32FivYNHJVooLmdqrmvp/Q== } + engines: { node: '>= 4' } + + import-local@3.2.0: + resolution: { integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== } + engines: { node: '>=8' } + hasBin: true + + import-meta-resolve@4.2.0: + resolution: { integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg== } imurmurhash@0.1.4: resolution: { integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== } engines: { node: '>=0.8.19' } - inflight@1.0.6: - resolution: { integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== } - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - inherits@2.0.4: resolution: { integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== } - internal-slot@1.1.0: - resolution: { integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw== } - engines: { node: '>= 0.4' } - - is-array-buffer@3.0.5: - resolution: { integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A== } - engines: { node: '>= 0.4' } - - is-async-function@2.0.0: - resolution: { integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA== } - engines: { node: '>= 0.4' } - - is-bigint@1.1.0: - resolution: { integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ== } - engines: { node: '>= 0.4' } - - is-binary-path@2.1.0: - resolution: { integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== } - engines: { node: '>=8' } - - is-boolean-object@1.2.1: - resolution: { integrity: sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng== } - engines: { node: '>= 0.4' } - - is-callable@1.2.7: - resolution: { integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== } - engines: { node: '>= 0.4' } + interpret@3.1.1: + resolution: { integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== } + engines: { node: '>=10.13.0' } is-core-module@2.16.1: resolution: { integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== } engines: { node: '>= 0.4' } - is-data-view@1.0.2: - resolution: { integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw== } - engines: { node: '>= 0.4' } - - is-date-object@1.1.0: - resolution: { integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg== } - engines: { node: '>= 0.4' } - is-extglob@2.1.1: resolution: { integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== } engines: { node: '>=0.10.0' } - is-finalizationregistry@1.1.1: - resolution: { integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg== } - engines: { node: '>= 0.4' } - is-fullwidth-code-point@3.0.0: resolution: { integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== } engines: { node: '>=8' } - is-generator-function@1.0.10: - resolution: { integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== } - engines: { node: '>= 0.4' } - is-glob@4.0.3: resolution: { integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== } engines: { node: '>=0.10.0' } - is-map@2.0.3: - resolution: { integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== } - engines: { node: '>= 0.4' } - is-module@1.0.0: resolution: { integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== } - is-number-object@1.1.1: - resolution: { integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw== } - engines: { node: '>= 0.4' } - - is-number@7.0.0: - resolution: { integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== } - engines: { node: '>=0.12.0' } - - is-path-inside@3.0.3: - resolution: { integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== } - engines: { node: '>=8' } - - is-plain-obj@2.1.0: - resolution: { integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== } - engines: { node: '>=8' } + is-plain-obj@4.1.0: + resolution: { integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== } + engines: { node: '>=12' } is-plain-object@2.0.4: resolution: { integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== } @@ -1535,48 +1832,13 @@ packages: is-reference@1.2.1: resolution: { integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== } - is-regex@1.2.1: - resolution: { integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g== } - engines: { node: '>= 0.4' } - - is-set@2.0.3: - resolution: { integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== } - engines: { node: '>= 0.4' } - - is-shared-array-buffer@1.0.4: - resolution: { integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A== } - engines: { node: '>= 0.4' } - - is-string@1.1.1: - resolution: { integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA== } - engines: { node: '>= 0.4' } - - is-symbol@1.1.1: - resolution: { integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w== } - engines: { node: '>= 0.4' } - - is-typed-array@1.1.15: - resolution: { integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ== } - engines: { node: '>= 0.4' } - - is-unicode-supported@0.1.0: - resolution: { integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== } - engines: { node: '>=10' } - - is-weakmap@2.0.2: - resolution: { integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== } - engines: { node: '>= 0.4' } - - is-weakref@1.1.0: - resolution: { integrity: sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q== } - engines: { node: '>= 0.4' } - - is-weakset@2.0.4: - resolution: { integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ== } - engines: { node: '>= 0.4' } + is-stream@4.0.1: + resolution: { integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A== } + engines: { node: '>=18' } - isarray@2.0.5: - resolution: { integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== } + is-unicode-supported@2.1.0: + resolution: { integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ== } + engines: { node: '>=18' } isexe@2.0.0: resolution: { integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== } @@ -1585,19 +1847,30 @@ packages: resolution: { integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== } engines: { node: '>=0.10.0' } - jackspeak@3.4.3: - resolution: { integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== } + istanbul-lib-coverage@3.2.2: + resolution: { integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== } + engines: { node: '>=8' } - js-tokens@4.0.0: - resolution: { integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== } + istanbul-lib-report@3.0.1: + resolution: { integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== } + engines: { node: '>=10' } - js-yaml@4.1.0: - resolution: { integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== } - hasBin: true + istanbul-reports@3.2.0: + resolution: { integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA== } + engines: { node: '>=8' } - jsesc@3.0.2: - resolution: { integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== } - engines: { node: '>=6' } + jest-worker@27.5.1: + resolution: { integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== } + engines: { node: '>= 10.13.0' } + + js-md4@0.3.2: + resolution: { integrity: sha512-/GDnfQYsltsjRswQhN9fhv3EMw2sCpUdrdxyWDOUK7eyD++r3gRhzgiQgc/x4MAv2i1iuQ4lxO5mvqM3vj4bwA== } + + js-tokens@10.0.0: + resolution: { integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q== } + + js-yaml@4.3.2: + resolution: { integrity: sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA== } hasBin: true jsesc@3.1.0: @@ -1608,9 +1881,15 @@ packages: json-buffer@3.0.1: resolution: { integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== } + json-rpc-2.0@1.8.0: + resolution: { integrity: sha512-4nw+XlJbk5XokA7BtqHGu+0PEiUPfAkRzXXd1Cgjy1c3F2UI/3Gy7yr76wyJEv3X1F1SRGGF8xPAPPhelBiGmA== } + json-schema-traverse@0.4.1: resolution: { integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== } + json-schema-traverse@1.0.0: + resolution: { integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== } + json-stable-stringify-without-jsonify@1.0.1: resolution: { integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== } @@ -1630,106 +1909,266 @@ packages: resolution: { integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== } engines: { node: '>= 0.8.0' } - locate-path@3.0.0: - resolution: { integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== } - engines: { node: '>=6' } + lightningcss-android-arm64@1.33.0: + resolution: { integrity: sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg== } + engines: { node: '>= 12.0.0' } + cpu: [arm64] + os: [android] + + lightningcss-darwin-arm64@1.33.0: + resolution: { integrity: sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg== } + engines: { node: '>= 12.0.0' } + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.33.0: + resolution: { integrity: sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ== } + engines: { node: '>= 12.0.0' } + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.33.0: + resolution: { integrity: sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg== } + engines: { node: '>= 12.0.0' } + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.33.0: + resolution: { integrity: sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ== } + engines: { node: '>= 12.0.0' } + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.33.0: + resolution: { integrity: sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg== } + engines: { node: '>= 12.0.0' } + cpu: [arm64] + os: [linux] + + lightningcss-linux-arm64-musl@1.33.0: + resolution: { integrity: sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ== } + engines: { node: '>= 12.0.0' } + cpu: [arm64] + os: [linux] + + lightningcss-linux-x64-gnu@1.33.0: + resolution: { integrity: sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg== } + engines: { node: '>= 12.0.0' } + cpu: [x64] + os: [linux] + + lightningcss-linux-x64-musl@1.33.0: + resolution: { integrity: sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw== } + engines: { node: '>= 12.0.0' } + cpu: [x64] + os: [linux] + + lightningcss-win32-arm64-msvc@1.33.0: + resolution: { integrity: sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA== } + engines: { node: '>= 12.0.0' } + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.33.0: + resolution: { integrity: sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA== } + engines: { node: '>= 12.0.0' } + cpu: [x64] + os: [win32] + + lightningcss@1.33.0: + resolution: { integrity: sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA== } + engines: { node: '>= 12.0.0' } + + locate-path@5.0.0: + resolution: { integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== } + engines: { node: '>=8' } locate-path@6.0.0: resolution: { integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== } engines: { node: '>=10' } - lodash.debounce@4.0.8: - resolution: { integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== } + lodash.groupby@4.6.0: + resolution: { integrity: sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw== } - lodash.merge@4.6.2: - resolution: { integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== } + lru-cache@11.5.2: + resolution: { integrity: sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g== } + engines: { node: 20 || >=22 } - log-symbols@4.1.0: - resolution: { integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== } - engines: { node: '>=10' } + magic-string@0.30.17: + resolution: { integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA== } - loupe@3.1.2: - resolution: { integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg== } + magic-string@0.30.21: + resolution: { integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ== } - lru-cache@10.4.3: - resolution: { integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== } + magicast@0.5.4: + resolution: { integrity: sha512-llBEhWm1SacoRwgHUoQJYtwp4PBLF4faQi5TCpIGyGs9n4y5+juI0tDgyKIfpqxckRHaHzouUEph3THklWh03w== } - lru-cache@5.1.1: - resolution: { integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== } + make-dir@4.0.0: + resolution: { integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== } + engines: { node: '>=10' } - magic-string@0.30.17: - resolution: { integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA== } + marked-terminal@7.3.0: + resolution: { integrity: sha512-t4rBvPsHc57uE/2nJOLmMbZCQ4tgAccAED3ngXQqW6g+TxA488JzJ+FK3lQkzBQOI1mRV/r/Kq+1ZlJ4D0owQw== } + engines: { node: '>=16.0.0' } + peerDependencies: + marked: '>=1 <16' - make-dir@2.1.0: - resolution: { integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== } - engines: { node: '>=6' } + marked@9.1.6: + resolution: { integrity: sha512-jcByLnIFkd5gSXZmjNvS1TlmRhCXZjIzHYlaGkPlLIekG55JDR2Z4va9tZwCiP+/RDERiNhMOFu01xd6O5ct1Q== } + engines: { node: '>= 16' } + hasBin: true math-intrinsics@1.1.0: resolution: { integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== } engines: { node: '>= 0.4' } + merge-stream@2.0.0: + resolution: { integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== } + mime-db@1.52.0: resolution: { integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== } engines: { node: '>= 0.6' } + mime-db@1.54.0: + resolution: { integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ== } + engines: { node: '>= 0.6' } + mime-types@2.1.35: resolution: { integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== } engines: { node: '>= 0.6' } - minimatch@3.1.2: - resolution: { integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== } - - minimatch@5.1.6: - resolution: { integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== } - engines: { node: '>=10' } + minimalistic-assert@1.0.1: + resolution: { integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== } - minimatch@9.0.5: - resolution: { integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== } - engines: { node: '>=16 || 14 >=14.17' } + minimatch@10.2.6: + resolution: { integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A== } + engines: { node: 18 || 20 || >=22 } - minipass@7.1.2: - resolution: { integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== } - engines: { node: '>=16 || 14 >=14.17' } + minimizer-webpack-plugin@5.8.0: + resolution: { integrity: sha512-2cT9+goJfBhtMz+gJqejSf09ClgmYhPhccRb/fb0ztVbixt0BkO8mRuI26FoPPuUNkRk6iEDryWAIouc5W8eJA== } + engines: { node: '>= 10.13.0' } + peerDependencies: + '@minify-html/node': '*' + '@swc/core': '*' + '@swc/css': '*' + '@swc/html': '*' + clean-css: '*' + cssnano: '*' + csso: '*' + esbuild: '*' + html-minifier-terser: '*' + lightningcss: '*' + postcss: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@minify-html/node': + optional: true + '@swc/core': + optional: true + '@swc/css': + optional: true + '@swc/html': + optional: true + clean-css: + optional: true + cssnano: + optional: true + csso: + optional: true + esbuild: + optional: true + html-minifier-terser: + optional: true + lightningcss: + optional: true + postcss: + optional: true + uglify-js: + optional: true - mocha@11.0.1: - resolution: { integrity: sha512-+3GkODfsDG71KSCQhc4IekSW+ItCK/kiez1Z28ksWvYhKXV/syxMlerR/sC7whDp7IyreZ4YxceMLdTs5hQE8A== } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - hasBin: true + mri@1.2.0: + resolution: { integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== } + engines: { node: '>=4' } ms@2.1.3: resolution: { integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== } + mutation-server-protocol@0.4.1: + resolution: { integrity: sha512-SBGK0j8hLDne7bktgThKI8kGvGTx3rY3LAeQTmOKZ5bVnL/7TorLMvcVF7dIPJCu5RNUWhkkuF53kurygYVt3g== } + engines: { node: '>=18' } + + mutation-testing-elements@3.8.4: + resolution: { integrity: sha512-5CF1SNa7at5ZH33vEr+21wNebTSrtNIVvnzaUlxortHajOrIPaSLczIWvg6sI/fsExekQ7jookwf2cHftkckqQ== } + + mutation-testing-metrics@3.8.4: + resolution: { integrity: sha512-DZcmndJBH6nrNs3tpiB3OcMVq9KkG2cHCpJSnDxSxPwi9qrafRmoec40xjhkbzOoX1n7/4UkDqg5tIj4A6nvCw== } + + mutation-testing-report-schema@3.8.4: + resolution: { integrity: sha512-s4G71R6Lt/PpZ0cqeglIcgyBdzLM8E+SeCHZAPg1wkSsPtRBa4XfPzAozYKdiJk/TLbNEEb7En9t0/bveuPuxA== } + + mute-stream@3.0.0: + resolution: { integrity: sha512-dkEJPVvun4FryqBmZ5KhDo0K9iDXAwn08tMLDinNdRBNPcYEDiWYysLcc6k3mjTMlbP9KyylvRpd4wFtwrT9rw== } + engines: { node: ^20.17.0 || >=22.9.0 } + + mz@2.7.0: + resolution: { integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== } + + nanoid@3.3.18: + resolution: { integrity: sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w== } + engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } + hasBin: true + natural-compare@1.4.0: resolution: { integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== } - node-environment-flags@1.0.6: - resolution: { integrity: sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw== } + neo-async@2.6.2: + resolution: { integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== } - node-releases@2.0.19: - resolution: { integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== } + next@16.3.3: + resolution: { integrity: sha512-tuRTx1nQ/yVw83cwJBo9F+njGUgMn3UHQycreWHB8XsStvvAh1AthbI8/4IpKnFaF58F+iSiHejYOlMQ/eq83g== } + engines: { node: '>=20.9.0' } + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.51.1 + babel-plugin-react-compiler: '*' + react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@playwright/test': + optional: true + babel-plugin-react-compiler: + optional: true + sass: + optional: true - normalize-path@3.0.0: - resolution: { integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== } - engines: { node: '>=0.10.0' } + node-emoji@2.2.0: + resolution: { integrity: sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw== } + engines: { node: '>=18' } - object-inspect@1.13.3: - resolution: { integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA== } - engines: { node: '>= 0.4' } + node-releases@2.0.54: + resolution: { integrity: sha512-YHs7BmmcsdAI5Ozuf8JZo6PT0mv2GIWC9vMfvUC3dp65M8hn7Ux8CPL+2oBI7juNuj9d0ndhTcznq2ODBps9cQ== } + engines: { node: '>=18' } - object-keys@1.1.1: - resolution: { integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== } - engines: { node: '>= 0.4' } + npm-run-path@6.0.0: + resolution: { integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA== } + engines: { node: '>=18' } - object.assign@4.1.7: - resolution: { integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw== } - engines: { node: '>= 0.4' } + object-assign@4.1.1: + resolution: { integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== } + engines: { node: '>=0.10.0' } - object.getownpropertydescriptors@2.1.8: - resolution: { integrity: sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A== } - engines: { node: '>= 0.8' } + object-inspect@1.13.4: + resolution: { integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== } + engines: { node: '>= 0.4' } - once@1.4.0: - resolution: { integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== } + obug@2.1.4: + resolution: { integrity: sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA== } + engines: { node: '>=12.20.0' } optionator@0.9.4: resolution: { integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== } @@ -1743,9 +2182,9 @@ packages: resolution: { integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== } engines: { node: '>=10' } - p-locate@3.0.0: - resolution: { integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== } - engines: { node: '>=6' } + p-locate@4.1.0: + resolution: { integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== } + engines: { node: '>=8' } p-locate@5.0.0: resolution: { integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== } @@ -1755,193 +2194,180 @@ packages: resolution: { integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== } engines: { node: '>=6' } - package-json-from-dist@1.0.1: - resolution: { integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== } + package-manager-detector@1.8.0: + resolution: { integrity: sha512-yQA4H19AmPEoMUeavPMDIe1higySl/gH/yaQrkT/s07Qp+7pp2hYz30N3z2l5BkjVkF9Ow6o0wjJamm2y7Sn0A== } - parent-module@1.0.1: - resolution: { integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== } - engines: { node: '>=6' } + parse-ms@4.0.0: + resolution: { integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw== } + engines: { node: '>=18' } - parse-passwd@1.0.0: - resolution: { integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q== } - engines: { node: '>=0.10.0' } + parse5-htmlparser2-tree-adapter@6.0.1: + resolution: { integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== } - path-exists@3.0.0: - resolution: { integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== } - engines: { node: '>=4' } + parse5@5.1.1: + resolution: { integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== } + + parse5@6.0.1: + resolution: { integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== } path-exists@4.0.0: resolution: { integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== } engines: { node: '>=8' } - path-is-absolute@1.0.1: - resolution: { integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== } - engines: { node: '>=0.10.0' } - path-key@3.1.1: resolution: { integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== } engines: { node: '>=8' } + path-key@4.0.0: + resolution: { integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== } + engines: { node: '>=12' } + path-parse@1.0.7: resolution: { integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== } - path-scurry@1.11.1: - resolution: { integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== } - engines: { node: '>=16 || 14 >=14.18' } - - pathval@2.0.0: - resolution: { integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA== } - engines: { node: '>= 14.16' } + pathe@2.0.3: + resolution: { integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w== } picocolors@1.1.1: resolution: { integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== } - picomatch@2.3.1: - resolution: { integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== } - engines: { node: '>=8.6' } - picomatch@4.0.2: resolution: { integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== } engines: { node: '>=12' } - pify@4.0.1: - resolution: { integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== } - engines: { node: '>=6' } + picomatch@4.0.7: + resolution: { integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA== } + engines: { node: '>=12' } - pirates@4.0.6: - resolution: { integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== } - engines: { node: '>= 6' } + pkg-dir@4.2.0: + resolution: { integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== } + engines: { node: '>=8' } - pkg-dir@3.0.0: - resolution: { integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== } - engines: { node: '>=6' } + postcss@8.5.23: + resolution: { integrity: sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg== } + engines: { node: ^10 || ^12 || >=14 } - possible-typed-array-names@1.0.0: - resolution: { integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== } - engines: { node: '>= 0.4' } + postcss@8.5.26: + resolution: { integrity: sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ== } + engines: { node: ^10 || ^12 || >=14 } prelude-ls@1.2.1: resolution: { integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== } engines: { node: '>= 0.8.0' } - prettier@3.4.2: - resolution: { integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ== } + prettier@3.9.6: + resolution: { integrity: sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g== } engines: { node: '>=14' } hasBin: true - proxy-from-env@1.1.0: - resolution: { integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== } - - punycode@2.3.1: - resolution: { integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== } - engines: { node: '>=6' } - - queue-microtask@1.2.3: - resolution: { integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== } - - randombytes@2.1.0: - resolution: { integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== } - - readdirp@3.6.0: - resolution: { integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== } - engines: { node: '>=8.10.0' } - - reflect.getprototypeof@1.0.9: - resolution: { integrity: sha512-r0Ay04Snci87djAsI4U+WNRcSw5S4pOH7qFjd/veA5gC7TbqESR3tcj28ia95L/fYUDw11JKP7uqUKUAfVvV5Q== } - engines: { node: '>= 0.4' } + pretty-ms@9.3.1: + resolution: { integrity: sha512-HzMy3Geq23nVALD/M2LliU+F+M+gVNsvkQWWqeBZ8HDiCgzo6YPJ/Omrmtq24EFrIsk0a3EkQGEd7bDOo+IhGA== } + engines: { node: '>=18' } - regenerate-unicode-properties@10.2.0: - resolution: { integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA== } - engines: { node: '>=4' } + progress@2.0.3: + resolution: { integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== } + engines: { node: '>=0.4.0' } - regenerate@1.4.2: - resolution: { integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== } + proxy-from-env@2.1.0: + resolution: { integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA== } + engines: { node: '>=10' } - regenerator-runtime@0.14.1: - resolution: { integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== } + publint@0.3.24: + resolution: { integrity: sha512-9zS56KrKBoqi5Qt8h92uMP8TTM9AYZSgnmCo4u2priMqkOZvQnTsziZ2p5LJ2ywbYkAjoCDp2jda9u4cgFefIw== } + engines: { node: '>=18' } + hasBin: true - regenerator-transform@0.15.2: - resolution: { integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== } + punycode@2.3.1: + resolution: { integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== } + engines: { node: '>=6' } - regexp.prototype.flags@1.5.3: - resolution: { integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ== } - engines: { node: '>= 0.4' } + qs@6.16.0: + resolution: { integrity: sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA== } + engines: { node: '>=0.6' } - regexpu-core@6.2.0: - resolution: { integrity: sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA== } - engines: { node: '>=4' } + react-dom@19.2.8: + resolution: { integrity: sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ== } + peerDependencies: + react: ^19.2.8 - regjsgen@0.8.0: - resolution: { integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== } + react@19.2.8: + resolution: { integrity: sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw== } + engines: { node: '>=0.10.0' } - regjsparser@0.12.0: - resolution: { integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ== } - hasBin: true + rechoir@0.8.0: + resolution: { integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== } + engines: { node: '>= 10.13.0' } require-directory@2.1.1: resolution: { integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== } engines: { node: '>=0.10.0' } - resolve-from@4.0.0: - resolution: { integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== } - engines: { node: '>=4' } + require-from-string@2.0.2: + resolution: { integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== } + engines: { node: '>=0.10.0' } + + resolve-cwd@3.0.0: + resolution: { integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== } + engines: { node: '>=8' } + + resolve-from@5.0.0: + resolution: { integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== } + engines: { node: '>=8' } resolve@1.22.10: resolution: { integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== } engines: { node: '>= 0.4' } hasBin: true - reusify@1.0.4: - resolution: { integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== } - engines: { iojs: '>=1.0.0', node: '>=0.10.0' } - - rimraf@3.0.2: - resolution: { integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== } - deprecated: Rimraf versions prior to v4 are no longer supported + rolldown@1.2.6: + resolution: { integrity: sha512-vMM4q3aixf46GiF1Kok8jDPFsEpXgFWGjUHXNkNHNm+Y2adXAG2dbX91jkti3i0ZRsOlcmbuzAz1poObSHCmUA== } + engines: { node: ^20.19.0 || >=22.12.0 } hasBin: true - rollup@4.29.1: - resolution: { integrity: sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw== } + rollup@4.63.1: + resolution: { integrity: sha512-3Df9jsstwhccuEfmAMi9l8XUh/GOkVObmFTU7CCVBysEbcOZLl84jCtaAZMcPiMz2EGKsATzQcU+Xr3n/wU6cg== } engines: { node: '>=18.0.0', npm: '>=8.0.0' } hasBin: true - run-parallel@1.2.0: - resolution: { integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== } + rxjs@7.8.2: + resolution: { integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA== } - safe-array-concat@1.1.3: - resolution: { integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q== } - engines: { node: '>=0.4' } + sade@1.8.1: + resolution: { integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== } + engines: { node: '>=6' } - safe-buffer@5.2.1: - resolution: { integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== } + safer-buffer@2.1.2: + resolution: { integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== } - safe-regex-test@1.1.0: - resolution: { integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw== } - engines: { node: '>= 0.4' } + scheduler@0.27.0: + resolution: { integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q== } - semver@5.7.2: - resolution: { integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== } - hasBin: true + schema-utils@4.3.3: + resolution: { integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA== } + engines: { node: '>= 10.13.0' } - semver@6.3.1: - resolution: { integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== } + semver@7.8.5: + resolution: { integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA== } + engines: { node: '>=10' } hasBin: true - serialize-javascript@6.0.2: - resolution: { integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== } - - set-function-length@1.2.2: - resolution: { integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== } - engines: { node: '>= 0.4' } - - set-function-name@2.0.2: - resolution: { integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== } - engines: { node: '>= 0.4' } + serialize-javascript@7.1.1: + resolution: { integrity: sha512-k3CMsaIvvdSwm8oLB4MXSl0wH2/cwlH7xGcnRd2DaeRmBkbzYmyT8j0tsX60DwD1eRwHTpNpH8ljKu9oUT1MeQ== } + engines: { node: '>=20.0.0' } shallow-clone@3.0.1: resolution: { integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== } engines: { node: '>=8' } + sharp@0.35.4: + resolution: { integrity: sha512-n++8XWcj+jCOr2IOl7h8LbKnGBDY4aPbmprMONBNFdn0ImXqpGVv5zliDs0V9HbmbCQLpbuo2ej9rAoOQTvMDA== } + engines: { node: '>=20.9.0' } + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + shebang-command@2.0.0: resolution: { integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== } engines: { node: '>=8' } @@ -1950,8 +2376,8 @@ packages: resolution: { integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== } engines: { node: '>=8' } - side-channel-list@1.0.0: - resolution: { integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA== } + side-channel-list@1.0.1: + resolution: { integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w== } engines: { node: '>= 0.4' } side-channel-map@1.0.1: @@ -1962,17 +2388,28 @@ packages: resolution: { integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== } engines: { node: '>= 0.4' } - side-channel@1.1.0: - resolution: { integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== } + side-channel@1.1.1: + resolution: { integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ== } engines: { node: '>= 0.4' } + siginfo@2.0.0: + resolution: { integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== } + signal-exit@4.1.0: resolution: { integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== } engines: { node: '>=14' } + skin-tone@2.0.0: + resolution: { integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA== } + engines: { node: '>=8' } + smob@1.5.0: resolution: { integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig== } + source-map-js@1.2.1: + resolution: { integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== } + engines: { node: '>=0.10.0' } + source-map-support@0.5.21: resolution: { integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== } @@ -1980,37 +2417,40 @@ packages: resolution: { integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== } engines: { node: '>=0.10.0' } - string-width@4.2.3: - resolution: { integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== } - engines: { node: '>=8' } - - string-width@5.1.2: - resolution: { integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== } - engines: { node: '>=12' } + source-map@0.7.6: + resolution: { integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ== } + engines: { node: '>= 12' } - string.prototype.trim@1.2.10: - resolution: { integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA== } - engines: { node: '>= 0.4' } + stackback@0.0.2: + resolution: { integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw== } - string.prototype.trimend@1.0.9: - resolution: { integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ== } - engines: { node: '>= 0.4' } + std-env@4.2.0: + resolution: { integrity: sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw== } - string.prototype.trimstart@1.0.8: - resolution: { integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== } - engines: { node: '>= 0.4' } + string-width@4.2.3: + resolution: { integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== } + engines: { node: '>=8' } strip-ansi@6.0.1: resolution: { integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== } engines: { node: '>=8' } - strip-ansi@7.1.0: - resolution: { integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== } - engines: { node: '>=12' } + strip-final-newline@4.0.0: + resolution: { integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw== } + engines: { node: '>=18' } - strip-json-comments@3.1.1: - resolution: { integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== } - engines: { node: '>=8' } + styled-jsx@5.1.6: + resolution: { integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA== } + engines: { node: '>= 12.0.0' } + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true supports-color@7.2.0: resolution: { integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== } @@ -2020,68 +2460,109 @@ packages: resolution: { integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== } engines: { node: '>=10' } + supports-hyperlinks@3.2.0: + resolution: { integrity: sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig== } + engines: { node: '>=14.18' } + supports-preserve-symlinks-flag@1.0.0: resolution: { integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== } engines: { node: '>= 0.4' } + tapable@2.3.3: + resolution: { integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A== } + engines: { node: '>=6' } + terser@5.37.0: resolution: { integrity: sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA== } engines: { node: '>=10' } hasBin: true - text-table@0.2.0: - resolution: { integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== } + terser@5.51.2: + resolution: { integrity: sha512-bWnjSNscmuI+GJze6ZupnHP8G/cTcsJF+bXCeQknk2SHQsgbNJnLrqiH9jZ2W4STPVXH2mDKKRX3iwPhc9Cn/Q== } + engines: { node: '>=10' } + hasBin: true + + thenify-all@1.6.0: + resolution: { integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== } + engines: { node: '>=0.8' } + + thenify@3.3.1: + resolution: { integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== } + + tinybench@2.9.0: + resolution: { integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg== } + + tinyexec@1.3.0: + resolution: { integrity: sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ== } + engines: { node: '>=18' } + + tinyglobby@0.2.17: + resolution: { integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g== } + engines: { node: '>=12.0.0' } + + tinyrainbow@3.1.1: + resolution: { integrity: sha512-yau8yJdTt989Mm0Bd/236QnzEiPf2xLLTqUZRUJOo/3CB078LSwzei343DgtJVmfJKJE3TMINY1u42SQsP6mXw== } + engines: { node: '>=14.0.0' } + + tree-kill@1.2.2: + resolution: { integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== } + hasBin: true + + ts-api-utils@2.5.0: + resolution: { integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA== } + engines: { node: '>=18.12' } + peerDependencies: + typescript: '>=4.8.4' + + tslib@2.8.1: + resolution: { integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== } - to-regex-range@5.0.1: - resolution: { integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== } - engines: { node: '>=8.0' } + tunnel@0.0.6: + resolution: { integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== } + engines: { node: '>=0.6.11 <=0.7.0 || >=0.7.3' } type-check@0.4.0: resolution: { integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== } engines: { node: '>= 0.8.0' } - type-fest@0.20.2: - resolution: { integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== } - engines: { node: '>=10' } - - typed-array-buffer@1.0.3: - resolution: { integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw== } - engines: { node: '>= 0.4' } - - typed-array-byte-length@1.0.3: - resolution: { integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg== } - engines: { node: '>= 0.4' } + typed-inject@5.0.0: + resolution: { integrity: sha512-0Ql2ORqBORLMdAW89TQKZsb1PQkFGImFfVmncXWe7a+AA3+7dh7Se9exxZowH4kbnlvKEFkMxUYdHUpjYWFJaA== } + engines: { node: '>=18' } - typed-array-byte-offset@1.0.4: - resolution: { integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ== } - engines: { node: '>= 0.4' } + typed-rest-client@2.3.1: + resolution: { integrity: sha512-k4kX5Up6qA68D0Cby2AK+6+vM5k3qTxe+/3FqhnHRExjY5cfbOnzjQZbP/LXleF8hVoDvDqxlgk9KK83HoBZlQ== } + engines: { node: '>= 16.0.0' } - typed-array-length@1.0.7: - resolution: { integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg== } - engines: { node: '>= 0.4' } + typescript-eslint@8.68.0: + resolution: { integrity: sha512-MHy0Y0ynqeEbx/S45+i/bBssdy3X6KNBfmJAP35GrgtNxu2TQ5K5xsFDhAnmsq1jvpdoZOPG1LGtJo0HWqYCrQ== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' - unbox-primitive@1.1.0: - resolution: { integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw== } - engines: { node: '>= 0.4' } + typescript@5.6.1-rc: + resolution: { integrity: sha512-E3b2+1zEFu84jB0YQi9BORDjz9+jGbwwy1Zi3G0LUNw7a7cePUrHMRNy8aPh53nXpkFGVHSxIZo5vKTfYaFiBQ== } + engines: { node: '>=14.17' } + hasBin: true - unicode-canonical-property-names-ecmascript@2.0.1: - resolution: { integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg== } - engines: { node: '>=4' } + typescript@5.9.3: + resolution: { integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== } + engines: { node: '>=14.17' } + hasBin: true - unicode-match-property-ecmascript@2.0.0: - resolution: { integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== } - engines: { node: '>=4' } + underscore@1.13.8: + resolution: { integrity: sha512-DXtD3ZtEQzc7M8m4cXotyHR+FAS18C64asBYY5vqZexfYryNNnDc02W4hKg3rdQuqOYas1jkseX0+nZXjTXnvQ== } - unicode-match-property-value-ecmascript@2.2.0: - resolution: { integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg== } + unicode-emoji-modifier-base@1.0.0: + resolution: { integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g== } 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' } - update-browserslist-db@1.1.1: - resolution: { integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A== } + update-browserslist-db@1.3.2: + resolution: { integrity: sha512-UQ+MSxlhRm1bzjhU+DcuXfjFO1FzNtqhK5+9Yvlp90ItDLk5vT932A0rFu619nf7RVS+Y/VeaUW1jaRDqZ8VJw== } hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -2089,64 +2570,176 @@ packages: uri-js@4.4.1: resolution: { integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== } - v8flags@3.2.0: - resolution: { integrity: sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg== } - engines: { node: '>= 0.10' } + validate-npm-package-name@5.0.1: + resolution: { integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } - which-boxed-primitive@1.1.1: - resolution: { integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA== } - engines: { node: '>= 0.4' } + vite@8.2.2: + resolution: { integrity: sha512-cFKLV/PRgAUlIRm5WjMjJ86jrftzpqcgH+Us+DS8mI3CDNiH30Whrz8uHL3+MOLPAgqbMBAqWdAHAphOAM+z/Q== } + engines: { node: ^20.19.0 || >=22.12.0 } + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + '@vitejs/devtools': ^0.4.0 || ^0.5.0 + esbuild: ^0.27.0 || ^0.28.0 + jiti: '>=1.21.0' + less: ^4.0.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + '@vitejs/devtools': + optional: true + esbuild: + optional: true + jiti: + optional: true + less: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true - which-builtin-type@1.2.1: - resolution: { integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q== } - engines: { node: '>= 0.4' } + vitest@4.1.11: + resolution: { integrity: sha512-fhACrNXUidIbGSBr5FlbuBkO7VWC1ZyLl0DO4CU2DrQoAPxX84Ysxs+HeGQpii5lZWV1Q4gBZTTu49mF+A6Edw== } + engines: { node: ^20.0.0 || ^22.0.0 || >=24.0.0 } + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@opentelemetry/api': ^1.9.0 + '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 + '@vitest/browser-playwright': 4.1.11 + '@vitest/browser-preview': 4.1.11 + '@vitest/browser-webdriverio': 4.1.11 + '@vitest/coverage-istanbul': 4.1.11 + '@vitest/coverage-v8': 4.1.11 + '@vitest/ui': 4.1.11 + happy-dom: '*' + jsdom: '*' + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@opentelemetry/api': + optional: true + '@types/node': + optional: true + '@vitest/browser-playwright': + optional: true + '@vitest/browser-preview': + optional: true + '@vitest/browser-webdriverio': + optional: true + '@vitest/coverage-istanbul': + optional: true + '@vitest/coverage-v8': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true - which-collection@1.0.2: - resolution: { integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== } - engines: { node: '>= 0.4' } + watchpack@2.5.2: + resolution: { integrity: sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg== } + engines: { node: '>=10.13.0' } - which-typed-array@1.1.18: - resolution: { integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA== } - engines: { node: '>= 0.4' } + weapon-regex@2.0.4: + resolution: { integrity: sha512-ubuhY5Lo4phWcMsJqe8j62m9uhsuo/VpfK5XsSgYGRGDSt10hwVwOBTriPRd0dac+KYbGNXOrfXjM6xCp2NUKg== } - which@2.0.2: + webpack-cli@7.2.3: + resolution: { integrity: sha512-vDFU7jrfCctnN7jJQWPl+V26B51GLp11prVZXg50oeonsgeBzSTJEWmXkjHsOjTgMjlPOQM8GWLh33X9RN/0ow== } + engines: { node: '>=20.9.0' } + hasBin: true + peerDependencies: + js-yaml: ^4.0.0 || ^5.0.0 + json5: ^2.2.3 + toml: ^3.0.0 || ^4.0.0 || ^5.0.0 + webpack: ^5.101.0 + webpack-bundle-analyzer: ^4.0.0 || ^5.0.0 + webpack-dev-server: ^5.0.0 || ^6.0.0 + peerDependenciesMeta: + js-yaml: + optional: true + json5: + optional: true + toml: + optional: true + webpack-bundle-analyzer: + optional: true + webpack-dev-server: + optional: true + + webpack-merge@6.0.1: + resolution: { integrity: sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg== } + engines: { node: '>=18.0.0' } + + webpack-sources@3.5.1: + resolution: { integrity: sha512-jyuiGJdtvY434z5bUZrjz67v76/ePNvFZTp9Mdz29IlH4+GPsgyGjiv0fKI+M7BdkU6ADjulUcKAd3tUK3WlEw== } + engines: { node: '>=10.13.0' } + + webpack@5.110.2: + resolution: { integrity: sha512-TciLrfM7zgEjqGdY851HkirDsSPQgTFsWQpl9oHqMAMYsHhEC0bKjscvjpnz+pzx10hLC8qISApGrsnrCP4UtQ== } + engines: { node: '>=10.13.0' } + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + + which@2.0.2: resolution: { integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== } engines: { node: '>= 8' } hasBin: true + why-is-node-running@2.3.0: + resolution: { integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w== } + engines: { node: '>=8' } + hasBin: true + + wildcard@2.0.1: + resolution: { integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== } + word-wrap@1.2.5: resolution: { integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== } engines: { node: '>=0.10.0' } - workerpool@6.5.1: - resolution: { integrity: sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA== } - wrap-ansi@7.0.0: resolution: { integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== } engines: { node: '>=10' } - wrap-ansi@8.1.0: - resolution: { integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== } - engines: { node: '>=12' } - - wrappy@1.0.2: - resolution: { integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== } - y18n@5.0.8: resolution: { integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== } engines: { node: '>=10' } - yallist@3.1.1: - resolution: { integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== } + yaml@2.9.0: + resolution: { integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA== } + engines: { node: '>= 14.6' } + hasBin: true yargs-parser@20.2.9: resolution: { integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== } engines: { node: '>=10' } - yargs-unparser@2.0.0: - resolution: { integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== } - engines: { node: '>=10' } - yargs@16.2.0: resolution: { integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== } engines: { node: '>=10' } @@ -2155,958 +2748,1154 @@ packages: resolution: { integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== } engines: { node: '>=10' } -snapshots: - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 + yoctocolors@2.2.0: + resolution: { integrity: sha512-xYqdZFUK/VYazNl/oCDYN+3WloWQwMfZxBoiNt6qNyk+xfOdi598muWE42rNZFp1kNOiqW936q5RhUdnpqElSg== } + engines: { node: '>=18' } - '@babel/code-frame@7.26.2': - dependencies: - '@babel/helper-validator-identifier': 7.25.9 - js-tokens: 4.0.0 - picocolors: 1.1.1 + zod@4.5.4: + resolution: { integrity: sha512-sC95tT5iHHH9gtpj6A81kh+NEaRAUFN+qlUPDUbRfOMvNf5QCBqsb3WgvnpVtK5Y+4UfA6KqufotuTvMGiTlsA== } - '@babel/compat-data@7.26.3': {} +snapshots: + '@andrewbranch/untar.js@1.0.4': {} - '@babel/core@7.26.0': + '@arethetypeswrong/cli@0.18.5': dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.3 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helpers': 7.26.0 - '@babel/parser': 7.26.3 - '@babel/template': 7.25.9 - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.3 + '@arethetypeswrong/core': 0.18.5 + chalk: 4.1.2 + cli-table3: 0.6.5 + commander: 10.0.1 + marked: 9.1.6 + marked-terminal: 7.3.0(marked@9.1.6) + semver: 7.8.5 + + '@arethetypeswrong/core@0.18.5': + dependencies: + '@andrewbranch/untar.js': 1.0.4 + '@loaderkit/resolve': 1.0.6 + cjs-module-lexer: 1.4.3 + fflate: 0.8.3 + lru-cache: 11.5.2 + semver: 7.8.5 + typescript: 5.6.1-rc + validate-npm-package-name: 5.0.1 + + '@babel/code-frame@8.0.0': + dependencies: + '@babel/helper-validator-identifier': 8.0.4 + js-tokens: 10.0.0 + + '@babel/compat-data@8.0.0': {} + + '@babel/core@8.0.1': + dependencies: + '@babel/code-frame': 8.0.0 + '@babel/generator': 8.0.0 + '@babel/helper-compilation-targets': 8.0.0 + '@babel/helpers': 8.0.0 + '@babel/parser': 8.0.4 + '@babel/template': 8.0.0 + '@babel/traverse': 8.0.4 + '@babel/types': 8.0.4 + '@types/gensync': 1.0.5 convert-source-map: 2.0.0 - debug: 4.4.0(supports-color@8.1.1) + empathic: 2.0.1 gensync: 1.0.0-beta.2 + import-meta-resolve: 4.2.0 json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color + obug: 2.1.4 + semver: 7.8.5 - '@babel/generator@7.26.3': + '@babel/generator@8.0.0': dependencies: - '@babel/parser': 7.26.3 - '@babel/types': 7.26.3 - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 + '@babel/parser': 8.0.4 + '@babel/types': 8.0.4 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + '@types/jsesc': 2.5.1 jsesc: 3.1.0 - '@babel/helper-annotate-as-pure@7.25.9': - dependencies: - '@babel/types': 7.26.3 - - '@babel/helper-compilation-targets@7.25.9': + '@babel/helper-annotate-as-pure@8.0.0': dependencies: - '@babel/compat-data': 7.26.3 - '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.3 - lru-cache: 5.1.1 - semver: 6.3.1 + '@babel/types': 8.0.4 - '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.0)': + '@babel/helper-compilation-targets@8.0.0': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/traverse': 7.26.4 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color + '@babel/compat-data': 8.0.0 + '@babel/helper-validator-option': 8.0.0 + browserslist: 4.28.8 + lru-cache: 11.5.2 + semver: 7.8.5 - '@babel/helper-create-regexp-features-plugin@7.26.3(@babel/core@7.26.0)': + '@babel/helper-create-class-features-plugin@8.0.1(@babel/core@8.0.1)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - regexpu-core: 6.2.0 - semver: 6.3.1 + '@babel/core': 8.0.1 + '@babel/helper-annotate-as-pure': 8.0.0 + '@babel/helper-member-expression-to-functions': 8.0.0 + '@babel/helper-optimise-call-expression': 8.0.0 + '@babel/helper-replace-supers': 8.0.1(@babel/core@8.0.1) + '@babel/helper-skip-transparent-expression-wrappers': 8.0.0 + '@babel/traverse': 8.0.4 + semver: 7.8.5 - '@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - debug: 4.4.0(supports-color@8.1.1) - lodash.debounce: 4.0.8 - resolve: 1.22.10 - transitivePeerDependencies: - - supports-color + '@babel/helper-globals@8.0.0': {} - '@babel/helper-member-expression-to-functions@7.25.9': + '@babel/helper-member-expression-to-functions@8.0.0': dependencies: - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.3 - transitivePeerDependencies: - - supports-color + '@babel/traverse': 8.0.4 + '@babel/types': 8.0.4 - '@babel/helper-module-imports@7.25.9': + '@babel/helper-module-imports@8.0.0': dependencies: - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.3 - transitivePeerDependencies: - - supports-color + '@babel/traverse': 8.0.4 + '@babel/types': 8.0.4 - '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': + '@babel/helper-module-transforms@8.0.1(@babel/core@8.0.1)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.4 - transitivePeerDependencies: - - supports-color + '@babel/core': 8.0.1 + '@babel/helper-module-imports': 8.0.0 + '@babel/helper-validator-identifier': 8.0.4 + '@babel/traverse': 8.0.4 - '@babel/helper-optimise-call-expression@7.25.9': + '@babel/helper-optimise-call-expression@8.0.0': dependencies: - '@babel/types': 7.26.3 + '@babel/types': 8.0.4 - '@babel/helper-plugin-utils@7.25.9': {} - - '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.0)': + '@babel/helper-plugin-utils@8.0.1(@babel/core@8.0.1)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-wrap-function': 7.25.9 - '@babel/traverse': 7.26.4 - transitivePeerDependencies: - - supports-color + '@babel/core': 8.0.1 - '@babel/helper-replace-supers@7.25.9(@babel/core@7.26.0)': + '@babel/helper-replace-supers@8.0.1(@babel/core@8.0.1)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/traverse': 7.26.4 - transitivePeerDependencies: - - supports-color + '@babel/core': 8.0.1 + '@babel/helper-member-expression-to-functions': 8.0.0 + '@babel/helper-optimise-call-expression': 8.0.0 + '@babel/traverse': 8.0.4 - '@babel/helper-skip-transparent-expression-wrappers@7.25.9': + '@babel/helper-skip-transparent-expression-wrappers@8.0.0': dependencies: - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.3 - transitivePeerDependencies: - - supports-color + '@babel/traverse': 8.0.4 + '@babel/types': 8.0.4 - '@babel/helper-string-parser@7.25.9': {} + '@babel/helper-string-parser@7.29.7': {} - '@babel/helper-validator-identifier@7.25.9': {} + '@babel/helper-string-parser@8.0.0': {} - '@babel/helper-validator-option@7.25.9': {} + '@babel/helper-validator-identifier@7.29.7': {} - '@babel/helper-wrap-function@7.25.9': - dependencies: - '@babel/template': 7.25.9 - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.3 - transitivePeerDependencies: - - supports-color + '@babel/helper-validator-identifier@8.0.4': {} - '@babel/helpers@7.26.0': - dependencies: - '@babel/template': 7.25.9 - '@babel/types': 7.26.3 + '@babel/helper-validator-option@8.0.0': {} - '@babel/node@7.26.0(@babel/core@7.26.0)': + '@babel/helpers@8.0.0': dependencies: - '@babel/core': 7.26.0 - '@babel/register': 7.25.9(@babel/core@7.26.0) - commander: 6.2.1 - core-js: 3.39.0 - node-environment-flags: 1.0.6 - regenerator-runtime: 0.14.1 - v8flags: 3.2.0 + '@babel/template': 8.0.0 + '@babel/types': 8.0.4 - '@babel/parser@7.26.3': + '@babel/parser@7.29.8': dependencies: - '@babel/types': 7.26.3 + '@babel/types': 7.29.8 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.0)': + '@babel/parser@8.0.4': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/traverse': 7.26.4 - transitivePeerDependencies: - - supports-color + '@babel/types': 8.0.4 - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-proposal-decorators@8.0.2(@babel/core@8.0.1)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 8.0.1 + '@babel/helper-create-class-features-plugin': 8.0.1(@babel/core@8.0.1) + '@babel/helper-plugin-utils': 8.0.1(@babel/core@8.0.1) + '@babel/plugin-syntax-decorators': 8.0.1(@babel/core@8.0.1) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-syntax-decorators@8.0.1(@babel/core@8.0.1)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 8.0.1(@babel/core@8.0.1) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-syntax-jsx@8.0.1(@babel/core@8.0.1)': 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) - transitivePeerDependencies: - - supports-color + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 8.0.1(@babel/core@8.0.1) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-syntax-typescript@8.0.3(@babel/core@8.0.1)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/traverse': 7.26.4 - transitivePeerDependencies: - - supports-color + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 8.0.1(@babel/core@8.0.1) - '@babel/plugin-proposal-decorators@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-destructuring@8.0.1(@babel/core@8.0.1)': 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/plugin-syntax-decorators': 7.25.9(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 8.0.1(@babel/core@8.0.1) - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.0)': + '@babel/plugin-transform-explicit-resource-management@8.0.1(@babel/core@8.0.1)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 8.0.1(@babel/core@8.0.1) + '@babel/plugin-transform-destructuring': 8.0.1(@babel/core@8.0.1) - '@babel/plugin-syntax-decorators@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-modules-commonjs@8.0.1(@babel/core@8.0.1)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 8.0.1 + '@babel/helper-module-transforms': 8.0.1(@babel/core@8.0.1) + '@babel/helper-plugin-utils': 8.0.1(@babel/core@8.0.1) - '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.0)': + '@babel/plugin-transform-react-display-name@8.0.1(@babel/core@8.0.1)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 8.0.1(@babel/core@8.0.1) - '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.0)': + '@babel/plugin-transform-react-jsx-development@8.0.1(@babel/core@8.0.1)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 8.0.1 + '@babel/plugin-transform-react-jsx': 8.0.1(@babel/core@8.0.1) - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.0)': + '@babel/plugin-transform-react-jsx@8.0.1(@babel/core@8.0.1)': 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': 8.0.1 + '@babel/helper-annotate-as-pure': 8.0.0 + '@babel/helper-module-imports': 8.0.0 + '@babel/helper-plugin-utils': 8.0.1(@babel/core@8.0.1) + '@babel/plugin-syntax-jsx': 8.0.1(@babel/core@8.0.1) + '@babel/types': 8.0.4 - '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-react-pure-annotations@8.0.1(@babel/core@8.0.1)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 8.0.1 + '@babel/helper-annotate-as-pure': 8.0.0 + '@babel/helper-plugin-utils': 8.0.1(@babel/core@8.0.1) - '@babel/plugin-transform-async-generator-functions@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-typescript@8.0.1(@babel/core@8.0.1)': 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 - transitivePeerDependencies: - - supports-color + '@babel/core': 8.0.1 + '@babel/helper-annotate-as-pure': 8.0.0 + '@babel/helper-create-class-features-plugin': 8.0.1(@babel/core@8.0.1) + '@babel/helper-plugin-utils': 8.0.1(@babel/core@8.0.1) + '@babel/helper-skip-transparent-expression-wrappers': 8.0.0 + '@babel/plugin-syntax-typescript': 8.0.3(@babel/core@8.0.1) - '@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.26.0)': + '@babel/preset-react@8.0.1(@babel/core@8.0.1)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 8.0.1(@babel/core@8.0.1) + '@babel/helper-validator-option': 8.0.0 + '@babel/plugin-transform-react-display-name': 8.0.1(@babel/core@8.0.1) + '@babel/plugin-transform-react-jsx': 8.0.1(@babel/core@8.0.1) + '@babel/plugin-transform-react-jsx-development': 8.0.1(@babel/core@8.0.1) + '@babel/plugin-transform-react-pure-annotations': 8.0.1(@babel/core@8.0.1) - '@babel/plugin-transform-block-scoped-functions@7.25.9(@babel/core@7.26.0)': + '@babel/preset-typescript@8.0.1(@babel/core@8.0.1)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 8.0.1(@babel/core@8.0.1) + '@babel/helper-validator-option': 8.0.0 + '@babel/plugin-transform-modules-commonjs': 8.0.1(@babel/core@8.0.1) + '@babel/plugin-transform-typescript': 8.0.1(@babel/core@8.0.1) - '@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/runtime@7.28.4': {} - '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.0)': + '@babel/template@8.0.0': 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 - transitivePeerDependencies: - - supports-color + '@babel/code-frame': 8.0.0 + '@babel/parser': 8.0.4 + '@babel/types': 8.0.4 - '@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.26.0)': + '@babel/traverse@8.0.4': 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 - transitivePeerDependencies: - - supports-color + '@babel/code-frame': 8.0.0 + '@babel/generator': 8.0.0 + '@babel/helper-globals': 8.0.0 + '@babel/parser': 8.0.4 + '@babel/template': 8.0.0 + '@babel/types': 8.0.4 + obug: 2.1.4 - '@babel/plugin-transform-classes@7.25.9(@babel/core@7.26.0)': + '@babel/types@7.29.8': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) - '@babel/traverse': 7.26.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color + '@babel/helper-string-parser': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 - '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.26.0)': + '@babel/types@8.0.4': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/template': 7.25.9 + '@babel/helper-string-parser': 8.0.0 + '@babel/helper-validator-identifier': 8.0.4 - '@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 + '@bcoe/v8-coverage@1.0.2': {} - '@babel/plugin-transform-dotall-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 + '@braidai/lang@1.1.2': {} - '@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@colors/colors@1.5.0': + optional: true - '@babel/plugin-transform-duplicate-named-capturing-groups-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 + '@discoveryjs/json-ext@1.1.0': {} - '@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.26.0)': + '@emnapi/runtime@1.11.3': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + tslib: 2.8.1 + optional: true - '@babel/plugin-transform-exponentiation-operator@7.26.3(@babel/core@7.26.0)': + '@eslint-community/eslint-utils@4.10.1(eslint@10.9.1)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + eslint: 10.9.1 + eslint-visitor-keys: 3.4.3 - '@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@eslint-community/regexpp@4.12.2': {} - '@babel/plugin-transform-for-of@7.25.9(@babel/core@7.26.0)': + '@eslint/config-array@0.23.5': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@eslint/object-schema': 3.0.5 + debug: 4.4.0 + minimatch: 10.2.6 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.26.0)': + '@eslint/config-helpers@0.7.0': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/traverse': 7.26.4 - transitivePeerDependencies: - - supports-color + '@eslint/core': 1.2.1 - '@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.26.0)': + '@eslint/core@1.2.1': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@types/json-schema': 7.0.15 - '@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 + '@eslint/js@10.0.1(eslint@10.9.1)': + optionalDependencies: + eslint: 10.9.1 - '@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@eslint/object-schema@3.0.5': {} - '@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.26.0)': + '@eslint/plugin-kit@0.7.2': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@eslint/core': 1.2.1 + levn: 0.4.1 - '@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.26.0)': + '@fleetbase/sdk@1.2.13': 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/runtime': 7.28.4 + axios: 1.20.0 transitivePeerDependencies: + - debug - supports-color - '@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.26.0)': - 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 - transitivePeerDependencies: - - supports-color + '@humanfs/core@0.19.1': {} - '@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.26.0)': + '@humanfs/node@0.16.6': 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 - transitivePeerDependencies: - - supports-color + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.3.1 - '@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.26.0)': - 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 - transitivePeerDependencies: - - supports-color + '@humanwhocodes/module-importer@1.0.1': {} - '@babel/plugin-transform-named-capturing-groups-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 + '@humanwhocodes/retry@0.3.1': {} + + '@humanwhocodes/retry@0.4.3': {} + + '@img/colour@1.1.0': + optional: true + + '@img/sharp-darwin-arm64@0.35.4': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.3.3 + optional: true - '@babel/plugin-transform-new-target@7.25.9(@babel/core@7.26.0)': + '@img/sharp-darwin-x64@0.35.4': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.3.3 + optional: true + + '@img/sharp-freebsd-wasm32@0.35.4': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@img/sharp-wasm32': 0.35.4 + optional: true + + '@img/sharp-libvips-darwin-arm64@1.3.3': + optional: true + + '@img/sharp-libvips-darwin-x64@1.3.3': + optional: true + + '@img/sharp-libvips-linux-arm64@1.3.3': + optional: true + + '@img/sharp-libvips-linux-arm@1.3.3': + optional: true + + '@img/sharp-libvips-linux-ppc64@1.3.3': + optional: true + + '@img/sharp-libvips-linux-riscv64@1.3.3': + optional: true + + '@img/sharp-libvips-linux-s390x@1.3.3': + optional: true + + '@img/sharp-libvips-linux-x64@1.3.3': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.3.3': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.3.3': + optional: true + + '@img/sharp-linux-arm64@0.35.4': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.3.3 + optional: true - '@babel/plugin-transform-nullish-coalescing-operator@7.25.9(@babel/core@7.26.0)': + '@img/sharp-linux-arm@0.35.4': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.3.3 + optional: true + + '@img/sharp-linux-ppc64@0.35.4': + optionalDependencies: + '@img/sharp-libvips-linux-ppc64': 1.3.3 + optional: true + + '@img/sharp-linux-riscv64@0.35.4': + optionalDependencies: + '@img/sharp-libvips-linux-riscv64': 1.3.3 + optional: true + + '@img/sharp-linux-s390x@0.35.4': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.3.3 + optional: true + + '@img/sharp-linux-x64@0.35.4': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.3.3 + optional: true + + '@img/sharp-linuxmusl-arm64@0.35.4': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.3.3 + optional: true + + '@img/sharp-linuxmusl-x64@0.35.4': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.3.3 + optional: true + + '@img/sharp-wasm32@0.35.4': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@emnapi/runtime': 1.11.3 + optional: true - '@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.26.0)': + '@img/sharp-webcontainers-wasm32@0.35.4': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@img/sharp-wasm32': 0.35.4 + optional: true - '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.26.0)': + '@img/sharp-win32-arm64@0.35.4': + optional: true + + '@img/sharp-win32-ia32@0.35.4': + optional: true + + '@img/sharp-win32-x64@0.35.4': + optional: true + + '@inquirer/ansi@2.0.7': {} + + '@inquirer/checkbox@5.2.3': 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) + '@inquirer/ansi': 2.0.7 + '@inquirer/core': 12.0.1 + '@inquirer/figures': 2.0.8 + '@inquirer/type': 4.1.0 - '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.26.0)': + '@inquirer/confirm@6.3.0': 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) - transitivePeerDependencies: - - supports-color + '@inquirer/core': 12.0.1 + '@inquirer/type': 4.1.0 - '@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.26.0)': + '@inquirer/core@12.0.1': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@inquirer/ansi': 2.0.7 + '@inquirer/figures': 2.0.8 + '@inquirer/type': 4.1.0 + cli-width: 4.1.0 + fast-wrap-ansi: 0.2.2 + mute-stream: 3.0.0 + signal-exit: 4.1.0 - '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.0)': + '@inquirer/editor@5.3.1': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - transitivePeerDependencies: - - supports-color + '@inquirer/core': 12.0.1 + '@inquirer/external-editor': 3.0.4 + '@inquirer/type': 4.1.0 - '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.26.0)': + '@inquirer/expand@5.1.3': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@inquirer/core': 12.0.1 + '@inquirer/type': 4.1.0 - '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.0)': + '@inquirer/external-editor@3.0.4': 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 - transitivePeerDependencies: - - supports-color + chardet: 2.2.0 + iconv-lite: 0.7.3 + + '@inquirer/figures@2.0.8': {} - '@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.26.0)': + '@inquirer/input@5.1.4': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color + '@inquirer/core': 12.0.1 + '@inquirer/type': 4.1.0 - '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.26.0)': + '@inquirer/number@4.2.1': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@inquirer/core': 12.0.1 + '@inquirer/type': 4.1.0 - '@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.26.0)': + '@inquirer/password@5.2.0': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - regenerator-transform: 0.15.2 + '@inquirer/ansi': 2.0.7 + '@inquirer/core': 12.0.1 + '@inquirer/type': 4.1.0 - '@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.26.0)': + '@inquirer/prompts@8.7.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 + '@inquirer/checkbox': 5.2.3 + '@inquirer/confirm': 6.3.0 + '@inquirer/editor': 5.3.1 + '@inquirer/expand': 5.1.3 + '@inquirer/input': 5.1.4 + '@inquirer/number': 4.2.1 + '@inquirer/password': 5.2.0 + '@inquirer/rawlist': 5.3.3 + '@inquirer/search': 4.3.1 + '@inquirer/select': 5.2.3 - '@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.26.0)': + '@inquirer/rawlist@5.3.3': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@inquirer/core': 12.0.1 + '@inquirer/type': 4.1.0 - '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.26.0)': + '@inquirer/search@4.3.1': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@inquirer/core': 12.0.1 + '@inquirer/figures': 2.0.8 + '@inquirer/type': 4.1.0 - '@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.0)': + '@inquirer/select@5.2.3': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - transitivePeerDependencies: - - supports-color + '@inquirer/ansi': 2.0.7 + '@inquirer/core': 12.0.1 + '@inquirer/figures': 2.0.8 + '@inquirer/type': 4.1.0 - '@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-template-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-typeof-symbol@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-unicode-property-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/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/plugin-transform-unicode-sets-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 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color + '@inquirer/type@4.1.0': {} - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.0)': + '@jridgewell/gen-mapping@0.3.13': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/types': 7.26.3 - esutils: 2.0.3 + '@jridgewell/sourcemap-codec': 1.6.0 + '@jridgewell/trace-mapping': 0.3.31 - '@babel/register@7.25.9(@babel/core@7.26.0)': + '@jridgewell/gen-mapping@0.3.8': dependencies: - '@babel/core': 7.26.0 - clone-deep: 4.0.1 - find-cache-dir: 2.1.0 - make-dir: 2.1.0 - pirates: 4.0.6 - source-map-support: 0.5.21 + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 - '@babel/runtime@7.26.0': - dependencies: - regenerator-runtime: 0.14.1 + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} - '@babel/template@7.25.9': + '@jridgewell/source-map@0.3.6': dependencies: - '@babel/code-frame': 7.26.2 - '@babel/parser': 7.26.3 - '@babel/types': 7.26.3 + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/sourcemap-codec@1.6.0': {} - '@babel/traverse@7.26.4': + '@jridgewell/trace-mapping@0.3.25': dependencies: - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.3 - '@babel/parser': 7.26.3 - '@babel/template': 7.25.9 - '@babel/types': 7.26.3 - debug: 4.4.0(supports-color@8.1.1) - globals: 11.12.0 - transitivePeerDependencies: - - supports-color + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 - '@babel/types@7.26.3': + '@jridgewell/trace-mapping@0.3.31': dependencies: - '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 - '@eslint-community/eslint-utils@4.4.1(eslint@8.57.1)': + '@loaderkit/resolve@1.0.6': dependencies: - eslint: 8.57.1 - eslint-visitor-keys: 3.4.3 + '@braidai/lang': 1.1.2 + + '@napi-rs/lzma-linux-x64-gnu@1.5.1': + optional: true + + '@next/env@16.3.3': {} + + '@next/swc-darwin-arm64@16.3.3': + optional: true + + '@next/swc-darwin-x64@16.3.3': + optional: true + + '@next/swc-linux-arm64-gnu@16.3.3': + optional: true + + '@next/swc-linux-arm64-musl@16.3.3': + optional: true + + '@next/swc-linux-x64-gnu@16.3.3': + optional: true + + '@next/swc-linux-x64-musl@16.3.3': + optional: true + + '@next/swc-win32-arm64-msvc@16.3.3': + optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@9.17.0)': + '@next/swc-win32-x64-msvc@16.3.3': + optional: true + + '@oxc-project/types@0.147.0': {} + + '@publint/pack@0.1.7': dependencies: - eslint: 9.17.0 - eslint-visitor-keys: 3.4.3 + tinyexec: 1.3.0 + + '@rolldown/binding-android-arm-eabi@1.2.6': + optional: true + + '@rolldown/binding-android-arm64@1.2.6': + optional: true + + '@rolldown/binding-darwin-arm64@1.2.6': + optional: true + + '@rolldown/binding-darwin-x64@1.2.6': + optional: true - '@eslint-community/regexpp@4.12.1': {} + '@rolldown/binding-freebsd-x64@1.2.6': + optional: true + + '@rolldown/binding-linux-arm-gnueabihf@1.2.6': + optional: true + + '@rolldown/binding-linux-arm64-gnu@1.2.6': + optional: true + + '@rolldown/binding-linux-arm64-musl@1.2.6': + optional: true + + '@rolldown/binding-linux-ppc64-gnu@1.2.6': + optional: true + + '@rolldown/binding-linux-s390x-gnu@1.2.6': + optional: true + + '@rolldown/binding-linux-x64-gnu@1.2.6': + optional: true - '@eslint/config-array@0.19.1': + '@rolldown/binding-linux-x64-musl@1.2.6': + optional: true + + '@rolldown/binding-openharmony-arm64@1.2.6': + optional: true + + '@rolldown/binding-win32-arm64-msvc@1.2.6': + optional: true + + '@rolldown/binding-win32-x64-msvc@1.2.6': + optional: true + + '@rolldown/pluginutils@1.0.1': {} + + '@rollup/plugin-commonjs@29.0.3(rollup@4.63.1)': dependencies: - '@eslint/object-schema': 2.1.5 - debug: 4.4.0(supports-color@8.1.1) - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color + '@rollup/pluginutils': 5.1.4(rollup@4.63.1) + commondir: 1.0.1 + estree-walker: 2.0.2 + fdir: 6.4.2(picomatch@4.0.2) + is-reference: 1.2.1 + magic-string: 0.30.17 + picomatch: 4.0.2 + optionalDependencies: + rollup: 4.63.1 - '@eslint/core@0.9.1': + '@rollup/plugin-node-resolve@16.0.3(rollup@4.63.1)': dependencies: - '@types/json-schema': 7.0.15 + '@rollup/pluginutils': 5.1.4(rollup@4.63.1) + '@types/resolve': 1.20.2 + deepmerge: 4.3.1 + is-module: 1.0.0 + resolve: 1.22.10 + optionalDependencies: + rollup: 4.63.1 - '@eslint/eslintrc@2.1.4': + '@rollup/plugin-terser@1.0.0(rollup@4.63.1)': dependencies: - ajv: 6.12.6 - debug: 4.4.0(supports-color@8.1.1) - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.2 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color + serialize-javascript: 7.1.1 + smob: 1.5.0 + terser: 5.37.0 + optionalDependencies: + rollup: 4.63.1 - '@eslint/eslintrc@3.2.0': + '@rollup/plugin-typescript@12.3.0(rollup@4.63.1)(tslib@2.8.1)(typescript@5.9.3)': dependencies: - ajv: 6.12.6 - debug: 4.4.0(supports-color@8.1.1) - espree: 10.3.0 - globals: 14.0.0 - ignore: 5.3.2 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color + '@rollup/pluginutils': 5.1.4(rollup@4.63.1) + resolve: 1.22.10 + typescript: 5.9.3 + optionalDependencies: + rollup: 4.63.1 + tslib: 2.8.1 + + '@rollup/pluginutils@5.1.4(rollup@4.63.1)': + dependencies: + '@types/estree': 1.0.9 + estree-walker: 2.0.2 + picomatch: 4.0.7 + optionalDependencies: + rollup: 4.63.1 - '@eslint/js@8.57.1': {} + '@rollup/rollup-android-arm-eabi@4.63.1': + optional: true - '@eslint/js@9.17.0': {} + '@rollup/rollup-android-arm64@4.63.1': + optional: true - '@eslint/object-schema@2.1.5': {} + '@rollup/rollup-darwin-arm64@4.63.1': + optional: true - '@eslint/plugin-kit@0.2.4': - dependencies: - levn: 0.4.1 + '@rollup/rollup-darwin-x64@4.63.1': + optional: true - '@fleetbase/sdk@1.2.13': - dependencies: - '@babel/runtime': 7.26.0 - axios: 1.7.9 + '@rollup/rollup-freebsd-arm64@4.63.1': + optional: true + + '@rollup/rollup-freebsd-x64@4.63.1': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.63.1': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.63.1': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.63.1': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.63.1': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.63.1': + optional: true + + '@rollup/rollup-linux-loong64-musl@4.63.1': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.63.1': + optional: true + + '@rollup/rollup-linux-ppc64-musl@4.63.1': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.63.1': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.63.1': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.63.1': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.63.1': + optional: true + + '@rollup/rollup-linux-x64-musl@4.63.1': + optional: true + + '@rollup/rollup-openbsd-x64@4.63.1': + optional: true + + '@rollup/rollup-openharmony-arm64@4.63.1': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.63.1': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.63.1': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.63.1': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.63.1': + optional: true + + '@sec-ant/readable-stream@0.4.1': {} + + '@sindresorhus/is@4.6.0': {} + + '@sindresorhus/merge-streams@4.0.0': {} + + '@standard-schema/spec@1.1.0': {} + + '@stryker-mutator/api@10.0.0': + dependencies: + mutation-testing-metrics: 3.8.4 + mutation-testing-report-schema: 3.8.4 + tslib: 2.8.1 + typed-inject: 5.0.0 + + '@stryker-mutator/core@10.0.0': + dependencies: + '@inquirer/prompts': 8.7.0 + '@stryker-mutator/api': 10.0.0 + '@stryker-mutator/instrumenter': 10.0.0 + '@stryker-mutator/util': 10.0.0 + ajv: 8.20.0 + chalk: 5.6.2 + commander: 14.0.3 + diff-match-patch: 1.0.5 + emoji-regex: 10.6.0 + execa: 9.6.1 + json-rpc-2.0: 1.8.0 + lodash.groupby: 4.6.0 + minimatch: 10.2.6 + mutation-server-protocol: 0.4.1 + mutation-testing-elements: 3.8.4 + mutation-testing-metrics: 3.8.4 + mutation-testing-report-schema: 3.8.4 + npm-run-path: 6.0.0 + progress: 2.0.3 + rxjs: 7.8.2 + semver: 7.8.5 + source-map: 0.7.6 + tree-kill: 1.2.2 + tslib: 2.8.1 + typed-inject: 5.0.0 + typed-rest-client: 2.3.1 transitivePeerDependencies: - - debug + - '@types/node' - '@humanfs/core@0.19.1': {} + '@stryker-mutator/instrumenter@10.0.0': + dependencies: + '@babel/core': 8.0.1 + '@babel/generator': 8.0.0 + '@babel/parser': 8.0.4 + '@babel/plugin-proposal-decorators': 8.0.2(@babel/core@8.0.1) + '@babel/plugin-transform-explicit-resource-management': 8.0.1(@babel/core@8.0.1) + '@babel/preset-react': 8.0.1(@babel/core@8.0.1) + '@babel/preset-typescript': 8.0.1(@babel/core@8.0.1) + '@babel/traverse': 8.0.4 + '@stryker-mutator/api': 10.0.0 + '@stryker-mutator/util': 10.0.0 + angular-html-parser: 10.11.0 + semver: 7.8.5 + tslib: 2.8.1 + weapon-regex: 2.0.4 - '@humanfs/node@0.16.6': + '@stryker-mutator/util@10.0.0': {} + + '@stryker-mutator/vitest-runner@10.0.0(@stryker-mutator/core@10.0.0)(vitest@4.1.11)': dependencies: - '@humanfs/core': 0.19.1 - '@humanwhocodes/retry': 0.3.1 + '@stryker-mutator/api': 10.0.0 + '@stryker-mutator/core': 10.0.0 + '@stryker-mutator/util': 10.0.0 + semver: 7.8.5 + tslib: 2.8.1 + vitest: 4.1.11(@vitest/coverage-v8@4.1.11)(vite@8.2.2(terser@5.51.2)(yaml@2.9.0)) - '@humanwhocodes/config-array@0.13.0': + '@swc/helpers@0.5.23': dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.4.0(supports-color@8.1.1) - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color + tslib: 2.8.1 - '@humanwhocodes/module-importer@1.0.1': {} + '@types/chai@5.2.3': + dependencies: + '@types/deep-eql': 4.0.2 + assertion-error: 2.0.1 - '@humanwhocodes/object-schema@2.0.3': {} + '@types/deep-eql@4.0.2': {} - '@humanwhocodes/retry@0.3.1': {} + '@types/esrecurse@4.3.1': {} - '@humanwhocodes/retry@0.4.1': {} + '@types/estree@1.0.6': {} - '@isaacs/cliui@8.0.2': - dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 + '@types/estree@1.0.9': {} - '@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 + '@types/gensync@1.0.5': {} - '@jridgewell/resolve-uri@3.1.2': {} + '@types/jsesc@2.5.1': {} - '@jridgewell/set-array@1.2.1': {} + '@types/json-schema@7.0.15': {} - '@jridgewell/source-map@0.3.6': + '@types/node@12.20.55': {} + + '@types/resolve@1.20.2': {} + + '@typescript-eslint/eslint-plugin@8.68.0(@typescript-eslint/parser@8.68.0(eslint@10.9.1)(typescript@5.9.3))(eslint@10.9.1)(typescript@5.9.3)': dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.68.0(eslint@10.9.1)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.68.0 + '@typescript-eslint/type-utils': 8.68.0(eslint@10.9.1)(typescript@5.9.3) + '@typescript-eslint/utils': 8.68.0(eslint@10.9.1)(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.68.0 + eslint: 10.9.1 + ignore: 7.0.8 + natural-compare: 1.4.0 + ts-api-utils: 2.5.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color - '@jridgewell/sourcemap-codec@1.5.0': {} + '@typescript-eslint/parser@8.68.0(eslint@10.9.1)(typescript@5.9.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.68.0 + '@typescript-eslint/types': 8.68.0 + '@typescript-eslint/typescript-estree': 8.68.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.68.0 + debug: 4.4.3 + eslint: 10.9.1 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color - '@jridgewell/trace-mapping@0.3.25': + '@typescript-eslint/project-service@8.68.0(typescript@5.9.3)': dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + '@typescript-eslint/tsconfig-utils': 8.68.0(typescript@5.9.3) + '@typescript-eslint/types': 8.68.0 + debug: 4.4.3 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color - '@nodelib/fs.scandir@2.1.5': + '@typescript-eslint/scope-manager@8.68.0': dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 + '@typescript-eslint/types': 8.68.0 + '@typescript-eslint/visitor-keys': 8.68.0 - '@nodelib/fs.stat@2.0.5': {} + '@typescript-eslint/tsconfig-utils@8.68.0(typescript@5.9.3)': + dependencies: + typescript: 5.9.3 - '@nodelib/fs.walk@1.2.8': + '@typescript-eslint/type-utils@8.68.0(eslint@10.9.1)(typescript@5.9.3)': dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.18.0 + '@typescript-eslint/types': 8.68.0 + '@typescript-eslint/typescript-estree': 8.68.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.68.0(eslint@10.9.1)(typescript@5.9.3) + debug: 4.4.3 + eslint: 10.9.1 + ts-api-utils: 2.5.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color - '@pkgjs/parseargs@0.11.0': - optional: true + '@typescript-eslint/types@8.68.0': {} + + '@typescript-eslint/typescript-estree@8.68.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/project-service': 8.68.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.68.0(typescript@5.9.3) + '@typescript-eslint/types': 8.68.0 + '@typescript-eslint/visitor-keys': 8.68.0 + debug: 4.4.3 + minimatch: 10.2.6 + semver: 7.8.5 + tinyglobby: 0.2.17 + ts-api-utils: 2.5.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color - '@rollup/plugin-babel@6.0.4(@babel/core@7.26.0)(rollup@4.29.1)': + '@typescript-eslint/utils@8.68.0(eslint@10.9.1)(typescript@5.9.3)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-imports': 7.25.9 - '@rollup/pluginutils': 5.1.4(rollup@4.29.1) - optionalDependencies: - rollup: 4.29.1 + '@eslint-community/eslint-utils': 4.10.1(eslint@10.9.1) + '@typescript-eslint/scope-manager': 8.68.0 + '@typescript-eslint/types': 8.68.0 + '@typescript-eslint/typescript-estree': 8.68.0(typescript@5.9.3) + eslint: 10.9.1 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@rollup/plugin-commonjs@28.0.2(rollup@4.29.1)': + '@typescript-eslint/visitor-keys@8.68.0': dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.29.1) - commondir: 1.0.1 - estree-walker: 2.0.2 - fdir: 6.4.2(picomatch@4.0.2) - is-reference: 1.2.1 - magic-string: 0.30.17 - picomatch: 4.0.2 - optionalDependencies: - rollup: 4.29.1 + '@typescript-eslint/types': 8.68.0 + eslint-visitor-keys: 5.0.1 - '@rollup/plugin-eslint@9.0.5(rollup@4.29.1)': + '@vitest/coverage-v8@4.1.11(vitest@4.1.11)': dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.29.1) - eslint: 8.57.1 - optionalDependencies: - rollup: 4.29.1 - transitivePeerDependencies: - - supports-color + '@bcoe/v8-coverage': 1.0.2 + '@vitest/utils': 4.1.11 + ast-v8-to-istanbul: 1.0.5 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-report: 3.0.1 + istanbul-reports: 3.2.0 + magicast: 0.5.4 + obug: 2.1.4 + std-env: 4.2.0 + tinyrainbow: 3.1.1 + vitest: 4.1.11(@vitest/coverage-v8@4.1.11)(vite@8.2.2(terser@5.51.2)(yaml@2.9.0)) - '@rollup/plugin-node-resolve@16.0.0(rollup@4.29.1)': + '@vitest/expect@4.1.11': dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.29.1) - '@types/resolve': 1.20.2 - deepmerge: 4.3.1 - is-module: 1.0.0 - resolve: 1.22.10 - optionalDependencies: - rollup: 4.29.1 + '@standard-schema/spec': 1.1.0 + '@types/chai': 5.2.3 + '@vitest/spy': 4.1.11 + '@vitest/utils': 4.1.11 + chai: 6.2.2 + tinyrainbow: 3.1.1 - '@rollup/plugin-terser@0.4.4(rollup@4.29.1)': + '@vitest/mocker@4.1.11(vite@8.2.2(terser@5.51.2)(yaml@2.9.0))': dependencies: - serialize-javascript: 6.0.2 - smob: 1.5.0 - terser: 5.37.0 + '@vitest/spy': 4.1.11 + estree-walker: 3.0.3 + magic-string: 0.30.21 optionalDependencies: - rollup: 4.29.1 + vite: 8.2.2(terser@5.51.2)(yaml@2.9.0) - '@rollup/pluginutils@5.1.4(rollup@4.29.1)': + '@vitest/pretty-format@4.1.11': dependencies: - '@types/estree': 1.0.6 - estree-walker: 2.0.2 - picomatch: 4.0.2 - optionalDependencies: - rollup: 4.29.1 + tinyrainbow: 3.1.1 - '@rollup/rollup-android-arm-eabi@4.29.1': - optional: true + '@vitest/runner@4.1.11': + dependencies: + '@vitest/utils': 4.1.11 + pathe: 2.0.3 - '@rollup/rollup-android-arm64@4.29.1': - optional: true + '@vitest/snapshot@4.1.11': + dependencies: + '@vitest/pretty-format': 4.1.11 + '@vitest/utils': 4.1.11 + magic-string: 0.30.21 + pathe: 2.0.3 - '@rollup/rollup-darwin-arm64@4.29.1': - optional: true + '@vitest/spy@4.1.11': {} - '@rollup/rollup-darwin-x64@4.29.1': - optional: true + '@vitest/utils@4.1.11': + dependencies: + '@vitest/pretty-format': 4.1.11 + convert-source-map: 2.0.0 + tinyrainbow: 3.1.1 - '@rollup/rollup-freebsd-arm64@4.29.1': - optional: true + '@webassemblyjs/ast@1.14.1': + dependencies: + '@webassemblyjs/helper-numbers': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@rollup/rollup-freebsd-x64@4.29.1': - optional: true + '@webassemblyjs/floating-point-hex-parser@1.13.2': {} - '@rollup/rollup-linux-arm-gnueabihf@4.29.1': - optional: true + '@webassemblyjs/helper-api-error@1.13.2': {} - '@rollup/rollup-linux-arm-musleabihf@4.29.1': - optional: true + '@webassemblyjs/helper-buffer@1.14.1': {} - '@rollup/rollup-linux-arm64-gnu@4.29.1': - optional: true + '@webassemblyjs/helper-numbers@1.13.2': + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.13.2 + '@webassemblyjs/helper-api-error': 1.13.2 + '@xtuc/long': 4.2.2 - '@rollup/rollup-linux-arm64-musl@4.29.1': - optional: true + '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} - '@rollup/rollup-linux-loongarch64-gnu@4.29.1': - optional: true + '@webassemblyjs/helper-wasm-section@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/wasm-gen': 1.14.1 - '@rollup/rollup-linux-powerpc64le-gnu@4.29.1': - optional: true + '@webassemblyjs/ieee754@1.13.2': + dependencies: + '@xtuc/ieee754': 1.2.0 - '@rollup/rollup-linux-riscv64-gnu@4.29.1': - optional: true + '@webassemblyjs/leb128@1.13.2': + dependencies: + '@xtuc/long': 4.2.2 - '@rollup/rollup-linux-s390x-gnu@4.29.1': - optional: true + '@webassemblyjs/utf8@1.13.2': {} - '@rollup/rollup-linux-x64-gnu@4.29.1': - optional: true + '@webassemblyjs/wasm-edit@1.14.1': + dependencies: + '@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 - '@rollup/rollup-linux-x64-musl@4.29.1': - optional: true + '@webassemblyjs/wasm-gen@1.14.1': + dependencies: + '@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 - '@rollup/rollup-win32-arm64-msvc@4.29.1': - optional: true + '@webassemblyjs/wasm-opt@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 - '@rollup/rollup-win32-ia32-msvc@4.29.1': - optional: true + '@webassemblyjs/wasm-parser@1.14.1': + dependencies: + '@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 - '@rollup/rollup-win32-x64-msvc@4.29.1': - optional: true + '@webassemblyjs/wast-printer@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@xtuc/long': 4.2.2 - '@types/estree@1.0.6': {} + '@xtuc/ieee754@1.2.0': {} - '@types/json-schema@7.0.15': {} + '@xtuc/long@4.2.2': {} - '@types/resolve@1.20.2': {} + acorn-jsx@5.3.2(acorn@8.18.0): + dependencies: + acorn: 8.18.0 - '@ungap/structured-clone@1.2.1': {} + acorn@8.14.0: {} + + acorn@8.18.0: {} - acorn-jsx@5.3.2(acorn@8.14.0): + agent-base@6.0.2: dependencies: - acorn: 8.14.0 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color - acorn@8.14.0: {} + ajv-formats@2.1.1(ajv@8.20.0): + optionalDependencies: + ajv: 8.20.0 + + ajv-keywords@5.1.0(ajv@8.20.0): + dependencies: + ajv: 8.20.0 + fast-deep-equal: 3.1.3 - ajv@6.12.6: + ajv@6.15.0: dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ansi-colors@4.1.3: {} + ajv@8.20.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.1.6 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + + angular-html-parser@10.11.0: {} + + ansi-escapes@7.3.0: + dependencies: + environment: 1.1.0 ansi-regex@5.0.1: {} @@ -3116,157 +3905,96 @@ snapshots: dependencies: color-convert: 2.0.1 - ansi-styles@6.2.1: {} - - anymatch@3.1.3: - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - - argparse@2.0.1: {} + any-promise@1.3.0: {} - array-buffer-byte-length@1.0.2: - dependencies: - call-bound: 1.0.3 - is-array-buffer: 3.0.5 + argparse@2.0.1: + optional: true - array.prototype.reduce@1.0.7: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.7 - es-array-method-boxes-properly: 1.0.0 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - is-string: 1.1.1 + assertion-error@2.0.1: {} - arraybuffer.prototype.slice@1.0.4: + ast-v8-to-istanbul@1.0.5: dependencies: - array-buffer-byte-length: 1.0.2 - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.7 - es-errors: 1.3.0 - get-intrinsic: 1.2.6 - is-array-buffer: 3.0.5 - - assertion-error@2.0.1: {} + '@jridgewell/trace-mapping': 0.3.31 + estree-walker: 3.0.3 + js-tokens: 10.0.0 asynckit@0.4.0: {} - available-typed-arrays@1.0.7: - dependencies: - possible-typed-array-names: 1.0.0 - - axios@1.7.9: + axios@1.20.0: dependencies: - follow-redirects: 1.15.9 - form-data: 4.0.1 - proxy-from-env: 1.1.0 + follow-redirects: 1.16.0 + form-data: 4.0.6 + https-proxy-agent: 5.0.1 + proxy-from-env: 2.1.0 transitivePeerDependencies: - debug - - 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-corejs3@0.10.6(@babel/core@7.26.0): - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) - core-js-compat: 3.39.0 - transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.3(@babel/core@7.26.0): - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color - - balanced-match@1.0.2: {} + balanced-match@4.0.4: {} - binary-extensions@2.3.0: {} - - brace-expansion@1.1.11: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - brace-expansion@2.0.1: - dependencies: - balanced-match: 1.0.2 + baseline-browser-mapping@2.11.20: {} - braces@3.0.3: + brace-expansion@5.0.9: dependencies: - fill-range: 7.1.1 + balanced-match: 4.0.4 - browser-stdout@1.3.1: {} - - browserslist@4.24.3: + browserslist@4.28.8: dependencies: - caniuse-lite: 1.0.30001690 - electron-to-chromium: 1.5.76 - node-releases: 2.0.19 - update-browserslist-db: 1.1.1(browserslist@4.24.3) + baseline-browser-mapping: 2.11.20 + caniuse-lite: 1.0.30001810 + electron-to-chromium: 1.5.417 + node-releases: 2.0.54 + update-browserslist-db: 1.3.2(browserslist@4.28.8) buffer-from@1.1.2: {} - call-bind-apply-helpers@1.0.1: + call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 - call-bind@1.0.8: - dependencies: - call-bind-apply-helpers: 1.0.1 - es-define-property: 1.0.1 - get-intrinsic: 1.2.6 - set-function-length: 1.2.2 - - call-bound@1.0.3: + call-bound@1.0.4: dependencies: - call-bind-apply-helpers: 1.0.1 - get-intrinsic: 1.2.6 + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 - callsites@3.1.0: {} + caniuse-lite@1.0.30001810: {} - camelcase@6.3.0: {} - - caniuse-lite@1.0.30001690: {} - - chai@5.1.2: - dependencies: - assertion-error: 2.0.1 - check-error: 2.1.1 - deep-eql: 5.0.2 - loupe: 3.1.2 - pathval: 2.0.0 + chai@6.2.2: {} chalk@4.1.2: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - check-error@2.1.1: {} + chalk@5.6.2: {} - chokidar@3.6.0: + char-regex@1.0.2: {} + + chardet@2.2.0: {} + + chrome-trace-event@1.0.4: {} + + cjs-module-lexer@1.4.3: {} + + cli-highlight@2.1.11: dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 + chalk: 4.1.2 + highlight.js: 10.7.3 + mz: 2.7.0 + parse5: 5.1.1 + parse5-htmlparser2-tree-adapter: 6.0.1 + yargs: 16.2.0 + + cli-table3@0.6.5: + dependencies: + string-width: 4.2.3 optionalDependencies: - fsevents: 2.3.3 + '@colors/colors': 1.5.0 + + cli-width@4.1.0: {} + + client-only@0.0.1: {} cliui@7.0.4: dependencies: @@ -3290,23 +4018,17 @@ snapshots: dependencies: delayed-stream: 1.0.0 - commander@2.20.3: {} + commander@10.0.1: {} - commander@6.2.1: {} + commander@14.0.3: {} - commondir@1.0.1: {} + commander@2.20.3: {} - concat-map@0.0.1: {} + commondir@1.0.1: {} convert-source-map@2.0.0: {} - core-js-compat@3.39.0: - dependencies: - browserslist: 4.24.3 - - core-js@3.39.0: {} - - countries-list@3.1.1: {} + countries-list@3.4.1: {} cross-spawn@7.0.6: dependencies: @@ -3314,232 +4036,108 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - data-view-buffer@1.0.2: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - data-view-byte-length@1.0.2: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - is-data-view: 1.0.2 + date-fns@4.4.0: {} - data-view-byte-offset@1.0.1: + debug@4.4.0: dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - date-fns@4.1.0: {} + ms: 2.1.3 - debug@4.4.0(supports-color@8.1.1): + debug@4.4.3: dependencies: ms: 2.1.3 - optionalDependencies: - supports-color: 8.1.1 - - decamelize@4.0.0: {} - - deep-eql@5.0.2: {} deep-is@0.1.4: {} deepmerge@4.3.1: {} - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 - - define-properties@1.2.1: - dependencies: - define-data-property: 1.1.4 - has-property-descriptors: 1.0.2 - object-keys: 1.1.1 - delayed-stream@1.0.0: {} - diff@5.2.0: {} - - doctrine@3.0.0: + des.js@1.1.0: dependencies: - esutils: 2.0.3 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + + detect-libc@2.1.2: {} - dotenv@16.4.7: {} + diff-match-patch@1.0.5: {} dunder-proto@1.0.1: dependencies: - call-bind-apply-helpers: 1.0.1 + call-bind-apply-helpers: 1.0.2 es-errors: 1.3.0 gopd: 1.2.0 - eastasianwidth@0.2.0: {} + electron-to-chromium@1.5.417: {} - electron-to-chromium@1.5.76: {} + emoji-regex@10.6.0: {} emoji-regex@8.0.0: {} - emoji-regex@9.2.2: {} + emojilib@2.4.0: {} - es-abstract@1.23.7: + empathic@2.0.1: {} + + enhanced-resolve@5.24.5: dependencies: - array-buffer-byte-length: 1.0.2 - arraybuffer.prototype.slice: 1.0.4 - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.3 - data-view-buffer: 1.0.2 - data-view-byte-length: 1.0.2 - data-view-byte-offset: 1.0.1 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - es-set-tostringtag: 2.0.3 - es-to-primitive: 1.3.0 - function.prototype.name: 1.1.8 - get-intrinsic: 1.2.6 - get-symbol-description: 1.1.0 - globalthis: 1.0.4 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - has-proto: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - internal-slot: 1.1.0 - is-array-buffer: 3.0.5 - is-callable: 1.2.7 - is-data-view: 1.0.2 - is-regex: 1.2.1 - is-shared-array-buffer: 1.0.4 - is-string: 1.1.1 - is-typed-array: 1.1.15 - is-weakref: 1.1.0 - math-intrinsics: 1.1.0 - object-inspect: 1.13.3 - object-keys: 1.1.1 - object.assign: 4.1.7 - regexp.prototype.flags: 1.5.3 - safe-array-concat: 1.1.3 - safe-regex-test: 1.1.0 - string.prototype.trim: 1.2.10 - string.prototype.trimend: 1.0.9 - string.prototype.trimstart: 1.0.8 - typed-array-buffer: 1.0.3 - typed-array-byte-length: 1.0.3 - typed-array-byte-offset: 1.0.4 - typed-array-length: 1.0.7 - unbox-primitive: 1.1.0 - which-typed-array: 1.1.18 - - es-array-method-boxes-properly@1.0.0: {} + graceful-fs: 4.2.11 + tapable: 2.3.3 + + envinfo@7.21.0: {} + + environment@1.1.0: {} es-define-property@1.0.1: {} es-errors@1.3.0: {} - es-object-atoms@1.0.0: + es-module-lexer@2.3.2: {} + + es-object-atoms@1.1.2: dependencies: es-errors: 1.3.0 - es-set-tostringtag@2.0.3: + es-set-tostringtag@2.1.0: dependencies: - get-intrinsic: 1.2.6 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 has-tostringtag: 1.0.2 - hasown: 2.0.2 - - es-to-primitive@1.3.0: - dependencies: - is-callable: 1.2.7 - is-date-object: 1.1.0 - is-symbol: 1.1.1 + hasown: 2.0.4 escalade@3.2.0: {} escape-string-regexp@4.0.0: {} - eslint-scope@7.2.2: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-scope@8.2.0: + eslint-scope@9.1.2: dependencies: + '@types/esrecurse': 4.3.1 + '@types/estree': 1.0.9 esrecurse: 4.3.0 estraverse: 5.3.0 eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.2.0: {} - - eslint@8.57.1: - dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) - '@eslint-community/regexpp': 4.12.1 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.1 - '@humanwhocodes/config-array': 0.13.0 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.1 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.4.0(supports-color@8.1.1) - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.6.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color + eslint-visitor-keys@5.0.1: {} - eslint@9.17.0: + eslint@10.9.1: dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.17.0) - '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.19.1 - '@eslint/core': 0.9.1 - '@eslint/eslintrc': 3.2.0 - '@eslint/js': 9.17.0 - '@eslint/plugin-kit': 0.2.4 + '@eslint-community/eslint-utils': 4.10.1(eslint@10.9.1) + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.23.5 + '@eslint/config-helpers': 0.7.0 + '@eslint/core': 1.2.1 + '@eslint/plugin-kit': 0.7.2 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.1 + '@humanwhocodes/retry': 0.4.3 '@types/estree': 1.0.6 - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - chalk: 4.1.2 + ajv: 6.15.0 cross-spawn: 7.0.6 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 escape-string-regexp: 4.0.0 - eslint-scope: 8.2.0 - eslint-visitor-keys: 4.2.0 - espree: 10.3.0 - esquery: 1.6.0 + eslint-scope: 9.1.2 + eslint-visitor-keys: 5.0.1 + espree: 11.2.0 + esquery: 1.7.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 8.0.0 @@ -3549,26 +4147,19 @@ snapshots: imurmurhash: 0.1.4 is-glob: 4.0.3 json-stable-stringify-without-jsonify: 1.0.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 + minimatch: 10.2.6 natural-compare: 1.4.0 optionator: 0.9.4 transitivePeerDependencies: - supports-color - espree@10.3.0: - dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) - eslint-visitor-keys: 4.2.0 - - espree@9.6.1: + espree@11.2.0: dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) - eslint-visitor-keys: 3.4.3 + acorn: 8.18.0 + acorn-jsx: 5.3.2(acorn@8.18.0) + eslint-visitor-keys: 5.0.1 - esquery@1.6.0: + esquery@1.7.0: dependencies: estraverse: 5.3.0 @@ -3580,55 +4171,77 @@ snapshots: estree-walker@2.0.2: {} + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.9 + esutils@2.0.3: {} + events@3.3.0: {} + + execa@9.6.1: + dependencies: + '@sindresorhus/merge-streams': 4.0.0 + cross-spawn: 7.0.6 + figures: 6.1.0 + get-stream: 9.0.1 + human-signals: 8.0.1 + is-plain-obj: 4.1.0 + is-stream: 4.0.1 + npm-run-path: 6.0.0 + pretty-ms: 9.3.1 + signal-exit: 4.1.0 + strip-final-newline: 4.0.0 + yoctocolors: 2.2.0 + + expect-type@1.4.0: {} + fast-deep-equal@3.1.3: {} fast-json-stable-stringify@2.1.0: {} fast-levenshtein@2.0.6: {} - fastq@1.18.0: + fast-string-truncated-width@3.0.3: {} + + fast-string-width@3.0.2: + dependencies: + fast-string-truncated-width: 3.0.3 + + fast-uri@3.1.6: {} + + fast-wrap-ansi@0.2.2: dependencies: - reusify: 1.0.4 + fast-string-width: 3.0.2 fdir@6.4.2(picomatch@4.0.2): optionalDependencies: picomatch: 4.0.2 - file-entry-cache@6.0.1: - dependencies: - flat-cache: 3.2.0 + fdir@6.5.0(picomatch@4.0.7): + optionalDependencies: + picomatch: 4.0.7 - file-entry-cache@8.0.0: - dependencies: - flat-cache: 4.0.1 + fflate@0.8.3: {} - fill-range@7.1.1: + figures@6.1.0: dependencies: - to-regex-range: 5.0.1 + is-unicode-supported: 2.1.0 - find-cache-dir@2.1.0: + file-entry-cache@8.0.0: dependencies: - commondir: 1.0.1 - make-dir: 2.1.0 - pkg-dir: 3.0.0 + flat-cache: 4.0.1 - find-up@3.0.0: + find-up@4.1.0: dependencies: - locate-path: 3.0.0 + locate-path: 5.0.0 + path-exists: 4.0.0 find-up@5.0.0: dependencies: locate-path: 6.0.0 path-exists: 4.0.0 - flat-cache@3.2.0: - dependencies: - flatted: 3.3.2 - keyv: 4.5.4 - rimraf: 3.0.2 - flat-cache@4.0.1: dependencies: flatted: 3.3.2 @@ -3638,121 +4251,60 @@ snapshots: flatted@3.3.2: {} - follow-redirects@1.15.9: {} - - for-each@0.3.3: - dependencies: - is-callable: 1.2.7 - - foreground-child@3.3.0: - dependencies: - cross-spawn: 7.0.6 - signal-exit: 4.1.0 + follow-redirects@1.16.0: {} - form-data@4.0.1: + form-data@4.0.6: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + hasown: 2.0.4 mime-types: 2.1.35 - fs.realpath@1.0.0: {} - fsevents@2.3.3: optional: true function-bind@1.1.2: {} - function.prototype.name@1.1.8: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - define-properties: 1.2.1 - functions-have-names: 1.2.3 - hasown: 2.0.2 - is-callable: 1.2.7 - - functions-have-names@1.2.3: {} - gensync@1.0.0-beta.2: {} get-caller-file@2.0.5: {} - get-intrinsic@1.2.6: + get-intrinsic@1.3.0: dependencies: - call-bind-apply-helpers: 1.0.1 - dunder-proto: 1.0.1 + call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.2 function-bind: 1.1.2 + get-proto: 1.0.1 gopd: 1.2.0 has-symbols: 1.1.0 - hasown: 2.0.2 + hasown: 2.0.4 math-intrinsics: 1.1.0 - get-symbol-description@1.1.0: + get-proto@1.0.1: dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - get-intrinsic: 1.2.6 + dunder-proto: 1.0.1 + es-object-atoms: 1.1.2 - glob-parent@5.1.2: + get-stream@9.0.1: dependencies: - is-glob: 4.0.3 + '@sec-ant/readable-stream': 0.4.1 + is-stream: 4.0.1 glob-parent@6.0.2: dependencies: is-glob: 4.0.3 - glob@10.4.5: - dependencies: - foreground-child: 3.3.0 - jackspeak: 3.4.3 - minimatch: 9.0.5 - minipass: 7.1.2 - package-json-from-dist: 1.0.1 - path-scurry: 1.11.1 - - glob@7.2.3: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - - globals@11.12.0: {} - - globals@13.24.0: - dependencies: - type-fest: 0.20.2 - - globals@14.0.0: {} - - globals@15.14.0: {} - - globalthis@1.0.4: - dependencies: - define-properties: 1.2.1 - gopd: 1.2.0 + globals@17.11.0: {} gopd@1.2.0: {} - graphemer@1.4.0: {} - - has-bigints@1.1.0: {} + graceful-fs@4.2.11: {} has-flag@4.0.0: {} - has-property-descriptors@1.0.2: - dependencies: - es-define-property: 1.0.1 - - has-proto@1.2.0: - dependencies: - dunder-proto: 1.0.1 - has-symbols@1.1.0: {} has-tostringtag@1.0.2: @@ -3763,104 +4315,59 @@ snapshots: dependencies: function-bind: 1.1.2 - he@1.2.0: {} - - homedir-polyfill@1.0.3: + hasown@2.0.4: dependencies: - parse-passwd: 1.0.0 - - ignore@5.3.2: {} + function-bind: 1.1.2 - import-fresh@3.3.0: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 + highlight.js@10.7.3: {} - imurmurhash@0.1.4: {} + html-escaper@2.0.2: {} - inflight@1.0.6: + https-proxy-agent@5.0.1: dependencies: - once: 1.4.0 - wrappy: 1.0.2 + agent-base: 6.0.2 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color - inherits@2.0.4: {} + human-signals@8.0.1: {} - internal-slot@1.1.0: + iconv-lite@0.7.3: dependencies: - es-errors: 1.3.0 - hasown: 2.0.2 - side-channel: 1.1.0 + safer-buffer: 2.1.2 - is-array-buffer@3.0.5: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - get-intrinsic: 1.2.6 + ignore@5.3.2: {} - is-async-function@2.0.0: - dependencies: - has-tostringtag: 1.0.2 + ignore@7.0.8: {} - is-bigint@1.1.0: + import-local@3.2.0: dependencies: - has-bigints: 1.1.0 + pkg-dir: 4.2.0 + resolve-cwd: 3.0.0 - is-binary-path@2.1.0: - dependencies: - binary-extensions: 2.3.0 + import-meta-resolve@4.2.0: {} - is-boolean-object@1.2.1: - dependencies: - call-bound: 1.0.3 - has-tostringtag: 1.0.2 + imurmurhash@0.1.4: {} + + inherits@2.0.4: {} - is-callable@1.2.7: {} + interpret@3.1.1: {} is-core-module@2.16.1: dependencies: hasown: 2.0.2 - is-data-view@1.0.2: - dependencies: - call-bound: 1.0.3 - get-intrinsic: 1.2.6 - is-typed-array: 1.1.15 - - is-date-object@1.1.0: - dependencies: - call-bound: 1.0.3 - has-tostringtag: 1.0.2 - is-extglob@2.1.1: {} - is-finalizationregistry@1.1.1: - dependencies: - call-bound: 1.0.3 - is-fullwidth-code-point@3.0.0: {} - is-generator-function@1.0.10: - dependencies: - has-tostringtag: 1.0.2 - is-glob@4.0.3: dependencies: is-extglob: 2.1.1 - is-map@2.0.3: {} - is-module@1.0.0: {} - is-number-object@1.1.1: - dependencies: - call-bound: 1.0.3 - has-tostringtag: 1.0.2 - - is-number@7.0.0: {} - - is-path-inside@3.0.3: {} - - is-plain-obj@2.1.0: {} + is-plain-obj@4.1.0: {} is-plain-object@2.0.4: dependencies: @@ -3870,73 +4377,52 @@ snapshots: dependencies: '@types/estree': 1.0.6 - is-regex@1.2.1: - dependencies: - call-bound: 1.0.3 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 + is-stream@4.0.1: {} - is-set@2.0.3: {} + is-unicode-supported@2.1.0: {} - is-shared-array-buffer@1.0.4: - dependencies: - call-bound: 1.0.3 + isexe@2.0.0: {} - is-string@1.1.1: - dependencies: - call-bound: 1.0.3 - has-tostringtag: 1.0.2 + isobject@3.0.1: {} - is-symbol@1.1.1: - dependencies: - call-bound: 1.0.3 - has-symbols: 1.1.0 - safe-regex-test: 1.1.0 + istanbul-lib-coverage@3.2.2: {} - is-typed-array@1.1.15: + istanbul-lib-report@3.0.1: dependencies: - which-typed-array: 1.1.18 - - is-unicode-supported@0.1.0: {} - - is-weakmap@2.0.2: {} + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 - is-weakref@1.1.0: + istanbul-reports@3.2.0: dependencies: - call-bound: 1.0.3 + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 - is-weakset@2.0.4: + jest-worker@27.5.1: dependencies: - call-bound: 1.0.3 - get-intrinsic: 1.2.6 - - isarray@2.0.5: {} - - isexe@2.0.0: {} - - isobject@3.0.1: {} + '@types/node': 12.20.55 + merge-stream: 2.0.0 + supports-color: 8.1.1 - jackspeak@3.4.3: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 + js-md4@0.3.2: {} - js-tokens@4.0.0: {} + js-tokens@10.0.0: {} - js-yaml@4.1.0: + js-yaml@4.3.2: dependencies: argparse: 2.0.1 - - jsesc@3.0.2: {} + optional: true jsesc@3.1.0: {} json-buffer@3.0.1: {} + json-rpc-2.0@1.8.0: {} + json-schema-traverse@0.4.1: {} + json-schema-traverse@1.0.0: {} + json-stable-stringify-without-jsonify@1.0.1: {} json5@2.2.3: {} @@ -3952,125 +4438,198 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - locate-path@3.0.0: + lightningcss-android-arm64@1.33.0: + optional: true + + lightningcss-darwin-arm64@1.33.0: + optional: true + + lightningcss-darwin-x64@1.33.0: + optional: true + + lightningcss-freebsd-x64@1.33.0: + optional: true + + lightningcss-linux-arm-gnueabihf@1.33.0: + optional: true + + lightningcss-linux-arm64-gnu@1.33.0: + optional: true + + lightningcss-linux-arm64-musl@1.33.0: + optional: true + + lightningcss-linux-x64-gnu@1.33.0: + optional: true + + lightningcss-linux-x64-musl@1.33.0: + optional: true + + lightningcss-win32-arm64-msvc@1.33.0: + optional: true + + lightningcss-win32-x64-msvc@1.33.0: + optional: true + + lightningcss@1.33.0: dependencies: - p-locate: 3.0.0 - path-exists: 3.0.0 + detect-libc: 2.1.2 + optionalDependencies: + lightningcss-android-arm64: 1.33.0 + lightningcss-darwin-arm64: 1.33.0 + lightningcss-darwin-x64: 1.33.0 + lightningcss-freebsd-x64: 1.33.0 + lightningcss-linux-arm-gnueabihf: 1.33.0 + lightningcss-linux-arm64-gnu: 1.33.0 + lightningcss-linux-arm64-musl: 1.33.0 + lightningcss-linux-x64-gnu: 1.33.0 + lightningcss-linux-x64-musl: 1.33.0 + lightningcss-win32-arm64-msvc: 1.33.0 + lightningcss-win32-x64-msvc: 1.33.0 + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 locate-path@6.0.0: dependencies: p-locate: 5.0.0 - lodash.debounce@4.0.8: {} + lodash.groupby@4.6.0: {} - lodash.merge@4.6.2: {} + lru-cache@11.5.2: {} - log-symbols@4.1.0: + magic-string@0.30.17: dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 - - loupe@3.1.2: {} + '@jridgewell/sourcemap-codec': 1.5.0 - lru-cache@10.4.3: {} + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.6.0 - lru-cache@5.1.1: + magicast@0.5.4: dependencies: - yallist: 3.1.1 + '@babel/parser': 7.29.8 + '@babel/types': 7.29.8 + source-map-js: 1.2.1 - magic-string@0.30.17: + make-dir@4.0.0: dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + semver: 7.8.5 - make-dir@2.1.0: + marked-terminal@7.3.0(marked@9.1.6): dependencies: - pify: 4.0.1 - semver: 5.7.2 + ansi-escapes: 7.3.0 + ansi-regex: 6.1.0 + chalk: 5.6.2 + cli-highlight: 2.1.11 + cli-table3: 0.6.5 + marked: 9.1.6 + node-emoji: 2.2.0 + supports-hyperlinks: 3.2.0 + + marked@9.1.6: {} math-intrinsics@1.1.0: {} + merge-stream@2.0.0: {} + mime-db@1.52.0: {} + mime-db@1.54.0: {} + mime-types@2.1.35: dependencies: mime-db: 1.52.0 - minimatch@3.1.2: + minimalistic-assert@1.0.1: {} + + minimatch@10.2.6: dependencies: - brace-expansion: 1.1.11 + brace-expansion: 5.0.9 - minimatch@5.1.6: + minimizer-webpack-plugin@5.8.0(webpack@5.110.2): dependencies: - brace-expansion: 2.0.1 + '@jridgewell/trace-mapping': 0.3.31 + jest-worker: 27.5.1 + schema-utils: 4.3.3 + terser: 5.51.2 + webpack: 5.110.2(webpack-cli@7.2.3) - minimatch@9.0.5: + mri@1.2.0: {} + + ms@2.1.3: {} + + mutation-server-protocol@0.4.1: dependencies: - brace-expansion: 2.0.1 + zod: 4.5.4 - minipass@7.1.2: {} + mutation-testing-elements@3.8.4: {} - mocha@11.0.1: + mutation-testing-metrics@3.8.4: dependencies: - ansi-colors: 4.1.3 - browser-stdout: 1.3.1 - chokidar: 3.6.0 - debug: 4.4.0(supports-color@8.1.1) - diff: 5.2.0 - escape-string-regexp: 4.0.0 - find-up: 5.0.0 - glob: 10.4.5 - he: 1.2.0 - js-yaml: 4.1.0 - log-symbols: 4.1.0 - minimatch: 5.1.6 - ms: 2.1.3 - serialize-javascript: 6.0.2 - strip-json-comments: 3.1.1 - supports-color: 8.1.1 - workerpool: 6.5.1 - yargs: 16.2.0 - yargs-parser: 20.2.9 - yargs-unparser: 2.0.0 + mutation-testing-report-schema: 3.8.4 - ms@2.1.3: {} + mutation-testing-report-schema@3.8.4: {} - natural-compare@1.4.0: {} + mute-stream@3.0.0: {} - node-environment-flags@1.0.6: + mz@2.7.0: dependencies: - object.getownpropertydescriptors: 2.1.8 - semver: 5.7.2 - - node-releases@2.0.19: {} + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 - normalize-path@3.0.0: {} + nanoid@3.3.18: {} - object-inspect@1.13.3: {} + natural-compare@1.4.0: {} - object-keys@1.1.1: {} + neo-async@2.6.2: {} - object.assign@4.1.7: + next@16.3.3(@babel/core@8.0.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8): 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 + '@next/env': 16.3.3 + '@swc/helpers': 0.5.23 + baseline-browser-mapping: 2.11.20 + caniuse-lite: 1.0.30001810 + postcss: 8.5.23 + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + styled-jsx: 5.1.6(@babel/core@8.0.1)(react@19.2.8) + optionalDependencies: + '@next/swc-darwin-arm64': 16.3.3 + '@next/swc-darwin-x64': 16.3.3 + '@next/swc-linux-arm64-gnu': 16.3.3 + '@next/swc-linux-arm64-musl': 16.3.3 + '@next/swc-linux-x64-gnu': 16.3.3 + '@next/swc-linux-x64-musl': 16.3.3 + '@next/swc-win32-arm64-msvc': 16.3.3 + '@next/swc-win32-x64-msvc': 16.3.3 + sharp: 0.35.4 + transitivePeerDependencies: + - '@babel/core' + - '@types/node' + - babel-plugin-macros - object.getownpropertydescriptors@2.1.8: + node-emoji@2.2.0: dependencies: - array.prototype.reduce: 1.0.7 - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.7 - es-object-atoms: 1.0.0 - gopd: 1.2.0 - safe-array-concat: 1.1.3 + '@sindresorhus/is': 4.6.0 + char-regex: 1.0.2 + emojilib: 2.4.0 + skin-tone: 2.0.0 + + node-releases@2.0.54: {} - once@1.4.0: + npm-run-path@6.0.0: dependencies: - wrappy: 1.0.2 + path-key: 4.0.0 + unicorn-magic: 0.3.0 + + object-assign@4.1.1: {} + + object-inspect@1.13.4: {} + + obug@2.1.4: {} optionator@0.9.4: dependencies: @@ -4089,7 +4648,7 @@ snapshots: dependencies: yocto-queue: 0.1.0 - p-locate@3.0.0: + p-locate@4.1.0: dependencies: p-limit: 2.3.0 @@ -4099,113 +4658,96 @@ snapshots: p-try@2.2.0: {} - package-json-from-dist@1.0.1: {} + package-manager-detector@1.8.0: {} + + parse-ms@4.0.0: {} - parent-module@1.0.1: + parse5-htmlparser2-tree-adapter@6.0.1: dependencies: - callsites: 3.1.0 + parse5: 6.0.1 - parse-passwd@1.0.0: {} + parse5@5.1.1: {} - path-exists@3.0.0: {} + parse5@6.0.1: {} path-exists@4.0.0: {} - path-is-absolute@1.0.1: {} - path-key@3.1.1: {} - path-parse@1.0.7: {} + path-key@4.0.0: {} - path-scurry@1.11.1: - dependencies: - lru-cache: 10.4.3 - minipass: 7.1.2 + path-parse@1.0.7: {} - pathval@2.0.0: {} + pathe@2.0.3: {} picocolors@1.1.1: {} - picomatch@2.3.1: {} - picomatch@4.0.2: {} - pify@4.0.1: {} + picomatch@4.0.7: {} - pirates@4.0.6: {} + pkg-dir@4.2.0: + dependencies: + find-up: 4.1.0 - pkg-dir@3.0.0: + postcss@8.5.23: dependencies: - find-up: 3.0.0 + nanoid: 3.3.18 + picocolors: 1.1.1 + source-map-js: 1.2.1 - possible-typed-array-names@1.0.0: {} + postcss@8.5.26: + dependencies: + nanoid: 3.3.18 + picocolors: 1.1.1 + source-map-js: 1.2.1 prelude-ls@1.2.1: {} - prettier@3.4.2: {} + prettier@3.9.6: {} - proxy-from-env@1.1.0: {} + pretty-ms@9.3.1: + dependencies: + parse-ms: 4.0.0 - punycode@2.3.1: {} + progress@2.0.3: {} - queue-microtask@1.2.3: {} + proxy-from-env@2.1.0: {} - randombytes@2.1.0: + publint@0.3.24: dependencies: - safe-buffer: 5.2.1 + '@publint/pack': 0.1.7 + package-manager-detector: 1.8.0 + picocolors: 1.1.1 + sade: 1.8.1 - readdirp@3.6.0: - dependencies: - picomatch: 2.3.1 + punycode@2.3.1: {} - reflect.getprototypeof@1.0.9: + qs@6.16.0: dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - dunder-proto: 1.0.1 - es-abstract: 1.23.7 - es-errors: 1.3.0 - get-intrinsic: 1.2.6 - gopd: 1.2.0 - which-builtin-type: 1.2.1 + es-define-property: 1.0.1 + side-channel: 1.1.1 - regenerate-unicode-properties@10.2.0: + react-dom@19.2.8(react@19.2.8): dependencies: - regenerate: 1.4.2 + react: 19.2.8 + scheduler: 0.27.0 - regenerate@1.4.2: {} + react@19.2.8: {} - regenerator-runtime@0.14.1: {} - - regenerator-transform@0.15.2: - dependencies: - '@babel/runtime': 7.26.0 - - regexp.prototype.flags@1.5.3: + rechoir@0.8.0: dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-errors: 1.3.0 - set-function-name: 2.0.2 + resolve: 1.22.10 - regexpu-core@6.2.0: - dependencies: - regenerate: 1.4.2 - regenerate-unicode-properties: 10.2.0 - regjsgen: 0.8.0 - regjsparser: 0.12.0 - unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.2.0 + require-directory@2.1.1: {} - regjsgen@0.8.0: {} + require-from-string@2.0.2: {} - regjsparser@0.12.0: + resolve-cwd@3.0.0: dependencies: - jsesc: 3.0.2 - - require-directory@2.1.1: {} + resolve-from: 5.0.0 - resolve-from@4.0.0: {} + resolve-from@5.0.0: {} resolve@1.22.10: dependencies: @@ -4213,123 +4755,165 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - reusify@1.0.4: {} - - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - - rollup@4.29.1: + rolldown@1.2.6: dependencies: - '@types/estree': 1.0.6 + '@oxc-project/types': 0.147.0 + '@rolldown/pluginutils': 1.0.1 + optionalDependencies: + '@rolldown/binding-android-arm-eabi': 1.2.6 + '@rolldown/binding-android-arm64': 1.2.6 + '@rolldown/binding-darwin-arm64': 1.2.6 + '@rolldown/binding-darwin-x64': 1.2.6 + '@rolldown/binding-freebsd-x64': 1.2.6 + '@rolldown/binding-linux-arm-gnueabihf': 1.2.6 + '@rolldown/binding-linux-arm64-gnu': 1.2.6 + '@rolldown/binding-linux-arm64-musl': 1.2.6 + '@rolldown/binding-linux-ppc64-gnu': 1.2.6 + '@rolldown/binding-linux-s390x-gnu': 1.2.6 + '@rolldown/binding-linux-x64-gnu': 1.2.6 + '@rolldown/binding-linux-x64-musl': 1.2.6 + '@rolldown/binding-openharmony-arm64': 1.2.6 + '@rolldown/binding-win32-arm64-msvc': 1.2.6 + '@rolldown/binding-win32-x64-msvc': 1.2.6 + + rollup@4.63.1: + dependencies: + '@types/estree': 1.0.9 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.29.1 - '@rollup/rollup-android-arm64': 4.29.1 - '@rollup/rollup-darwin-arm64': 4.29.1 - '@rollup/rollup-darwin-x64': 4.29.1 - '@rollup/rollup-freebsd-arm64': 4.29.1 - '@rollup/rollup-freebsd-x64': 4.29.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.29.1 - '@rollup/rollup-linux-arm-musleabihf': 4.29.1 - '@rollup/rollup-linux-arm64-gnu': 4.29.1 - '@rollup/rollup-linux-arm64-musl': 4.29.1 - '@rollup/rollup-linux-loongarch64-gnu': 4.29.1 - '@rollup/rollup-linux-powerpc64le-gnu': 4.29.1 - '@rollup/rollup-linux-riscv64-gnu': 4.29.1 - '@rollup/rollup-linux-s390x-gnu': 4.29.1 - '@rollup/rollup-linux-x64-gnu': 4.29.1 - '@rollup/rollup-linux-x64-musl': 4.29.1 - '@rollup/rollup-win32-arm64-msvc': 4.29.1 - '@rollup/rollup-win32-ia32-msvc': 4.29.1 - '@rollup/rollup-win32-x64-msvc': 4.29.1 + '@napi-rs/lzma-linux-x64-gnu': 1.5.1 + '@rollup/rollup-android-arm-eabi': 4.63.1 + '@rollup/rollup-android-arm64': 4.63.1 + '@rollup/rollup-darwin-arm64': 4.63.1 + '@rollup/rollup-darwin-x64': 4.63.1 + '@rollup/rollup-freebsd-arm64': 4.63.1 + '@rollup/rollup-freebsd-x64': 4.63.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.63.1 + '@rollup/rollup-linux-arm-musleabihf': 4.63.1 + '@rollup/rollup-linux-arm64-gnu': 4.63.1 + '@rollup/rollup-linux-arm64-musl': 4.63.1 + '@rollup/rollup-linux-loong64-gnu': 4.63.1 + '@rollup/rollup-linux-loong64-musl': 4.63.1 + '@rollup/rollup-linux-ppc64-gnu': 4.63.1 + '@rollup/rollup-linux-ppc64-musl': 4.63.1 + '@rollup/rollup-linux-riscv64-gnu': 4.63.1 + '@rollup/rollup-linux-riscv64-musl': 4.63.1 + '@rollup/rollup-linux-s390x-gnu': 4.63.1 + '@rollup/rollup-linux-x64-gnu': 4.63.1 + '@rollup/rollup-linux-x64-musl': 4.63.1 + '@rollup/rollup-openbsd-x64': 4.63.1 + '@rollup/rollup-openharmony-arm64': 4.63.1 + '@rollup/rollup-win32-arm64-msvc': 4.63.1 + '@rollup/rollup-win32-ia32-msvc': 4.63.1 + '@rollup/rollup-win32-x64-gnu': 4.63.1 + '@rollup/rollup-win32-x64-msvc': 4.63.1 fsevents: 2.3.3 - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - - safe-array-concat@1.1.3: + rxjs@7.8.2: dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - get-intrinsic: 1.2.6 - has-symbols: 1.1.0 - isarray: 2.0.5 - - safe-buffer@5.2.1: {} + tslib: 2.8.1 - safe-regex-test@1.1.0: + sade@1.8.1: dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - is-regex: 1.2.1 + mri: 1.2.0 - semver@5.7.2: {} + safer-buffer@2.1.2: {} - semver@6.3.1: {} + scheduler@0.27.0: {} - serialize-javascript@6.0.2: + schema-utils@4.3.3: dependencies: - randombytes: 2.1.0 + '@types/json-schema': 7.0.15 + ajv: 8.20.0 + ajv-formats: 2.1.1(ajv@8.20.0) + ajv-keywords: 5.1.0(ajv@8.20.0) - set-function-length@1.2.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.6 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 + semver@7.8.5: {} - set-function-name@2.0.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - functions-have-names: 1.2.3 - has-property-descriptors: 1.0.2 + serialize-javascript@7.1.1: {} shallow-clone@3.0.1: dependencies: kind-of: 6.0.3 + sharp@0.35.4: + dependencies: + '@img/colour': 1.1.0 + detect-libc: 2.1.2 + semver: 7.8.5 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.35.4 + '@img/sharp-darwin-x64': 0.35.4 + '@img/sharp-freebsd-wasm32': 0.35.4 + '@img/sharp-libvips-darwin-arm64': 1.3.3 + '@img/sharp-libvips-darwin-x64': 1.3.3 + '@img/sharp-libvips-linux-arm': 1.3.3 + '@img/sharp-libvips-linux-arm64': 1.3.3 + '@img/sharp-libvips-linux-ppc64': 1.3.3 + '@img/sharp-libvips-linux-riscv64': 1.3.3 + '@img/sharp-libvips-linux-s390x': 1.3.3 + '@img/sharp-libvips-linux-x64': 1.3.3 + '@img/sharp-libvips-linuxmusl-arm64': 1.3.3 + '@img/sharp-libvips-linuxmusl-x64': 1.3.3 + '@img/sharp-linux-arm': 0.35.4 + '@img/sharp-linux-arm64': 0.35.4 + '@img/sharp-linux-ppc64': 0.35.4 + '@img/sharp-linux-riscv64': 0.35.4 + '@img/sharp-linux-s390x': 0.35.4 + '@img/sharp-linux-x64': 0.35.4 + '@img/sharp-linuxmusl-arm64': 0.35.4 + '@img/sharp-linuxmusl-x64': 0.35.4 + '@img/sharp-webcontainers-wasm32': 0.35.4 + '@img/sharp-win32-arm64': 0.35.4 + '@img/sharp-win32-ia32': 0.35.4 + '@img/sharp-win32-x64': 0.35.4 + optional: true + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 shebang-regex@3.0.0: {} - side-channel-list@1.0.0: + side-channel-list@1.0.1: dependencies: es-errors: 1.3.0 - object-inspect: 1.13.3 + object-inspect: 1.13.4 side-channel-map@1.0.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 - get-intrinsic: 1.2.6 - object-inspect: 1.13.3 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 side-channel-weakmap@1.0.2: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 - get-intrinsic: 1.2.6 - object-inspect: 1.13.3 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 side-channel-map: 1.0.1 - side-channel@1.1.0: + side-channel@1.1.1: dependencies: es-errors: 1.3.0 - object-inspect: 1.13.3 - side-channel-list: 1.0.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.1 side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 + siginfo@2.0.0: {} + signal-exit@4.1.0: {} + skin-tone@2.0.0: + dependencies: + unicode-emoji-modifier-base: 1.0.0 + smob@1.5.0: {} + source-map-js@1.2.1: {} + source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 @@ -4337,50 +4921,30 @@ snapshots: source-map@0.6.1: {} + source-map@0.7.6: {} + + stackback@0.0.2: {} + + std-env@4.2.0: {} + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - string-width@5.1.2: - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.0 - - string.prototype.trim@1.2.10: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - define-data-property: 1.1.4 - define-properties: 1.2.1 - es-abstract: 1.23.7 - es-object-atoms: 1.0.0 - has-property-descriptors: 1.0.2 - - string.prototype.trimend@1.0.9: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - define-properties: 1.2.1 - es-object-atoms: 1.0.0 - - string.prototype.trimstart@1.0.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-object-atoms: 1.0.0 - strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 - strip-ansi@7.1.0: - dependencies: - ansi-regex: 6.1.0 + strip-final-newline@4.0.0: {} - strip-json-comments@3.1.1: {} + styled-jsx@5.1.6(@babel/core@8.0.1)(react@19.2.8): + dependencies: + client-only: 0.0.1 + react: 19.2.8 + optionalDependencies: + '@babel/core': 8.0.1 supports-color@7.2.0: dependencies: @@ -4390,8 +4954,15 @@ snapshots: dependencies: has-flag: 4.0.0 + supports-hyperlinks@3.2.0: + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + supports-preserve-symlinks-flag@1.0.0: {} + tapable@2.3.3: {} + terser@5.37.0: dependencies: '@jridgewell/source-map': 0.3.6 @@ -4399,72 +4970,80 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 - text-table@0.2.0: {} + terser@5.51.2: + dependencies: + '@jridgewell/source-map': 0.3.6 + acorn: 8.18.0 + commander: 2.20.3 + source-map-support: 0.5.21 - to-regex-range@5.0.1: + thenify-all@1.6.0: dependencies: - is-number: 7.0.0 + thenify: 3.3.1 - type-check@0.4.0: + thenify@3.3.1: dependencies: - prelude-ls: 1.2.1 + any-promise: 1.3.0 - type-fest@0.20.2: {} + tinybench@2.9.0: {} - typed-array-buffer@1.0.3: + tinyexec@1.3.0: {} + + tinyglobby@0.2.17: dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - is-typed-array: 1.1.15 + fdir: 6.5.0(picomatch@4.0.7) + picomatch: 4.0.7 + + tinyrainbow@3.1.1: {} + + tree-kill@1.2.2: {} - typed-array-byte-length@1.0.3: + ts-api-utils@2.5.0(typescript@5.9.3): dependencies: - call-bind: 1.0.8 - for-each: 0.3.3 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 + typescript: 5.9.3 + + tslib@2.8.1: {} - typed-array-byte-offset@1.0.4: + tunnel@0.0.6: {} + + type-check@0.4.0: dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - for-each: 0.3.3 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - reflect.getprototypeof: 1.0.9 + prelude-ls: 1.2.1 - typed-array-length@1.0.7: + typed-inject@5.0.0: {} + + typed-rest-client@2.3.1: dependencies: - call-bind: 1.0.8 - for-each: 0.3.3 - gopd: 1.2.0 - is-typed-array: 1.1.15 - possible-typed-array-names: 1.0.0 - reflect.getprototypeof: 1.0.9 + des.js: 1.1.0 + js-md4: 0.3.2 + qs: 6.16.0 + tunnel: 0.0.6 + underscore: 1.13.8 - unbox-primitive@1.1.0: + typescript-eslint@8.68.0(eslint@10.9.1)(typescript@5.9.3): dependencies: - call-bound: 1.0.3 - has-bigints: 1.1.0 - has-symbols: 1.1.0 - which-boxed-primitive: 1.1.1 + '@typescript-eslint/eslint-plugin': 8.68.0(@typescript-eslint/parser@8.68.0(eslint@10.9.1)(typescript@5.9.3))(eslint@10.9.1)(typescript@5.9.3) + '@typescript-eslint/parser': 8.68.0(eslint@10.9.1)(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.68.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.68.0(eslint@10.9.1)(typescript@5.9.3) + eslint: 10.9.1 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color - unicode-canonical-property-names-ecmascript@2.0.1: {} + typescript@5.6.1-rc: {} - unicode-match-property-ecmascript@2.0.0: - dependencies: - unicode-canonical-property-names-ecmascript: 2.0.1 - unicode-property-aliases-ecmascript: 2.1.0 + typescript@5.9.3: {} - unicode-match-property-value-ecmascript@2.2.0: {} + underscore@1.13.8: {} - unicode-property-aliases-ecmascript@2.1.0: {} + unicode-emoji-modifier-base@1.0.0: {} - update-browserslist-db@1.1.1(browserslist@4.24.3): + unicorn-magic@0.3.0: {} + + update-browserslist-db@1.3.2(browserslist@4.28.8): dependencies: - browserslist: 4.24.3 + browserslist: 4.28.8 escalade: 3.2.0 picocolors: 1.1.1 @@ -4472,57 +5051,125 @@ snapshots: dependencies: punycode: 2.3.1 - v8flags@3.2.0: + validate-npm-package-name@5.0.1: {} + + vite@8.2.2(terser@5.51.2)(yaml@2.9.0): + dependencies: + lightningcss: 1.33.0 + picomatch: 4.0.7 + postcss: 8.5.26 + rolldown: 1.2.6 + tinyglobby: 0.2.17 + optionalDependencies: + fsevents: 2.3.3 + terser: 5.51.2 + yaml: 2.9.0 + + vitest@4.1.11(@vitest/coverage-v8@4.1.11)(vite@8.2.2(terser@5.51.2)(yaml@2.9.0)): + dependencies: + '@vitest/expect': 4.1.11 + '@vitest/mocker': 4.1.11(vite@8.2.2(terser@5.51.2)(yaml@2.9.0)) + '@vitest/pretty-format': 4.1.11 + '@vitest/runner': 4.1.11 + '@vitest/snapshot': 4.1.11 + '@vitest/spy': 4.1.11 + '@vitest/utils': 4.1.11 + es-module-lexer: 2.3.2 + expect-type: 1.4.0 + magic-string: 0.30.21 + obug: 2.1.4 + pathe: 2.0.3 + picomatch: 4.0.7 + std-env: 4.2.0 + tinybench: 2.9.0 + tinyexec: 1.3.0 + tinyglobby: 0.2.17 + tinyrainbow: 3.1.1 + vite: 8.2.2(terser@5.51.2)(yaml@2.9.0) + why-is-node-running: 2.3.0 + optionalDependencies: + '@vitest/coverage-v8': 4.1.11(vitest@4.1.11) + transitivePeerDependencies: + - msw + + watchpack@2.5.2: dependencies: - homedir-polyfill: 1.0.3 + graceful-fs: 4.2.11 + + weapon-regex@2.0.4: {} + + webpack-cli@7.2.3(js-yaml@4.3.2)(json5@2.2.3)(webpack@5.110.2): + dependencies: + '@discoveryjs/json-ext': 1.1.0 + commander: 14.0.3 + cross-spawn: 7.0.6 + envinfo: 7.21.0 + import-local: 3.2.0 + interpret: 3.1.1 + rechoir: 0.8.0 + webpack: 5.110.2(webpack-cli@7.2.3) + webpack-merge: 6.0.1 + optionalDependencies: + js-yaml: 4.3.2 + json5: 2.2.3 - which-boxed-primitive@1.1.1: + webpack-merge@6.0.1: dependencies: - is-bigint: 1.1.0 - is-boolean-object: 1.2.1 - is-number-object: 1.1.1 - is-string: 1.1.1 - is-symbol: 1.1.1 + clone-deep: 4.0.1 + flat: 5.0.2 + wildcard: 2.0.1 - which-builtin-type@1.2.1: + webpack-sources@3.5.1: {} + + webpack@5.110.2(webpack-cli@7.2.3): dependencies: - call-bound: 1.0.3 - function.prototype.name: 1.1.8 - has-tostringtag: 1.0.2 - is-async-function: 2.0.0 - is-date-object: 1.1.0 - is-finalizationregistry: 1.1.1 - is-generator-function: 1.0.10 - is-regex: 1.2.1 - is-weakref: 1.1.0 - isarray: 2.0.5 - which-boxed-primitive: 1.1.1 - which-collection: 1.0.2 - which-typed-array: 1.1.18 - - which-collection@1.0.2: - dependencies: - is-map: 2.0.3 - is-set: 2.0.3 - is-weakmap: 2.0.2 - is-weakset: 2.0.4 - - which-typed-array@1.1.18: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.3 - for-each: 0.3.3 - gopd: 1.2.0 - has-tostringtag: 1.0.2 + '@types/estree': 1.0.9 + '@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.18.0 + browserslist: 4.28.8 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.24.5 + es-module-lexer: 2.3.2 + events: 3.3.0 + graceful-fs: 4.2.11 + mime-db: 1.54.0 + minimizer-webpack-plugin: 5.8.0(webpack@5.110.2) + neo-async: 2.6.2 + schema-utils: 4.3.3 + tapable: 2.3.3 + watchpack: 2.5.2 + webpack-sources: 3.5.1 + optionalDependencies: + webpack-cli: 7.2.3(js-yaml@4.3.2)(json5@2.2.3)(webpack@5.110.2) + transitivePeerDependencies: + - '@minify-html/node' + - '@swc/core' + - '@swc/css' + - '@swc/html' + - clean-css + - cssnano + - csso + - esbuild + - html-minifier-terser + - lightningcss + - postcss + - uglify-js which@2.0.2: dependencies: isexe: 2.0.0 - word-wrap@1.2.5: {} + why-is-node-running@2.3.0: + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + + wildcard@2.0.1: {} - workerpool@6.5.1: {} + word-wrap@1.2.5: {} wrap-ansi@7.0.0: dependencies: @@ -4530,27 +5177,13 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 - wrap-ansi@8.1.0: - dependencies: - ansi-styles: 6.2.1 - string-width: 5.1.2 - strip-ansi: 7.1.0 - - wrappy@1.0.2: {} - y18n@5.0.8: {} - yallist@3.1.1: {} + yaml@2.9.0: + optional: true yargs-parser@20.2.9: {} - yargs-unparser@2.0.0: - dependencies: - camelcase: 6.3.0 - decamelize: 4.0.0 - flat: 5.0.2 - is-plain-obj: 2.1.0 - yargs@16.2.0: dependencies: cliui: 7.0.4 @@ -4562,3 +5195,7 @@ snapshots: yargs-parser: 20.2.9 yocto-queue@0.1.0: {} + + yoctocolors@2.2.0: {} + + zod@4.5.4: {} diff --git a/rollup.config.js b/rollup.config.js index f507197..eebfa5f 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,61 +1,68 @@ -import terser from '@rollup/plugin-terser'; import commonjs from '@rollup/plugin-commonjs'; import { nodeResolve } from '@rollup/plugin-node-resolve'; -import { babel } from '@rollup/plugin-babel'; +import terser from '@rollup/plugin-terser'; +import typescript from '@rollup/plugin-typescript'; -const input = ['src/storefront.js']; -const plugins = [ - nodeResolve({ - browser: true, - }), - commonjs(), - babel({ - babelHelpers: 'bundled', - }), - terser(), -]; +const input = 'src/storefront.ts'; +const resolve = nodeResolve({ browser: true }); +const compileTypeScript = () => typescript({ tsconfig: './tsconfig.rollup.json' }); +const callableCommonJsDefault = { + name: 'callable-commonjs-default', + generateBundle(outputOptions, bundle) { + if (outputOptions.format !== 'cjs') { + return; + } + + for (const output of Object.values(bundle)) { + if (output.type === 'chunk' && output.isEntry) { + output.code += '\nmodule.exports = Object.assign(exports.default, exports);\n'; + } + } + }, +}; +const shared = { + input, + treeshake: { + moduleSideEffects: true, + }, +}; export default [ { - input, - plugins, - external: [], - output: [ - { - file: `dist/@storefront.min.js`, - format: 'umd', - name: '@fleetbase/storefront', - esModule: false, - exports: 'named', - sourcemap: true, - globals: { - '@fleetbase/sdk': 'FleetbaseSdk', - 'countries-list': 'CountriesList', - }, - }, - ], - watch: { - exclude: ['node_modules/**'], - include: ['lib/**'], + ...shared, + // Keep @fleetbase/sdk internal until its package exports resolve + // consistently in webpack and CommonJS clean-room consumers. + external: ['countries-list', 'date-fns'], + plugins: [resolve, commonjs(), compileTypeScript()], + output: { + file: 'dist/esm/storefront.js', + format: 'esm', + sourcemap: true, + inlineDynamicImports: true, }, }, { - input, - plugins, - external: [], - output: [ - { - dir: 'dist/esm', - format: 'esm', - exports: 'named', - sourcemap: true, - }, - { - dir: 'dist/cjs', - format: 'cjs', - exports: 'named', - sourcemap: true, - }, - ], + ...shared, + external: ['countries-list', 'date-fns'], + plugins: [resolve, commonjs(), compileTypeScript(), callableCommonJsDefault], + output: { + file: 'dist/cjs/storefront.cjs', + format: 'cjs', + exports: 'named', + sourcemap: true, + inlineDynamicImports: true, + }, + }, + { + ...shared, + plugins: [resolve, commonjs(), compileTypeScript(), terser()], + output: { + file: 'dist/@storefront.min.js', + format: 'umd', + name: 'FleetbaseStorefront', + exports: 'named', + sourcemap: true, + inlineDynamicImports: true, + }, }, ]; diff --git a/scripts/create-cjs-types.mjs b/scripts/create-cjs-types.mjs new file mode 100644 index 0000000..ddaa90d --- /dev/null +++ b/scripts/create-cjs-types.mjs @@ -0,0 +1,16 @@ +import { copyFile, readFile, writeFile } from 'node:fs/promises'; + +const storefrontTypes = new URL('../types/storefront.d.ts', import.meta.url); +const fleetbaseTypes = new URL('../types/fleetbase-sdk.d.ts', import.meta.url); +const sourceFleetbaseTypes = new URL('../types-internal/fleetbase-sdk.d.ts', import.meta.url); +const reference = "import './fleetbase-sdk.js';\n"; +const declarations = await readFile(storefrontTypes, 'utf8'); + +await copyFile(sourceFleetbaseTypes, fleetbaseTypes); +await writeFile(storefrontTypes, declarations.startsWith(reference) ? declarations : `${reference}${declarations}`); +await writeFile( + new URL('../types/storefront.d.cts', import.meta.url), + `${reference}type StorefrontModule = typeof import('./storefront.js', { with: { 'resolution-mode': 'import' } });\n` + + `declare const Storefront: StorefrontModule['default'] & StorefrontModule & { default: StorefrontModule['default'] };\n` + + `export = Storefront;\n` +); diff --git a/scripts/live-smoke.mjs b/scripts/live-smoke.mjs new file mode 100644 index 0000000..270aec3 --- /dev/null +++ b/scripts/live-smoke.mjs @@ -0,0 +1,18 @@ +import assert from 'node:assert/strict'; +import Storefront from '../dist/esm/storefront.js'; + +const publicKey = process.env.FLEETBASE_STOREFRONT_PUBLIC_KEY; +const host = process.env.FLEETBASE_STOREFRONT_HOST || 'https://api.fleetbase.io'; + +if (!publicKey) { + throw new Error('FLEETBASE_STOREFRONT_PUBLIC_KEY is required'); +} + +const storefront = new Storefront(publicKey, { host }); +const about = await storefront.about(); + +assert.equal(typeof about, 'object'); +assert.notEqual(about, null); +assert.equal(typeof storefront.getAdapter(), 'object'); + +console.log('Non-destructive Storefront API smoke check passed.'); diff --git a/scripts/verify-browser-bundle.mjs b/scripts/verify-browser-bundle.mjs new file mode 100644 index 0000000..eddd950 --- /dev/null +++ b/scripts/verify-browser-bundle.mjs @@ -0,0 +1,19 @@ +import { readFile } from 'node:fs/promises'; +import vm from 'node:vm'; + +const source = await readFile(new URL('../dist/@storefront.min.js', import.meta.url), 'utf8'); +const browser = { console, setTimeout, clearTimeout }; + +browser.globalThis = browser; +browser.self = browser; +browser.window = browser; +vm.runInNewContext(source, browser, { filename: '@storefront.min.js' }); + +const namespace = browser.FleetbaseStorefront; +const Storefront = namespace?.default; +const adapter = { get: async () => ({}), post: async () => ({}), put: async () => ({}), delete: async () => ({}) }; +const client = new Storefront(`store_${'a'.repeat(32)}`, { adapter }); + +if (!(client instanceof Storefront) || typeof namespace.Product !== 'function') { + throw new Error('Browser bundle did not expose the expected Storefront API.'); +} diff --git a/scripts/verify-framework-consumers.mjs b/scripts/verify-framework-consumers.mjs new file mode 100644 index 0000000..8dee901 --- /dev/null +++ b/scripts/verify-framework-consumers.mjs @@ -0,0 +1,131 @@ +import { execFileSync } from 'node:child_process'; +import { mkdir, mkdtemp, readFile, realpath, rm, writeFile } from 'node:fs/promises'; +import { dirname, resolve } from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const requestedTarball = process.argv[2]; + +if (!requestedTarball) { + throw new Error('Usage: node scripts/verify-framework-consumers.mjs '); +} + +const repositoryRoot = resolve(dirname(fileURLToPath(import.meta.url)), '..'); +const tarball = await realpath(resolve(requestedTarball)); +const cacheRoot = resolve(repositoryRoot, '.cache/framework-consumers'); +await mkdir(cacheRoot, { recursive: true }); +const fixture = await mkdtemp(resolve(cacheRoot, 'fixture-')); +const environment = { + ...process.env, + NEXT_TELEMETRY_DISABLED: '1', + npm_config_cache: resolve(repositoryRoot, '.cache/npm'), +}; +const executable = (name) => resolve(repositoryRoot, 'node_modules/.bin', name); +const write = (path, contents) => writeFile(resolve(fixture, path), contents); +const adapterSource = `{ get() { return Promise.resolve([]); }, post() { return Promise.resolve({}); }, put() { return Promise.resolve({}); }, delete() { return Promise.resolve({}); } }`; + +try { + await write('package.json', `${JSON.stringify({ name: 'storefront-framework-consumers', private: true, type: 'module' }, null, 2)}\n`); + execFileSync('npm', ['install', '--ignore-scripts', '--package-lock=false', tarball], { + cwd: fixture, + env: environment, + stdio: 'inherit', + }); + + await write( + 'vite-entry.js', + `import Storefront, { Product } from '@fleetbase/storefront';\n` + + `export const client = new Storefront('store_' + 'a'.repeat(32), { adapter: ${adapterSource} });\n` + + `export { Product };\n` + ); + await write( + 'vite.config.mjs', + `import { defineConfig } from 'vite';\n` + + `export default defineConfig({ build: { lib: { entry: './vite-entry.js', formats: ['es'], fileName: 'bundle' }, outDir: 'dist-vite', emptyOutDir: true } });\n` + ); + execFileSync(executable('vite'), ['build', '--config', 'vite.config.mjs'], { + cwd: fixture, + env: environment, + stdio: 'inherit', + }); + + await write( + 'webpack-entry.js', + `import Storefront, { Product } from '@fleetbase/storefront';\n` + + `export const client = new Storefront('store_' + 'a'.repeat(32), { adapter: ${adapterSource} });\n` + + `export { Product };\n` + ); + await write( + 'webpack.config.mjs', + `import { resolve } from 'node:path';\n` + + `export default { mode: 'production', target: ['web', 'es2020'], entry: './webpack-entry.js', experiments: { outputModule: true }, output: { path: resolve(process.cwd(), 'dist-webpack'), filename: 'bundle.js', module: true, clean: true } };\n` + ); + execFileSync(executable('webpack'), ['--config', 'webpack.config.mjs'], { + cwd: fixture, + env: environment, + stdio: 'inherit', + }); + + await mkdir(resolve(fixture, 'app/server'), { recursive: true }); + await write('next.config.mjs', `export default { output: 'export' };\n`); + await write('app/layout.js', `export default function Layout({ children }) { return {children}; }\n`); + await write( + 'app/page.js', + `'use client';\n` + + `import Storefront from '@fleetbase/storefront';\n` + + `const client = new Storefront('store_' + 'a'.repeat(32), { adapter: ${adapterSource} });\n` + + `export default function Page() { return
{client.version}
; }\n` + ); + await write( + 'app/server/page.js', + `import Storefront, { Product } from '@fleetbase/storefront';\n` + + `const client = new Storefront('store_' + 'a'.repeat(32), { adapter: ${adapterSource} });\n` + + `export default function ServerPage() { return
{client.version}
; }\n` + ); + execFileSync(executable('next'), ['build', '--webpack'], { + cwd: fixture, + env: environment, + stdio: 'inherit', + }); + + const emberFixture = resolve(fixture, 'ember-consumer'); + execFileSync( + 'pnpm', + ['dlx', 'ember-cli@7.2.0', 'new', 'ember-consumer', '--directory', emberFixture, '--skip-npm', '--skip-git', '--no-welcome', '--no-ember-data', '--ci-provider', 'none'], + { + cwd: fixture, + env: environment, + stdio: 'inherit', + } + ); + const emberPackagePath = resolve(emberFixture, 'package.json'); + const emberPackage = JSON.parse(await readFile(emberPackagePath, 'utf8')); + emberPackage.dependencies = { + '@fleetbase/storefront': `file:${tarball}`, + }; + await writeFile(emberPackagePath, `${JSON.stringify(emberPackage, null, 2)}\n`); + await writeFile( + resolve(emberFixture, 'app/templates/application.gjs'), + `import Storefront, { Product } from '@fleetbase/storefront';\n` + + `const client = new Storefront('store_' + 'a'.repeat(32), { adapter: ${adapterSource} });\n` + + `\n` + ); + await writeFile( + resolve(emberFixture, 'vite.config.mjs'), + `import { defineConfig } from 'vite';\n` + + `import { extensions, classicEmberSupport, ember } from '@embroider/vite';\n` + + `import { babel } from '@rollup/plugin-babel';\n` + + `export default defineConfig({ build: { minify: false, sourcemap: false }, plugins: [classicEmberSupport(), ember(), babel({ babelHelpers: 'runtime', extensions })] });\n` + ); + execFileSync('npm', ['install', '--ignore-scripts', '--package-lock=false'], { + cwd: emberFixture, + env: environment, + stdio: 'inherit', + }); + execFileSync('npm', ['run', 'build'], { + cwd: emberFixture, + env: environment, + stdio: 'inherit', + }); +} finally { + await rm(fixture, { recursive: true, force: true }); +} diff --git a/scripts/verify-package-artifact.mjs b/scripts/verify-package-artifact.mjs new file mode 100644 index 0000000..95890b0 --- /dev/null +++ b/scripts/verify-package-artifact.mjs @@ -0,0 +1,48 @@ +import assert from 'node:assert/strict'; +import { execFileSync } from 'node:child_process'; +import { mkdtemp, readFile, readdir, rm, stat } from 'node:fs/promises'; +import { tmpdir } from 'node:os'; +import { join, resolve } from 'node:path'; + +const requestedTarball = process.argv[2]; + +if (!requestedTarball) { + throw new Error('Usage: node scripts/verify-package-artifact.mjs '); +} + +const tarball = resolve(requestedTarball); +const compressedBytes = (await stat(tarball)).size; +const fixture = await mkdtemp(join(tmpdir(), 'storefront-artifact-')); + +async function directorySize(path) { + let bytes = 0; + for (const entry of await readdir(path, { withFileTypes: true })) { + const entryPath = join(path, entry.name); + bytes += entry.isDirectory() ? await directorySize(entryPath) : (await stat(entryPath)).size; + } + return bytes; +} + +try { + execFileSync('tar', ['-xzf', tarball, '-C', fixture]); + const packageRoot = join(fixture, 'package'); + const unpackedBytes = await directorySize(packageRoot); + + assert.ok(compressedBytes <= 400 * 1024, `Compressed package exceeds 400 KiB: ${compressedBytes} bytes`); + assert.ok(unpackedBytes <= 1800 * 1024, `Unpacked package exceeds 1.8 MiB: ${unpackedBytes} bytes`); + + for (const path of ['dist/esm/storefront.js', 'dist/cjs/storefront.cjs', 'dist/@storefront.min.js', 'types/storefront.d.ts', 'types/storefront.d.cts', 'README.md', 'LICENSE.md']) { + assert.ok((await stat(join(packageRoot, path))).isFile(), `Package is missing ${path}`); + } + + for (const path of ['dist/esm/storefront.js.map', 'dist/cjs/storefront.cjs.map', 'dist/@storefront.min.js.map']) { + const sourceMap = JSON.parse(await readFile(join(packageRoot, path), 'utf8')); + assert.ok(Array.isArray(sourceMap.sources) && sourceMap.sources.length > 0, `${path} has no sources`); + assert.equal(sourceMap.sourcesContent?.length, sourceMap.sources.length, `${path} has incomplete source content`); + assert.equal(typeof sourceMap.mappings, 'string', `${path} has invalid mappings`); + } + + console.log(`Package budgets passed: ${compressedBytes} compressed bytes, ${unpackedBytes} unpacked bytes.`); +} finally { + await rm(fixture, { recursive: true, force: true }); +} diff --git a/scripts/verify-packed-package.mjs b/scripts/verify-packed-package.mjs new file mode 100644 index 0000000..07c52ba --- /dev/null +++ b/scripts/verify-packed-package.mjs @@ -0,0 +1,123 @@ +import { execFileSync } from 'node:child_process'; +import { mkdtemp, realpath, rm, writeFile } from 'node:fs/promises'; +import { tmpdir } from 'node:os'; +import { dirname, resolve } from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const packageManager = process.argv[2] ?? 'npm'; +const requestedTarball = process.argv[3]; + +if (!requestedTarball) { + throw new Error('Usage: node scripts/verify-packed-package.mjs '); +} + +const supportedManagers = new Set(['npm', 'pnpm', 'yarn', 'bun']); +if (!supportedManagers.has(packageManager)) { + throw new Error(`Unsupported package manager: ${packageManager}`); +} + +const repositoryRoot = resolve(dirname(fileURLToPath(import.meta.url)), '..'); +const tarball = await realpath(resolve(requestedTarball)); +const fixture = await mkdtemp(resolve(tmpdir(), `storefront-${packageManager}-`)); +const environment = { + ...process.env, + npm_config_cache: resolve(repositoryRoot, '.cache/npm'), + COREPACK_ENABLE_PROJECT_SPEC: '0', +}; + +const installArguments = { + npm: ['install', '--ignore-scripts', tarball], + pnpm: ['add', '--ignore-scripts', tarball], + yarn: ['add', tarball], + bun: ['add', '--ignore-scripts', tarball], +}; + +try { + if (packageManager === 'yarn') { + await writeFile(resolve(fixture, '.yarnrc.yml'), 'nodeLinker: node-modules\n'); + } + + await writeFile( + resolve(fixture, 'package.json'), + `${JSON.stringify( + { + name: `storefront-${packageManager}-consumer`, + private: true, + type: 'module', + packageManager: packageManager === 'yarn' ? 'yarn@4.9.2' : undefined, + }, + null, + 2 + )}\n` + ); + + execFileSync(packageManager, installArguments[packageManager], { + cwd: fixture, + env: environment, + stdio: 'inherit', + }); + + await writeFile( + resolve(fixture, 'esm.mjs'), + `import Storefront, { Product } from '@fleetbase/storefront';\n` + + `const client = new Storefront('store_' + 'a'.repeat(32));\n` + + `if (!(client instanceof Storefront) || typeof Product !== 'function') process.exit(1);\n` + ); + await writeFile( + resolve(fixture, 'commonjs.cjs'), + `const Storefront = require('@fleetbase/storefront');\n` + + `const client = new Storefront('store_' + 'a'.repeat(32));\n` + + `if (!(client instanceof Storefront) || Storefront.default !== Storefront || typeof Storefront.Product !== 'function') process.exit(1);\n` + ); + await writeFile( + resolve(fixture, 'consumer.ts'), + `import Storefront, { Product } from '@fleetbase/storefront';\n` + + `const client = new Storefront('store_' + 'a'.repeat(32));\n` + + `client.search('coffee').then((products) => products[0] satisfies Product);\n` + ); + await writeFile( + resolve(fixture, 'consumer.cts'), + `import Storefront = require('@fleetbase/storefront');\n` + + `const client = new Storefront('store_' + 'a'.repeat(32));\n` + + `const product = new Storefront.Product();\n` + + `void client; void product;\n` + ); + const typeConfigurations = { + node16: { module: 'Node16', moduleResolution: 'Node16', include: ['consumer.ts', 'consumer.cts'] }, + nodenext: { module: 'NodeNext', moduleResolution: 'NodeNext', include: ['consumer.ts', 'consumer.cts'] }, + bundler: { module: 'ESNext', moduleResolution: 'Bundler', include: ['consumer.ts'] }, + }; + + for (const [name, configuration] of Object.entries(typeConfigurations)) { + await writeFile( + resolve(fixture, `tsconfig.${name}.json`), + `${JSON.stringify( + { + compilerOptions: { + strict: true, + noEmit: true, + target: 'ES2022', + module: configuration.module, + moduleResolution: configuration.moduleResolution, + skipLibCheck: false, + }, + include: configuration.include, + }, + null, + 2 + )}\n` + ); + } + + execFileSync(process.execPath, ['esm.mjs'], { cwd: fixture, env: environment, stdio: 'inherit' }); + execFileSync(process.execPath, ['commonjs.cjs'], { cwd: fixture, env: environment, stdio: 'inherit' }); + for (const name of Object.keys(typeConfigurations)) { + execFileSync(resolve(repositoryRoot, 'node_modules/.bin/tsc'), ['--project', resolve(fixture, `tsconfig.${name}.json`)], { + cwd: fixture, + env: environment, + stdio: 'inherit', + }); + } +} finally { + await rm(fixture, { recursive: true, force: true }); +} diff --git a/src/cart-store.js b/src/cart-store.js deleted file mode 100644 index 612c07f..0000000 --- a/src/cart-store.js +++ /dev/null @@ -1,49 +0,0 @@ -import Store from './store.js'; - -export default class CartStore extends Store { - constructor() { - super(...arguments); - } - - async request(method, uri, data, options) { - const response = await this.adapter[method](uri, data, options); - return this.afterFetch(response); - } - - add(id, productId, quantity = 1, data = {}, options = {}) { - return this.request('post', `${this.namespace}/${id}/${productId}`, { ...data, quantity }, options); - } - - update(id, cartItemId, quantity, data = {}, options = {}) { - return this.request('put', `${this.namespace}/${id}/${cartItemId}`, { ...data, quantity }, options); - } - - remove(id, cartItemId, options = {}) { - return this.request('delete', `${this.namespace}/${id}/${cartItemId}`, {}, options); - } - - empty(id, options = {}) { - return this.request('put', `${this.namespace}/${id}/empty`, {}, options); - } - - retrieve(id = '') { - return this.findRecord(id); - } - - // remove default store methods, in cart can only retrieve and destroy - create() { - throw new Error('There is no create() method for carts!'); - } - - findAll() { - throw new Error('There is no findAll() method for carts!'); - } - - query() { - throw new Error('There is no query() method for carts!'); - } - - queryRecord() { - throw new Error('There is no queryRecord() method for carts!'); - } -} diff --git a/src/customer-store.js b/src/customer-store.js deleted file mode 100644 index 2e66e6a..0000000 --- a/src/customer-store.js +++ /dev/null @@ -1,42 +0,0 @@ -import Store from './store.js'; -import { isPhone } from './utils'; - -export default class CustomerStore extends Store { - constructor() { - super(...arguments); - } - - async request(method, uri, data, options) { - const response = await this.adapter[method](uri, data, options); - return this.afterFetch(response); - } - - login(identity, password = null, attributes = {}) { - // handle phone number authentication - if (isPhone(identity)) { - return this.adapter.post('customers/login-with-sms', { phone: identity }); - } - - if (!password) { - throw new Error('Login requires password!'); - } - - return this.request('post', 'customers/login', { - identity, - password, - ...attributes, - }); - } - - verifySmsCode(phone, code, attributes = {}) { - return this.request('post', 'customers/verify-sms', { - phone, - code, - ...attributes, - }); - } - - retrieve(id) { - return this.findRecord(id); - } -} diff --git a/src/index.js b/src/index.ts similarity index 100% rename from src/index.js rename to src/index.ts diff --git a/src/resource.js b/src/resource.ts similarity index 59% rename from src/resource.js rename to src/resource.ts index 18ff556..aa39aa0 100644 --- a/src/resource.js +++ b/src/resource.ts @@ -1,19 +1,21 @@ -import { Resource, register } from '@fleetbase/sdk'; +import { Adapter, Resource, register } from '@fleetbase/sdk'; import StorefrontStore from './store.js'; export default class StorefrontResource extends Resource { + declare store: StorefrontStore & Record unknown>; + /** * Set a new adapter to the resource instance, this will update the Store instance * - * @param {Adapter} adapter - * @return {Resource} this + * @param {import('@fleetbase/sdk').Adapter} adapter + * @return {this} */ - setAdapter(adapter) { + setAdapter(adapter: Adapter) { this.adapter = adapter; this.store = new StorefrontStore(this.resource, adapter, { onAfterFetch: this.syncAttributes.bind(this), actions: this.options?.actions, - }); + }) as StorefrontStore & Record unknown>; return this; } diff --git a/src/resources.js b/src/resources.ts similarity index 93% rename from src/resources.js rename to src/resources.ts index fbcd87b..f27aafe 100644 --- a/src/resources.js +++ b/src/resources.ts @@ -11,3 +11,4 @@ export { default as Checkout } from './resources/checkout.js'; export { default as PaymentGateway } from './resources/payment-gateway.js'; export { default as Review } from './resources/review.js'; export { default as FoodTruck } from './resources/food-truck.js'; +export { default as Order } from './resources/order.js'; diff --git a/src/resources/cart.js b/src/resources/cart.js deleted file mode 100644 index 4ff6375..0000000 --- a/src/resources/cart.js +++ /dev/null @@ -1,100 +0,0 @@ -import Resource from '../resource.js'; -import Product from './product.js'; -import { StoreActions, register } from '@fleetbase/sdk'; - -const { isArray } = Array; - -export const cartActions = new StoreActions({ - create: undefined, - findAll: undefined, - query: undefined, - queryRecord: undefined, - - add: function (id, productId, quantity = 1, data = {}, options = {}) { - return this.adapter.post(`${this.namespace}/${id}/${productId}`, { ...data, quantity }, options).then(this.afterFetch.bind(this)); - }, - - update: function (id, cartItemId, quantity, data = {}, options = {}) { - return this.adapter.put(`${this.namespace}/${id}/${cartItemId}`, { ...data, quantity }, options).then(this.afterFetch.bind(this)); - }, - - remove: function (id, cartItemId, options = {}) { - return this.adapter.delete(`${this.namespace}/${id}/${cartItemId}`, {}, options).then(this.afterFetch.bind(this)); - }, - - empty: function (id, options = {}) { - return this.adapter.put(`${this.namespace}/${id}/empty`, {}, options).then(this.afterFetch.bind(this)); - }, - - retrieve: function (id = '') { - return this.findRecord(id); - }, -}); - -export default class Cart extends Resource { - constructor(attributes = {}, adapter, options = {}) { - super(attributes, adapter, 'cart', { actions: cartActions, ...options }); - } - - add(productId, quantity = 1, data = {}, options = {}) { - if (productId instanceof Product) { - productId = productId.id; - } - - return this.store.add(this.id, productId, quantity, data, options); - } - - update(cartItemId, quantity, data = {}, options = {}) { - return this.store.update(this.id, cartItemId, quantity, data, options); - } - - remove(cartItemId, options = {}) { - return this.store.remove(this.id, cartItemId, options); - } - - empty(options = {}) { - return this.store.empty(this.id, options); - } - - delete() { - return this.destroy(); - } - - refresh() { - return this.store.retrieve(this.id); - } - - subtotal() { - let subtotal = 0; - - this.contents().forEach((cartItem) => { - subtotal += cartItem.subtotal; - }); - - return subtotal; - } - - contents() { - return this.getAttribute('items', []); - } - - hasProduct(productId) { - return this.contents().findIndex((cartItem) => cartItem.product_id === productId) !== -1; - } - - get isEmpty() { - const contents = this.contents(); - - if (!isArray(contents)) { - return true; - } - - return contents.length === 0; - } - - get isNotEmpty() { - return !this.isEmpty; - } -} - -register('resource', 'Cart', Cart); diff --git a/src/resources/cart.ts b/src/resources/cart.ts new file mode 100644 index 0000000..734cda5 --- /dev/null +++ b/src/resources/cart.ts @@ -0,0 +1,92 @@ +import Resource from '../resource.js'; +import Product from './product.js'; +import { Adapter, StoreActions, register } from '@fleetbase/sdk'; +import type { Attributes, RequestOptions } from '../types.js'; +import type StorefrontStore from '../store.js'; + +const { isArray } = Array; + +export const cartActions = new StoreActions({ + create: undefined, + findAll: undefined, + query: undefined, + queryRecord: undefined, + + add: function (this: StorefrontStore, id: string, productId: string, quantity = 1, data: Attributes = {}, options: RequestOptions = {}) { + return this.adapter.post(`${this.namespace}/${id}/${productId}`, { ...data, quantity }, options).then(this.afterFetch.bind(this)); + }, + + update: function (this: StorefrontStore, id: string, cartItemId: string, quantity: number, data: Attributes = {}, options: RequestOptions = {}) { + return this.adapter.put(`${this.namespace}/${id}/${cartItemId}`, { ...data, quantity }, options).then(this.afterFetch.bind(this)); + }, + + remove: function (this: StorefrontStore, id: string, cartItemId: string, options: RequestOptions = {}) { + return this.adapter.delete(`${this.namespace}/${id}/${cartItemId}`, {}, options).then(this.afterFetch.bind(this)); + }, + + empty: function (this: StorefrontStore, id: string, options: RequestOptions = {}) { + return this.adapter.put(`${this.namespace}/${id}/empty`, {}, options).then(this.afterFetch.bind(this)); + }, + + retrieve: function (this: StorefrontStore, id = '') { + return (this as StorefrontStore).findRecord(id); + }, +}); + +export default class Cart extends Resource { + constructor(attributes: Attributes = {}, adapter?: Adapter, options: Attributes = {}) { + super(attributes, adapter, 'cart', { actions: cartActions, ...options }); + } + + add(productId: string | Product, quantity = 1, data: Attributes = {}, options: RequestOptions = {}): Promise { + if (productId instanceof Product) { + productId = productId.id; + } + + return this.store.add(this.id, productId, quantity, data, options) as Promise; + } + + update(cartItemId: string, quantity: number, data: Attributes = {}, options: RequestOptions = {}): Promise { + const update = this.store.update as unknown as (id: string, cartItemId: string, quantity: number, data: Attributes, options: RequestOptions) => Promise; + return update.call(this.store, this.id, cartItemId, quantity, data, options); + } + + remove(cartItemId: string, options: RequestOptions = {}): Promise { + return this.store.remove(this.id, cartItemId, options) as Promise; + } + + empty(options: RequestOptions = {}): Promise { + return this.store.empty(this.id, options) as Promise; + } + + delete(): unknown { + return this.destroy(); + } + + refresh(): Promise { + return this.store.retrieve(this.id) as Promise; + } + + subtotal(): number { + return this.contents().reduce((subtotal, cartItem) => subtotal + Number(cartItem?.subtotal || 0), 0); + } + + contents(): Attributes[] { + const items = this.getAttribute('items', []); + return isArray(items) ? (items as Attributes[]) : []; + } + + hasProduct(productId: string) { + return this.contents().findIndex((cartItem) => cartItem.product_id === productId) !== -1; + } + + get isEmpty() { + return this.contents().length === 0; + } + + get isNotEmpty() { + return !this.isEmpty; + } +} + +register('resource', 'Cart', Cart); diff --git a/src/resources/category.js b/src/resources/category.js deleted file mode 100644 index e1d0cd4..0000000 --- a/src/resources/category.js +++ /dev/null @@ -1,17 +0,0 @@ -import Resource from '../resource.js'; -import Product from './product.js'; -import { Collection, register } from '@fleetbase/sdk'; - -export default class Category extends Resource { - constructor(attributes = {}, adapter, options = {}) { - super(attributes, adapter, 'category', options); - } - - getProducts() { - return this.adapter.get('products', { category: this.id }).then((products) => { - return new Collection(products.map((attributes) => new Product(attributes, this.adapter))); - }); - } -} - -register('resource', 'Category', Category); diff --git a/src/resources/category.ts b/src/resources/category.ts new file mode 100644 index 0000000..ed51f7a --- /dev/null +++ b/src/resources/category.ts @@ -0,0 +1,18 @@ +import Resource from '../resource.js'; +import Product from './product.js'; +import { Adapter, Collection, register } from '@fleetbase/sdk'; +import type { Attributes } from '../types.js'; + +export default class Category extends Resource { + constructor(attributes: Attributes = {}, adapter?: Adapter, options: Attributes = {}) { + super(attributes, adapter, 'category', options); + } + + getProducts() { + return this.adapter.get('products', { category: this.id }).then((products) => { + return new Collection(products.map((attributes: Attributes) => new Product(attributes, this.adapter))); + }); + } +} + +register('resource', 'Category', Category); diff --git a/src/resources/checkout.js b/src/resources/checkout.js deleted file mode 100644 index d8f8eba..0000000 --- a/src/resources/checkout.js +++ /dev/null @@ -1,73 +0,0 @@ -import Resource from '../resource.js'; -import { Order, StoreActions, isResource, register } from '@fleetbase/sdk'; - -export const checkoutActions = new StoreActions({ - create: undefined, - findAll: undefined, - query: undefined, - queryRecord: undefined, - - initialize: function (customer, cart, serviceQuote, gateway, orderOptions = {}, options = {}) { - if (isResource(customer)) { - customer = customer.id; - } - - if (isResource(cart)) { - cart = cart.id; - } - - if (isResource(serviceQuote)) { - serviceQuote = serviceQuote.id; - } - - if (isResource(gateway)) { - gateway = gateway.getAttribute('code'); - } - - return this.adapter.get(`${this.namespace}/before`, { ...orderOptions, customer, cart, serviceQuote, gateway }, options); - }, - - captureOrder: function (token, params = {}, options = {}) { - return this.adapter.post(`${this.namespace}/capture`, { token, ...params }, options).then((orderJson) => new Order(orderJson)); - }, - - createStripeSetupIntent: function (customer, params = {}, options = {}) { - if (isResource(customer)) { - customer = customer.id; - } - - return this.adapter.post(`${this.namespace}/stripe-setup-intent`, { customer, ...params }, options); - }, - - updateStripePaymentIntent: function (paymentIntent, customer, cart, serviceQuote, orderOptions = {}, options = {}) { - if (isResource(customer)) { - customer = customer.id; - } - - if (isResource(cart)) { - cart = cart.id; - } - - if (isResource(serviceQuote)) { - serviceQuote = serviceQuote.id; - } - - return this.adapter.put(`${this.namespace}/stripe-update-payment-intent`, { paymentIntent, customer, cart, serviceQuote, ...orderOptions }, options); - }, -}); - -export default class Checkout extends Resource { - constructor(attributes = {}, adapter, options = {}) { - super(attributes, adapter, 'checkout', { actions: checkoutActions, ...options }); - } - - initialize() { - return this.store.initialize(...arguments); - } - - captureOrder() { - return this.store.captureOrder(...arguments); - } -} - -register('resource', 'Checkout', Checkout); diff --git a/src/resources/checkout.ts b/src/resources/checkout.ts new file mode 100644 index 0000000..e1cdc23 --- /dev/null +++ b/src/resources/checkout.ts @@ -0,0 +1,150 @@ +import Resource from '../resource.js'; +import Order from './order.js'; +import { Adapter, StoreActions, isResource, register } from '@fleetbase/sdk'; +import type { Attributes, RequestOptions, ResourceIdentifier } from '../types.js'; +import type StorefrontStore from '../store.js'; + +export const checkoutActions = new StoreActions({ + create: undefined, + findAll: undefined, + query: undefined, + queryRecord: undefined, + + initialize: function ( + this: StorefrontStore, + customer: ResourceIdentifier, + cart: ResourceIdentifier, + serviceQuote: ResourceIdentifier, + gateway: ResourceIdentifier, + orderOptions: Attributes = {}, + options: RequestOptions = {} + ) { + if (isResource(customer)) { + customer = customer.id; + } + + if (isResource(cart)) { + cart = cart.id; + } + + if (isResource(serviceQuote)) { + serviceQuote = serviceQuote.id; + } + + if (isResource(gateway)) { + gateway = gateway.getAttribute('code'); + } + + return this.adapter.get(`${this.namespace}/before`, { ...orderOptions, customer, cart, serviceQuote, gateway }, options); + }, + + captureOrder: function (this: StorefrontStore, token: string, params: Attributes = {}, options: RequestOptions = {}) { + return this.adapter.post(`${this.namespace}/capture`, { token, ...params }, options).then((orderJson) => new Order(orderJson, this.adapter)); + }, + + createStripeSetupIntent: function (this: StorefrontStore, customer: ResourceIdentifier, params: Attributes = {}, options: RequestOptions = {}) { + if (isResource(customer)) { + customer = customer.id; + } + + return this.adapter.post(`${this.namespace}/stripe-setup-intent`, { customer, ...params }, options); + }, + + updateStripePaymentIntent: function ( + this: StorefrontStore, + paymentIntent: string, + customer: ResourceIdentifier, + cart: ResourceIdentifier, + serviceQuote: ResourceIdentifier, + orderOptions: Attributes = {}, + options: RequestOptions = {} + ) { + if (isResource(customer)) { + customer = customer.id; + } + + if (isResource(cart)) { + cart = cart.id; + } + + if (isResource(serviceQuote)) { + serviceQuote = serviceQuote.id; + } + + return this.adapter.put(`${this.namespace}/stripe-update-payment-intent`, { paymentIntent, customer, cart, serviceQuote, ...orderOptions }, options); + }, + + getStatus: function (this: StorefrontStore, checkout: ResourceIdentifier, token: string, options: RequestOptions = {}) { + if (isResource(checkout)) { + checkout = checkout.id; + } + + return this.adapter.get(`${this.namespace}/status`, { checkout, token }, options); + }, + + captureQPay: function (this: StorefrontStore, checkout: ResourceIdentifier, params: Attributes = {}, options: RequestOptions = {}) { + if (isResource(checkout)) { + checkout = checkout.id; + } + + return this.adapter.post(`${this.namespace}/capture-qpay`, { checkout, ...params }, options); + }, + + captureQPayCallback: function (this: StorefrontStore, checkout: ResourceIdentifier, params: Attributes = {}, options: RequestOptions = {}) { + if (isResource(checkout)) { + checkout = checkout.id; + } + + return this.adapter.get(`${this.namespace}/capture-qpay`, { checkout, ...params }, options); + }, +}); + +export default class Checkout extends Resource { + constructor(attributes: Attributes = {}, adapter?: Adapter, options: Attributes = {}) { + super(attributes, adapter, 'checkout', { actions: checkoutActions, ...options }); + } + + initialize( + customer: ResourceIdentifier, + cart: ResourceIdentifier, + serviceQuote: ResourceIdentifier, + gateway: ResourceIdentifier, + orderOptions: Attributes = {}, + options: RequestOptions = {} + ): Promise { + return this.store.initialize(customer, cart, serviceQuote, gateway, orderOptions, options) as Promise; + } + + captureOrder(token: string, params: Attributes = {}, options: RequestOptions = {}): Promise { + return this.store.captureOrder(token, params, options) as Promise; + } + + createStripeSetupIntent(customer: ResourceIdentifier, params: Attributes = {}, options: RequestOptions = {}): Promise { + return this.store.createStripeSetupIntent(customer, params, options) as Promise; + } + + updateStripePaymentIntent( + paymentIntent: string, + customer: ResourceIdentifier, + cart: ResourceIdentifier, + serviceQuote: ResourceIdentifier, + orderOptions: Attributes = {}, + options: RequestOptions = {} + ): Promise { + return this.store.updateStripePaymentIntent(paymentIntent, customer, cart, serviceQuote, orderOptions, options) as Promise; + } + + getStatus(checkout: ResourceIdentifier, token: string, options: RequestOptions = {}): Promise { + return this.store.getStatus(checkout, token, options) as Promise; + } + + captureQPay(checkout: ResourceIdentifier, params: Attributes = {}, options: RequestOptions = {}): Promise { + return this.store.captureQPay(checkout, params, options) as Promise; + } + + captureQPayCallback(checkout: ResourceIdentifier, params: Attributes = {}, options: RequestOptions = {}): Promise { + return this.store.captureQPayCallback(checkout, params, options) as Promise; + } +} + +register('resource', 'Checkout', Checkout); diff --git a/src/resources/customer.js b/src/resources/customer.js deleted file mode 100644 index c1aaf25..0000000 --- a/src/resources/customer.js +++ /dev/null @@ -1,135 +0,0 @@ -import Resource from '../resource.js'; -import StorefrontStore from '../store.js'; -import { Collection, Order, Place, StoreActions, register } from '@fleetbase/sdk'; -import { isPhone } from '../utils/is-phone.js'; - -export const customerActions = new StoreActions({ - // const { error } = await storefront.customers.login('+1 111-1111'); - login: function (identity, password = null, attributes = {}) { - // handle phone number authentication - if (isPhone(identity)) { - return this.adapter.post('customers/login-with-sms', { phone: identity }); - } - - if (!password) { - throw new Error('Login requires password!'); - } - - return this.adapter.post('customers/login', { identity, password, ...attributes }).then(this.afterFetch.bind(this)); - }, - - // const customer = await storefront.customers.loginWithApple('', '', '', '', ''); - loginWithApple: function (appleUserId, identityToken, authorizationCode, email, name, attributes = {}) { - return this.adapter.post('customers/login-with-apple', { appleUserId, identityToken, authorizationCode, email, name, ...attributes }).then(this.afterFetch.bind(this)); - }, - - // const customer = await storefront.customers.loginWithFacebook('', '', '', ''); - loginWithFacebook: function (facebookUserId, email, name, avatarUrl, attributes = {}) { - return this.adapter.post('customers/login-with-facebook', { facebookUserId, email, name, avatarUrl, ...attributes }).then(this.afterFetch.bind(this)); - }, - - // const customer = await storefront.customers.loginWithGoogle('', ''); - loginWithGoogle: function (idToken, clientId, attributes = {}) { - return this.adapter.post('customers/login-with-google', { idToken, clientId, ...attributes }).then(this.afterFetch.bind(this)); - }, - - verifyCode: function (identity, code, attributes = {}) { - return this.adapter.post('customers/verify-code', { identity, code, ...attributes }).then(this.afterFetch.bind(this)); - }, - - requestCreationCode(identity, mode = 'email') { - return this.adapter.post('customers/request-creation-code', { - identity, - mode, - }); - }, - - create(identity, code, attributes = {}) { - return this.adapter.post('customers', { identity, code, ...attributes }).then(this.afterFetch.bind(this)); - }, - - retrieve: function (id) { - return this.findRecord(id); - }, -}); - -export default class Customer extends Resource { - constructor(attributes = {}, adapter, options = {}) { - super(attributes, adapter, 'customer', { - actions: customerActions, - ...options, - }); - } - - /** - * Set a new adapter to the resource instance, this will update the Store instance - * - * @param {Adapter} adapter - * @return {Resource} this - */ - setAdapter(adapter) { - this.adapter = adapter; - this.store = new StorefrontStore(this.resource, adapter, { - onAfterFetch: this.syncAttributes.bind(this), - actions: this.options?.actions, - }); - - return this; - } - - get token() { - return this.getAttribute('token'); - } - - async syncDevice(token, platform) { - try { - const headers = { 'Customer-Token': this.token }; - const response = await this.adapter.setHeaders(headers).post('customers/register-device', { token, platform }); - return response; - } catch (error) { - console.error(`Error making request to register customer device token:`, error); - throw error; - } - } - - async performAuthorizedRequest(endpoint, params = {}, method = 'GET') { - try { - const headers = { 'Customer-Token': this.token }; - const response = await this.adapter.setHeaders(headers)[method.toLowerCase()](endpoint, params); - return response; - } catch (error) { - console.error(`Error in ${method} request to ${endpoint}:`, error); - throw error; - } - } - - async getSavedPlaces() { - try { - const places = await this.performAuthorizedRequest('customers/places'); - return new Collection(places.map((attributes) => new Place(attributes, this.adapter))); - } catch (error) { - console.error('Failed to retrieve saved places'); - throw error; - } - } - - async getOrderHistory(params = {}) { - try { - const orders = await this.performAuthorizedRequest('customers/orders', params); - return new Collection(orders.map((attributes) => new Order(attributes, this.adapter))); - } catch (error) { - console.error('Failed to retrieve order history'); - throw error; - } - } - - getStripeEphemeralKey(params = {}) { - return this.adapter.setHeaders({ 'Customer-Token': this.token }).post('customers/stripe-ephemeral-key', params); - } - - getStripeSetupIntent(params = {}) { - return this.adapter.setHeaders({ 'Customer-Token': this.token }).post('customers/stripe-setup-intent', params); - } -} - -register('resource', 'Customer', Customer); diff --git a/src/resources/customer.ts b/src/resources/customer.ts new file mode 100644 index 0000000..17b74fd --- /dev/null +++ b/src/resources/customer.ts @@ -0,0 +1,145 @@ +import Resource from '../resource.js'; +import StorefrontStore from '../store.js'; +import { Adapter, Collection, Order, Place, StoreActions, register } from '@fleetbase/sdk'; +import { isPhone } from '../utils/is-phone.js'; +import type { Attributes, RequestOptions } from '../types.js'; + +export const customerActions = new StoreActions({ + // const { error } = await storefront.customers.login('+1 111-1111'); + login: function (this: StorefrontStore, identity: string, password: string | null = null, attributes: Attributes = {}) { + // handle phone number authentication + if (isPhone(identity)) { + return this.adapter.post('customers/login-with-sms', { phone: identity }); + } + + if (!password) { + throw new Error('Login requires password!'); + } + + return this.adapter.post('customers/login', { identity, password, ...attributes }).then(this.afterFetch.bind(this)); + }, + + // const customer = await storefront.customers.loginWithApple('', '', '', '', ''); + loginWithApple: function (this: StorefrontStore, appleUserId: string, identityToken: string, authorizationCode: string, email: string, name: string, attributes: Attributes = {}) { + return this.adapter.post('customers/login-with-apple', { appleUserId, identityToken, authorizationCode, email, name, ...attributes }).then(this.afterFetch.bind(this)); + }, + + // const customer = await storefront.customers.loginWithFacebook('', '', '', ''); + loginWithFacebook: function (this: StorefrontStore, facebookUserId: string, email: string, name: string, avatarUrl: string, attributes: Attributes = {}) { + return this.adapter.post('customers/login-with-facebook', { facebookUserId, email, name, avatarUrl, ...attributes }).then(this.afterFetch.bind(this)); + }, + + // const customer = await storefront.customers.loginWithGoogle('', ''); + loginWithGoogle: function (this: StorefrontStore, idToken: string, clientId: string, attributes: Attributes = {}) { + return this.adapter.post('customers/login-with-google', { idToken, clientId, ...attributes }).then(this.afterFetch.bind(this)); + }, + + verifyCode: function (this: StorefrontStore, identity: string, code: string, attributes: Attributes = {}) { + return this.adapter.post('customers/verify-code', { identity, code, ...attributes }).then(this.afterFetch.bind(this)); + }, + + requestCreationCode(this: StorefrontStore, identity: string, mode = 'email') { + return this.adapter.post('customers/request-creation-code', { + identity, + mode, + }); + }, + + create(this: StorefrontStore, identity: string, code: string, attributes: Attributes = {}) { + return this.adapter.post('customers', { identity, code, ...attributes }).then(this.afterFetch.bind(this)); + }, + + retrieve: function (this: StorefrontStore, id: string) { + return (this as StorefrontStore).findRecord(id); + }, +}); + +export default class Customer extends Resource { + constructor(attributes: Attributes = {}, adapter?: Adapter, options: Attributes = {}) { + super(attributes, adapter, 'customer', { + actions: customerActions, + ...options, + }); + } + + /** + * Set a new adapter to the resource instance, this will update the Store instance + * + * @param {import('@fleetbase/sdk').Adapter} adapter + * @return {this} + */ + setAdapter(adapter: Adapter) { + this.adapter = adapter; + this.store = new StorefrontStore(this.resource, adapter, { + onAfterFetch: this.syncAttributes.bind(this), + actions: this.options?.actions, + }) as StorefrontStore & Record unknown>; + + return this; + } + + get token(): string | undefined { + const token = this.getAttribute('token'); + return typeof token === 'string' ? token : undefined; + } + + async syncDevice(token: string, platform: string) { + return this.performAuthorizedRequest('customers/register-device', { token, platform }, 'POST'); + } + + performAuthorizedRequest(endpoint: string, params: Attributes = {}, method = 'GET', options: RequestOptions = {}): Promise { + const requestOptions: RequestOptions = { + ...options, + headers: { + ...options.headers, + 'Customer-Token': this.token, + }, + }; + + const adapter = this.adapter as unknown as Record Promise>; + return adapter[method.toLowerCase()]!(endpoint, params, requestOptions); + } + + async getSavedPlaces() { + const places = await this.performAuthorizedRequest('customers/places'); + return new Collection(places.map((attributes: Attributes) => new Place(attributes, this.adapter))); + } + + async getOrderHistory(params: Attributes = {}) { + const orders = await this.performAuthorizedRequest('customers/orders', params); + return new Collection(orders.map((attributes: Attributes) => new Order(attributes, this.adapter))); + } + + getStripeEphemeralKey(params: Attributes = {}) { + return this.performAuthorizedRequest('customers/stripe-ephemeral-key', params, 'POST'); + } + + getStripeSetupIntent(params: Attributes = {}) { + return this.performAuthorizedRequest('customers/stripe-setup-intent', params, 'POST'); + } + + startAccountClosure(params: Attributes = {}, options: RequestOptions = {}) { + return this.performAuthorizedRequest('customers/account-closure', params, 'POST', options); + } + + confirmAccountClosure(code: string, params: Attributes = {}, options: RequestOptions = {}) { + return this.performAuthorizedRequest('customers/confirm-account-closure', { code, ...params }, 'POST', options); + } + + requestPhoneVerification(phone: string, params: Attributes = {}, options: RequestOptions = {}) { + return this.performAuthorizedRequest('customers/request-phone-verification', { phone, ...params }, 'POST', options); + } + + verifyPhoneNumber(code: string, phone: string, params: Attributes = {}, options: RequestOptions = {}) { + return this.performAuthorizedRequest('customers/verify-phone-number', { code, phone, ...params }, 'POST', options); + } + + updateContactAlias(attributes: Attributes = {}, options: RequestOptions = {}) { + return this.performAuthorizedRequest(`contacts/${this.id}`, attributes, 'PUT', options).then((response) => { + this.syncAttributes(response); + return this; + }); + } +} + +register('resource', 'Customer', Customer); diff --git a/src/resources/delivery-service-quote.js b/src/resources/delivery-service-quote.js deleted file mode 100644 index 5324d5f..0000000 --- a/src/resources/delivery-service-quote.js +++ /dev/null @@ -1,89 +0,0 @@ -import StorefrontStore from '../store.js'; -import { Adapter, Collection, ServiceQuote, register } from '@fleetbase/sdk'; -import { formatCurrency, isEmpty, isArray } from '../utils/index.js'; - -export default class DeliveryServiceQuote extends ServiceQuote { - constructor(attributes = {}, adapter, options = {}) { - let finalAttributes = attributes; - let finalAdapter = adapter; - - // If `attributes` is actually an Adapter, adjust the arguments accordingly. - if (attributes instanceof Adapter) { - finalAttributes = {}; - finalAdapter = attributes; - } - - // Call `super()` exactly once with the resolved arguments. - super(finalAttributes, finalAdapter, 'service-quote', options); - } - - /** - * Set a new adapter to the resource instance, this will update the Store instance - * - * @param {Adapter} adapter - * @return {Resource} this - */ - setAdapter(adapter) { - this.adapter = adapter; - this.store = new StorefrontStore(this.resource, adapter, { - onAfterFetch: this.syncAttributes.bind(this), - actions: this.options?.actions, - }); - - return this; - } - - get formattedAmount() { - const { amount, currency } = this.getAttributes(['amount', 'currency']); - - if (isEmpty(amount) || isEmpty(currency)) { - return null; - } - - return formatCurrency(amount / 100, currency); - } - - async fromCart() { - return this.fetchServiceQuotesFromCart(...arguments); - } - - async fetchServiceQuotesFromCart(origin, destination, cart, config = 'storefront', all = false) { - if (origin?.id) { - origin = origin.id; - } - - if (destination?.id) { - destination = destination.id; - } - - if (cart?.id) { - cart = cart.id; - } - - try { - const serviceQuotes = await this.adapter.get('service-quotes/from-cart', { - origin, - destination, - cart, - config, - all, - }); - - if (isArray(serviceQuotes)) { - return new Collection(serviceQuotes.map((serviceQuote) => new DeliveryServiceQuote(serviceQuote, this.adapter))); - } - - return new DeliveryServiceQuote(serviceQuotes, this.adapter); - } catch (error) { - console.error('Error fetching service quotes:', error); - throw error; - } - } - - static async getFromCart(adapter, origin, destination, cart, config = 'storefront', all = false) { - const quote = new DeliveryServiceQuote(adapter); - return quote.fetchServiceQuotesFromCart(origin, destination, cart, config, all); - } -} - -register('resource', 'DeliveryServiceQuote', DeliveryServiceQuote); diff --git a/src/resources/delivery-service-quote.ts b/src/resources/delivery-service-quote.ts new file mode 100644 index 0000000..29d5cde --- /dev/null +++ b/src/resources/delivery-service-quote.ts @@ -0,0 +1,85 @@ +import StorefrontStore from '../store.js'; +import { Adapter, Collection, ServiceQuote, register } from '@fleetbase/sdk'; +import { formatCurrency, isEmpty, isArray } from '../utils/index.js'; +import type { Attributes, ResolvableIdentifier } from '../types.js'; + +export default class DeliveryServiceQuote extends ServiceQuote { + constructor(attributes: Attributes | Adapter = {}, adapter?: Adapter, options: Attributes = {}) { + let finalAttributes: Attributes = attributes as Attributes; + let finalAdapter: Adapter | undefined = adapter; + + // If `attributes` is actually an Adapter, adjust the arguments accordingly. + if (attributes instanceof Adapter || (attributes && typeof attributes.get === 'function' && typeof attributes.post === 'function')) { + finalAttributes = {}; + finalAdapter = attributes as Adapter; + } + + // Call `super()` exactly once with the resolved arguments. + super(finalAttributes, finalAdapter, 'service-quote', options); + } + + /** + * Set a new adapter to the resource instance, this will update the Store instance + * + * @param {Adapter} adapter + * @return {this} + */ + setAdapter(adapter: Adapter) { + this.adapter = adapter; + this.store = new StorefrontStore(this.resource, adapter, { + onAfterFetch: this.syncAttributes.bind(this), + actions: this.options?.actions, + }); + + return this; + } + + get formattedAmount() { + const { amount, currency } = this.getAttributes(['amount', 'currency']) as { amount?: number; currency?: string }; + + if (isEmpty(amount) || isEmpty(currency)) { + return null; + } + + return formatCurrency((amount as number) / 100, currency as string); + } + + async fromCart(...args: Parameters) { + return this.fetchServiceQuotesFromCart(...args); + } + + async fetchServiceQuotesFromCart(origin: ResolvableIdentifier, destination: ResolvableIdentifier, cart: ResolvableIdentifier, config = 'storefront', all = false) { + if (typeof origin === 'object' && origin?.id) { + origin = origin.id; + } + + if (typeof destination === 'object' && destination?.id) { + destination = destination.id; + } + + if (typeof cart === 'object' && cart?.id) { + cart = cart.id; + } + + const serviceQuotes = await this.adapter.get('service-quotes/from-cart', { + origin, + destination, + cart, + config, + all, + }); + + if (isArray(serviceQuotes)) { + return new Collection(serviceQuotes.map((serviceQuote: Attributes) => new DeliveryServiceQuote(serviceQuote, this.adapter))); + } + + return new DeliveryServiceQuote(serviceQuotes, this.adapter); + } + + static async getFromCart(adapter: Adapter, origin: ResolvableIdentifier, destination: ResolvableIdentifier, cart: ResolvableIdentifier, config = 'storefront', all = false) { + const quote = new DeliveryServiceQuote(adapter); + return quote.fetchServiceQuotesFromCart(origin, destination, cart, config, all); + } +} + +register('resource', 'DeliveryServiceQuote', DeliveryServiceQuote); diff --git a/src/resources/food-truck.js b/src/resources/food-truck.ts similarity index 51% rename from src/resources/food-truck.js rename to src/resources/food-truck.ts index 85c3e1a..aa897a7 100644 --- a/src/resources/food-truck.js +++ b/src/resources/food-truck.ts @@ -1,8 +1,9 @@ import Resource from '../resource.js'; -import { register } from '@fleetbase/sdk'; +import { Adapter, register } from '@fleetbase/sdk'; +import type { Attributes } from '../types.js'; export default class FoodTruck extends Resource { - constructor(attributes = {}, adapter, options = {}) { + constructor(attributes: Attributes = {}, adapter?: Adapter, options: Attributes = {}) { super(attributes, adapter, 'food-truck', options); } } diff --git a/src/resources/network.js b/src/resources/network.ts similarity index 51% rename from src/resources/network.js rename to src/resources/network.ts index c19b786..e41b583 100644 --- a/src/resources/network.js +++ b/src/resources/network.ts @@ -5,48 +5,49 @@ import Product from './product.js'; import Review from './review.js'; import Store from './store.js'; import StoreLocation from './store-location.js'; -import { Collection, register } from '@fleetbase/sdk'; +import { Adapter, Collection, register } from '@fleetbase/sdk'; +import type { Attributes, ResourceConstructor } from '../types.js'; export default class Network extends Resource { - constructor(attributes = {}, adapter, options = {}) { + constructor(attributes: Attributes = {}, adapter?: Adapter, options: Attributes = {}) { super(attributes, adapter, 'network', options); } - getTags(params = {}) { + getTags(params: Attributes = {}) { return this.adapter.get('tags', params); } - async getResourceCollection(endpoint, ResourceClass, params = {}) { - const resources = await this.adapter.get(endpoint, params); - return new Collection(resources.map((attributes) => new ResourceClass(attributes, this.adapter))); + async getResourceCollection(endpoint: string, ResourceClass: ResourceConstructor, params: Attributes = {}): Promise> { + const resources = await this.adapter.get(endpoint, params); + return new Collection(resources.map((attributes: Attributes) => new ResourceClass(attributes, this.adapter))); } - async getStores(params = {}) { + async getStores(params: Attributes = {}) { return this.getResourceCollection('stores', Store, params); } - async getStoreLocations(params = {}) { + async getStoreLocations(params: Attributes = {}) { return this.getResourceCollection('store-locations', StoreLocation, params); } - async getCategories(params = {}) { + async getCategories(params: Attributes = {}) { return this.getResourceCollection('categories', Category, params); } - async search(query, params = {}) { + async search(query: string, params: Attributes = {}) { return this.getResourceCollection('search', Product, { query, with_store: true, ...params }); } - async lookupStore(id) { - const attributes = await this.adapter.get(`lookup/${id}`); + async lookupStore(id: string) { + const attributes = await this.adapter.get(`lookup/${id}`); return new Store(attributes, this.adapter); } - async getReviews(storeId, params = {}) { + async getReviews(storeId: string, params: Attributes = {}) { return this.getResourceCollection('reviews', Review, { store: storeId, ...params }); } - async getPaymentGateways(params = {}) { + async getPaymentGateways(params: Attributes = {}) { return this.getResourceCollection('gateways', PaymentGateway, params); } } diff --git a/src/resources/order-actions.ts b/src/resources/order-actions.ts new file mode 100644 index 0000000..49f0bcc --- /dev/null +++ b/src/resources/order-actions.ts @@ -0,0 +1,23 @@ +import { Resource, StoreActions, isResource } from '@fleetbase/sdk'; +import type { Attributes, RequestOptions } from '../types.js'; +import type StorefrontStore from '../store.js'; + +function idFor(value: string | Resource) { + return isResource(value) ? value.id : value; +} + +export const orderActions = new StoreActions({ + create: undefined, + update: undefined, + findAll: undefined, + query: undefined, + queryRecord: undefined, + + completePickup: function (this: StorefrontStore, order: string | Resource, params: Attributes = {}, options: RequestOptions = {}) { + return this.adapter.put(`${this.namespace}/picked-up`, { order: idFor(order), ...params }, options); + }, + + getReceipt: function (this: StorefrontStore, order: string | Resource, params: Attributes = {}, options: RequestOptions = {}) { + return this.adapter.post(`${this.namespace}/receipt`, { order: idFor(order), ...params }, options); + }, +}); diff --git a/src/resources/order.ts b/src/resources/order.ts new file mode 100644 index 0000000..0459b38 --- /dev/null +++ b/src/resources/order.ts @@ -0,0 +1,10 @@ +import { Adapter, Order as FleetbaseOrder, register } from '@fleetbase/sdk'; +import type { Attributes } from '../types.js'; + +export default class Order extends FleetbaseOrder { + constructor(attributes: Attributes = {}, adapter?: Adapter, options: Attributes = {}) { + super(attributes, adapter, options); + } +} + +register('resource', 'Order', Order); diff --git a/src/resources/payment-gateway.js b/src/resources/payment-gateway.ts similarity index 68% rename from src/resources/payment-gateway.js rename to src/resources/payment-gateway.ts index e2ac712..12c563f 100644 --- a/src/resources/payment-gateway.js +++ b/src/resources/payment-gateway.ts @@ -1,17 +1,20 @@ import Resource from '../resource.js'; -import { register } from '@fleetbase/sdk'; +import { Adapter, register } from '@fleetbase/sdk'; +import type { Attributes } from '../types.js'; export default class PaymentGateway extends Resource { - constructor(attributes = {}, adapter, options = {}) { + private token?: string; + + constructor(attributes: Attributes = {}, adapter?: Adapter, options: Attributes = {}) { super(attributes, adapter, 'payment-gateway', options); } - get type() { - return this.getAttribute('type'); + get type(): string | undefined { + return this.getAttribute('type') as string | undefined; } - get code() { - return this.getAttribute('code'); + get code(): string | undefined { + return this.getAttribute('code') as string | undefined; } get isCashGateway() { @@ -22,7 +25,11 @@ export default class PaymentGateway extends Resource { return this.type === 'stripe'; } - setCheckoutToken(token) { + get isQPayGateway() { + return this.type === 'qpay' || this.code === 'qpay'; + } + + setCheckoutToken(token: string) { this.token = token; } diff --git a/src/resources/product.js b/src/resources/product.js deleted file mode 100644 index 4cfdf42..0000000 --- a/src/resources/product.js +++ /dev/null @@ -1,59 +0,0 @@ -import Resource from '../resource.js'; -import Review from './review.js'; -import { formatCurrency, isEmpty } from '../utils/index.js'; -import { Collection, register } from '@fleetbase/sdk'; -import Store from './store.js'; - -export default class Product extends Resource { - constructor(attributes = {}, adapter, options = {}) { - super(attributes, adapter, 'product', options); - } - - variants() { - return this.getAttribute('variants'); - } - - addons() { - return this.getAttribute('addon_categories'); - } - - get isOnSale() { - return this.getAttribute('is_on_sale'); - } - - get isNotOnSale() { - return !this.getAttribute('is_on_sale'); - } - - get formattedAmount() { - const { price, sale_price, currency } = this.getAttributes(['price', 'sale_price', 'currency']); - - if (this.isOnSale) { - if (isEmpty(sale_price) || isEmpty(currency)) { - return null; - } - - return formatCurrency(sale_price / 100, currency); - } - - if (isEmpty(price) || isEmpty(currency)) { - return null; - } - - return formatCurrency(price / 100, currency); - } - - get merchant() { - const attributes = this.getAttribute('store'); - - return attributes && typeof attributes === 'object' ? new Store(attributes, this.adapter) : null; - } - - getReviews() { - return this.adapter.get('reviews', { store: this.id }).then((reviews) => { - return new Collection(reviews.map((attributes) => new Review(attributes, this.adapter))); - }); - } -} - -register('resource', 'Product', Product); diff --git a/src/resources/product.ts b/src/resources/product.ts new file mode 100644 index 0000000..ef47ba7 --- /dev/null +++ b/src/resources/product.ts @@ -0,0 +1,76 @@ +import Resource from '../resource.js'; +import Review from './review.js'; +import { formatCurrency, isEmpty } from '../utils/index.js'; +import { Adapter, Collection, register } from '@fleetbase/sdk'; +import Store from './store.js'; +import type { Attributes } from '../types.js'; + +export default class Product extends Resource { + constructor(attributes: Attributes = {}, adapter?: Adapter, options: Attributes = {}) { + super(attributes, adapter, 'product', options); + } + + variants(): unknown { + return this.getAttribute('variants'); + } + + addons(): unknown { + return this.getAttribute('addon_categories'); + } + + images(): unknown[] { + return this.getAttribute('images') ?? []; + } + + videos(): unknown[] { + return this.getAttribute('videos') ?? []; + } + + hours(): unknown[] { + return this.getAttribute('hours') ?? []; + } + + get isOnSale(): boolean { + return this.getAttribute('is_on_sale') as boolean; + } + + get isNotOnSale() { + return !this.getAttribute('is_on_sale'); + } + + get formattedAmount() { + const { price, sale_price, currency } = this.getAttributes(['price', 'sale_price', 'currency']) as { + price?: number; + sale_price?: number; + currency?: string; + }; + + if (this.isOnSale) { + if (isEmpty(sale_price) || isEmpty(currency)) { + return null; + } + + return formatCurrency((sale_price as number) / 100, currency as string); + } + + if (isEmpty(price) || isEmpty(currency)) { + return null; + } + + return formatCurrency((price as number) / 100, currency as string); + } + + get merchant(): Store | null { + const attributes = this.getAttribute('store'); + + return attributes && typeof attributes === 'object' ? new Store(attributes as Attributes, this.adapter) : null; + } + + getReviews(): Promise> { + return this.adapter.get('reviews', { store: this.id }).then((reviews) => { + return new Collection(reviews.map((attributes: Attributes) => new Review(attributes, this.adapter))); + }); + } +} + +register('resource', 'Product', Product); diff --git a/src/resources/review.js b/src/resources/review.js deleted file mode 100644 index 24271bb..0000000 --- a/src/resources/review.js +++ /dev/null @@ -1,34 +0,0 @@ -import Resource from '../resource.js'; -import { StoreActions, register } from '@fleetbase/sdk'; - -export const reviewActions = new StoreActions({ - count: function (storeId, options = {}) { - const params = {}; - - if (storeId) { - params.store = storeId; - } - - return this.adapter.get(`${this.namespace}/count`, params, options); - }, -}); - -export default class Review extends Resource { - constructor(attributes = {}, adapter, options = {}) { - super(attributes, adapter, 'review', options); - } - - getMedia() { - // @todo - } - - getPhotos() { - // @todo - } - - getVideos() { - // @todo - } -} - -register('resource', 'Review', Review); diff --git a/src/resources/review.ts b/src/resources/review.ts new file mode 100644 index 0000000..ce33fde --- /dev/null +++ b/src/resources/review.ts @@ -0,0 +1,36 @@ +import Resource from '../resource.js'; +import { Adapter, StoreActions, register } from '@fleetbase/sdk'; +import type { Attributes, RequestOptions } from '../types.js'; +import type StorefrontStore from '../store.js'; + +export const reviewActions = new StoreActions({ + count: function (this: StorefrontStore, storeId: string | undefined, options: RequestOptions = {}) { + const params: Attributes = {}; + + if (storeId) { + params.store = storeId; + } + + return this.adapter.get(`${this.namespace}/count`, params, options); + }, +}); + +export default class Review extends Resource { + constructor(attributes: Attributes = {}, adapter?: Adapter, options: Attributes = {}) { + super(attributes, adapter, 'review', options); + } + + getMedia(): Attributes[] { + return this.getPhotos(); + } + + getPhotos(): Attributes[] { + return (this.getAttribute('photos') ?? []) as Attributes[]; + } + + getVideos(): Attributes[] { + return this.getMedia().filter((media: Attributes) => typeof media?.type === 'string' && media.type.startsWith('video/')); + } +} + +register('resource', 'Review', Review); diff --git a/src/resources/store-hour.js b/src/resources/store-hour.ts similarity index 66% rename from src/resources/store-hour.js rename to src/resources/store-hour.ts index ac4fd92..1e499d6 100644 --- a/src/resources/store-hour.js +++ b/src/resources/store-hour.ts @@ -1,14 +1,15 @@ import Resource from '../resource.js'; import { format, parse, isValid } from 'date-fns'; -import { register } from '@fleetbase/sdk'; +import { Adapter, register } from '@fleetbase/sdk'; +import type { Attributes } from '../types.js'; export default class StoreHour extends Resource { - constructor(attributes = {}, adapter, options = {}) { + constructor(attributes: Attributes = {}, adapter?: Adapter, options: Attributes = {}) { super(attributes, adapter, 'store-hour', options); } - get day() { - return this.getAttribute('day'); + get day(): string { + return this.getAttribute('day') as string; } get isClosed() { @@ -18,30 +19,41 @@ export default class StoreHour extends Resource { get is24Hours() { const start = this.startDateInstance; const end = this.endDateInstance; - const diff = Math.abs(start - end); + + if (start === null || end === null || !isValid(start) || !isValid(end)) { + return false; + } + + const diff = Math.abs(start.getTime() - end.getTime()); const hours = Math.floor(diff / 1000 / 60) / 60; return hours > 23; } - get startDateInstance() { + get startDateInstance(): Date | null { if (!this.hasAttribute('start')) { return null; } const start = this.getAttribute('start'); + if (typeof start !== 'string') { + return null; + } const includesSeconds = start.split(':').length === 3; const format = includesSeconds ? 'HH:mm:ss' : 'HH:mm'; return parse(start, format, new Date()); } - get endDateInstance() { + get endDateInstance(): Date | null { if (!this.hasAttribute('end')) { return null; } const end = this.getAttribute('end'); + if (typeof end !== 'string') { + return null; + } const includesSeconds = end.split(':').length === 3; const format = includesSeconds ? 'HH:mm:ss' : 'HH:mm'; @@ -49,11 +61,14 @@ export default class StoreHour extends Resource { } get humanReadableHoursRange() { - if (!isValid(this.startDateInstance) || !isValid(this.endDateInstance)) { - return `${this.start} - ${this.end}`; + const start = this.startDateInstance; + const end = this.endDateInstance; + + if (start === null || end === null || !isValid(start) || !isValid(end)) { + return `${this.getAttribute('start')} - ${this.getAttribute('end')}`; } - return `${format(this.startDateInstance, 'p')} - ${format(this.endDateInstance, 'p')}`; + return `${format(start, 'p')} - ${format(end, 'p')}`; } get humanReadableHours() { diff --git a/src/resources/store-location.js b/src/resources/store-location.ts similarity index 63% rename from src/resources/store-location.js rename to src/resources/store-location.ts index d323562..e32122f 100644 --- a/src/resources/store-location.js +++ b/src/resources/store-location.ts @@ -1,27 +1,29 @@ import Resource from '../resource.js'; import StoreHour from './store-hour.js'; -import { Collection, lookup, register } from '@fleetbase/sdk'; +import { Adapter, Collection, lookup, register } from '@fleetbase/sdk'; import { format } from 'date-fns'; +import type { Attributes } from '../types.js'; export default class StoreLocation extends Resource { - constructor(attributes = {}, adapter, options = {}) { + constructor(attributes: Attributes = {}, adapter?: Adapter, options: Attributes = {}) { super(attributes, adapter, 'store-location', options); } - get latitude() { - return this.getAttribute('place.location.coordinates.1'); + get latitude(): number | undefined { + return this.getAttribute('place.location.coordinates.1') as number | undefined; } - get longitude() { - return this.getAttribute('place.location.coordinates.0'); + get longitude(): number | undefined { + return this.getAttribute('place.location.coordinates.0') as number | undefined; } - get hours() { - return new Collection((this.getAttribute('hours') || []).map((attributes) => new StoreHour(attributes, this.adapter))); + get hours(): Collection { + const hours = this.getAttribute('hours', []); + return new Collection((hours || []).map((attributes) => new StoreHour(attributes, this.adapter))); } /** Raw embedded merchant payload, normalized across API response versions. */ - get storeData() { + get storeData(): unknown { const embeddedStore = this.getAttribute('store_data'); const legacyStore = this.getAttribute('store'); @@ -29,19 +31,20 @@ export default class StoreLocation extends Resource { } /** Public store identifier for this location. */ - get storeId() { + get storeId(): string | undefined { const store = this.getAttribute('store'); - return typeof store === 'string' ? store : this.storeData?.id || this.storeData?.public_id; + const data = this.storeData as Attributes | null; + return (typeof store === 'string' ? store : data?.id || data?.public_id) as string | undefined; } /** Typed embedded merchant when requested with `with_store`. */ - get merchant() { + get merchant(): Resource | null { return this.storeData ? lookup('resource', 'Store', this.storeData, this.adapter) : null; } get isAlwaysOpen() { - return this.hours.every((hour) => hour?.is24Hours); + return this.hours.length > 0 && this.hours.every((hour) => hour?.is24Hours); } get today() { @@ -51,11 +54,11 @@ export default class StoreLocation extends Resource { } get schedule() { - const schedule = {}; + const schedule: Record> = {}; const week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']; for (let i = 0; i < week.length; i++) { - const day = week[i]; + const day = week[i]!; schedule[day] = new Collection(); } @@ -63,7 +66,9 @@ export default class StoreLocation extends Resource { for (let i = 0; i < this.hours.length; i++) { const hour = this.hours.objectAt(i); - schedule[hour.day].pushObject(hour); + if (hour && schedule[hour.day]) { + schedule[hour.day].pushObject(hour); + } } return schedule; diff --git a/src/resources/store.js b/src/resources/store.js deleted file mode 100644 index 821e776..0000000 --- a/src/resources/store.js +++ /dev/null @@ -1,55 +0,0 @@ -import Resource from '../resource.js'; -import StoreLocation from './store-location.js'; -import PaymentGateway from './payment-gateway.js'; -import Review from './review.js'; -import { Collection, Place, register } from '@fleetbase/sdk'; - -export default class Store extends Resource { - constructor(attributes = {}, adapter, options = {}) { - super(attributes, adapter, 'store', options); - } - - getReviews(params = {}) { - return this.adapter.get('reviews', { store: this.id, ...params }).then((reviews) => { - return new Collection(reviews.map((attributes) => new Review(attributes, this.adapter))); - }); - } - - getLocations(params = {}) { - return this.adapter.get('locations', { store: this.id, ...params }).then((storeLocations) => { - return new Collection( - storeLocations.map((attributes) => { - if (attributes.place) { - attributes.place = new Place(attributes.place); - } - - return new StoreLocation(attributes, this.adapter); - }) - ); - }); - } - - getLocation(id) { - return this.adapter.get(`locations/${id}`, { store: this.id }).then((attributes) => { - return new StoreLocation(attributes, this.adapter); - }); - } - - getPaymentGateways(params = {}) { - return this.adapter.get('gateways', params).then((gateways) => { - return new Collection( - gateways.map((attributes) => { - return new PaymentGateway(attributes, this.adapter); - }) - ); - }); - } - - getPaymentGateway(id) { - return this.adapter.get(`gateways/${id}`).then((attributes) => { - return new PaymentGateway(attributes, this.adapter); - }); - } -} - -register('resource', 'Store', Store); diff --git a/src/resources/store.ts b/src/resources/store.ts new file mode 100644 index 0000000..dec465c --- /dev/null +++ b/src/resources/store.ts @@ -0,0 +1,60 @@ +import Resource from '../resource.js'; +import StoreLocation from './store-location.js'; +import PaymentGateway from './payment-gateway.js'; +import Review from './review.js'; +import { Adapter, Collection, Place, register } from '@fleetbase/sdk'; +import type { Attributes } from '../types.js'; + +export default class Store extends Resource { + constructor(attributes: Attributes = {}, adapter?: Adapter, options: Attributes = {}) { + super(attributes, adapter, 'store', options); + } + + getReviews(params: Attributes = {}) { + return this.adapter.get('reviews', { store: this.id, ...params }).then((reviews) => { + return new Collection(reviews.map((attributes: Attributes) => new Review(attributes, this.adapter))); + }); + } + + getTags(params: Attributes = {}) { + return this.adapter.get('tags', params); + } + + getLocations(params: Attributes = {}) { + return this.adapter.get('locations', { store: this.id, ...params }).then((storeLocations) => { + return new Collection( + storeLocations.map((attributes: Attributes) => { + if (attributes.place) { + attributes.place = new Place(attributes.place as Attributes, this.adapter); + } + + return new StoreLocation(attributes, this.adapter); + }) + ); + }); + } + + getLocation(id: string) { + return this.adapter.get(`locations/${id}`, { store: this.id }).then((attributes) => { + return new StoreLocation(attributes, this.adapter); + }); + } + + getPaymentGateways(params: Attributes = {}) { + return this.adapter.get('gateways', params).then((gateways) => { + return new Collection( + gateways.map((attributes: Attributes) => { + return new PaymentGateway(attributes, this.adapter); + }) + ); + }); + } + + getPaymentGateway(id: string) { + return this.adapter.get(`gateways/${id}`).then((attributes) => { + return new PaymentGateway(attributes, this.adapter); + }); + } +} + +register('resource', 'Store', Store); diff --git a/src/store.js b/src/store.js deleted file mode 100644 index f8927aa..0000000 --- a/src/store.js +++ /dev/null @@ -1,15 +0,0 @@ -import { Store, classify, extendStoreActions, lookup } from '@fleetbase/sdk'; - -export default class StorefrontStore extends Store { - constructor() { - super(...arguments); - } - - extendActions(actions = []) { - return extendStoreActions(this, actions); - } - - serialize(json) { - return lookup('resource', classify(this.resource), json, this.adapter); - } -} diff --git a/src/store.ts b/src/store.ts new file mode 100644 index 0000000..2e00cb1 --- /dev/null +++ b/src/store.ts @@ -0,0 +1,17 @@ +import { Store, StoreActions, classify, extendStoreActions, lookup } from '@fleetbase/sdk'; +import type { Adapter } from '@fleetbase/sdk'; +import type { Attributes } from './types.js'; + +export default class StorefrontStore extends Store { + constructor(resource: string, adapter: Adapter, options: Attributes = {}) { + super(resource, adapter, options); + } + + extendActions(actions: StoreActions | Array = []) { + return extendStoreActions(this, actions); + } + + serialize(json: Attributes): T { + return lookup('resource', classify(this.resource), json, this.adapter); + } +} diff --git a/src/storefront.js b/src/storefront.js deleted file mode 100644 index 25fdf06..0000000 --- a/src/storefront.js +++ /dev/null @@ -1,105 +0,0 @@ -import StorefrontStore from './store.js'; -import { isKeyValid } from './utils/index.js'; -import { Product, Category, Customer, Cart, Store, StoreLocation, StoreHour, DeliveryServiceQuote, Checkout, PaymentGateway, Review, Network, FoodTruck } from './resources.js'; -import { cartActions } from './resources/cart.js'; -import { customerActions } from './resources/customer.js'; -import { checkoutActions } from './resources/checkout.js'; -import { reviewActions } from './resources/review.js'; -import { Collection, lookup, detectAdapter } from '@fleetbase/sdk'; - -/** - * // instance - * const storefront = new Storefront(); - * - */ -export default class Storefront { - /** - * Builds an instance of the Fleetbase Storefront SDK - * - * @param {String} storeKey The access key for the storefront store - * @param {Object} config The config object - * @param {Boolean} debug Enable debug mode - * @return {Storefront} Instance - */ - constructor(storeKey, config = {}, debug = false) { - this.version = config.version || 'v1'; - this.options = { - version: this.version, - host: config.host || 'https://api.fleetbase.io', - namespace: config.namespace || `storefront/${this.version}`, - publicKey: storeKey, - debug, - }; - - if (!isKeyValid(storeKey)) { - throw new Error('⚠️ Invalid Storefront key given to Storefront SDK'); - } - - this.adapter = config.adapter || detectAdapter(this.options); - - this.initializeStores(); - } - - initializeStores() { - this.products = new StorefrontStore('product', this.adapter); - this.categories = new StorefrontStore('category', this.adapter); - this.foodTrucks = new StorefrontStore('food-truck', this.adapter); - this.reviews = new StorefrontStore('review', this.adapter).extendActions(reviewActions); - this.customers = new StorefrontStore('customer', this.adapter).extendActions(customerActions); - this.cart = new StorefrontStore('cart', this.adapter).extendActions(cartActions); - this.checkout = new StorefrontStore('checkout', this.adapter).extendActions(checkoutActions); - - return this; - } - - /** loads information about this storefront */ - about(options = {}) { - return this.adapter.get('about').then((attributes) => (options.resource ? this.hydrateOwner(attributes) : attributes)); - } - - /** loads the storefront owner as a typed Store or Network resource */ - getOwner() { - return this.about({ resource: true }); - } - - /** lookup a specific store or network provided the ID */ - lookup(id, options = {}) { - return this.adapter.get(`lookup/${id}`).then((attributes) => (options.resource ? this.hydrateOwner(attributes) : attributes)); - } - - /** lookup a store or network as a typed resource */ - lookupResource(id) { - return this.lookup(id, { resource: true }); - } - - /** search products in store or network */ - search(query, options = {}) { - return this.adapter.get('search', { query, ...options }).then((products) => { - return new Collection(products.map((product) => new Product(product, this.adapter))); - }); - } - - hydrateOwner(attributes = {}) { - if (attributes?.is_network === true) { - return new Network(attributes, this.adapter); - } - - return new Store(attributes, this.adapter); - } - - static newInstance() { - return new Storefront(...arguments); - } - - setAdapter(adapter) { - this.adapter = adapter; - - return this.initializeStores(); - } - - getAdapter() { - return this.adapter; - } -} - -export { Product, Category, Customer, Cart, Store, StoreLocation, StoreHour, DeliveryServiceQuote, Checkout, PaymentGateway, Review, Network, FoodTruck, lookup }; diff --git a/src/storefront.ts b/src/storefront.ts new file mode 100644 index 0000000..4fcad79 --- /dev/null +++ b/src/storefront.ts @@ -0,0 +1,199 @@ +import StorefrontStore from './store.js'; +import { isKeyValid } from './utils/index.js'; +import { Product, Category, Customer, Cart, Store, StoreLocation, StoreHour, DeliveryServiceQuote, Checkout, PaymentGateway, Review, Network, FoodTruck, Order } from './resources.js'; +import { cartActions } from './resources/cart.js'; +import { customerActions } from './resources/customer.js'; +import { checkoutActions } from './resources/checkout.js'; +import { reviewActions } from './resources/review.js'; +import { orderActions } from './resources/order-actions.js'; +import { Collection, lookup, detectAdapter } from '@fleetbase/sdk'; +import type { Adapter } from '@fleetbase/sdk'; +import type { Attributes, RequestOptions, ResourceIdentifier, StorefrontConfig } from './types.js'; + +export interface ReviewStoreActions { + count(storeId?: string, options?: RequestOptions): Promise; +} + +export interface CustomerStoreActions { + login(identity: string, password?: string | null, attributes?: Attributes): Promise; + loginWithApple(appleUserId: string, identityToken: string, authorizationCode: string, email: string, name: string, attributes?: Attributes): Promise; + loginWithFacebook(facebookUserId: string, email: string, name: string, avatarUrl: string, attributes?: Attributes): Promise; + loginWithGoogle(idToken: string, clientId: string, attributes?: Attributes): Promise; + verifyCode(identity: string, code: string, attributes?: Attributes): Promise; + requestCreationCode(identity: string, mode?: string): Promise; + create(identity: string, code: string, attributes?: Attributes): Promise; + retrieve(id: string): Promise; +} + +export interface CartStoreActions { + add(id: string, productId: string, quantity?: number, data?: Attributes, options?: RequestOptions): Promise; + update(id: string, cartItemId: string, quantity: number, data?: Attributes, options?: RequestOptions): Promise; + remove(id: string, cartItemId: string, options?: RequestOptions): Promise; + empty(id: string, options?: RequestOptions): Promise; + retrieve(id?: string): Promise; +} + +export interface CheckoutStoreActions { + initialize( + customer: ResourceIdentifier, + cart: ResourceIdentifier, + serviceQuote: ResourceIdentifier, + gateway: ResourceIdentifier, + orderOptions?: Attributes, + options?: RequestOptions + ): Promise; + captureOrder(token: string, params?: Attributes, options?: RequestOptions): Promise; + createStripeSetupIntent(customer: ResourceIdentifier, params?: Attributes, options?: RequestOptions): Promise; + updateStripePaymentIntent( + paymentIntent: string, + customer: ResourceIdentifier, + cart: ResourceIdentifier, + serviceQuote: ResourceIdentifier, + orderOptions?: Attributes, + options?: RequestOptions + ): Promise; + getStatus(checkout: ResourceIdentifier, token: string, options?: RequestOptions): Promise; + captureQPay(checkout: ResourceIdentifier, params?: Attributes, options?: RequestOptions): Promise; + captureQPayCallback(checkout: ResourceIdentifier, params?: Attributes, options?: RequestOptions): Promise; +} + +export interface OrderStoreActions { + completePickup(order: ResourceIdentifier, params?: Attributes, options?: RequestOptions): Promise; + getReceipt(order: ResourceIdentifier, params?: Attributes, options?: RequestOptions): Promise; +} + +export type ReviewStore = StorefrontStore & ReviewStoreActions; +export type CustomerStore = StorefrontStore & CustomerStoreActions; +export type CartStore = StorefrontStore & CartStoreActions; +export type CheckoutStore = StorefrontStore & CheckoutStoreActions; +export type OrderStore = StorefrontStore & OrderStoreActions; + +/** + * // instance + * const storefront = new Storefront(); + * + */ +export default class Storefront { + version: string; + options: Attributes; + adapter: Adapter; + products!: StorefrontStore; + categories!: StorefrontStore; + foodTrucks!: StorefrontStore; + reviews!: ReviewStore; + customers!: CustomerStore; + cart!: CartStore; + checkout!: CheckoutStore; + orders!: OrderStore; + + /** + * Builds an instance of the Fleetbase Storefront SDK + * + * @param {String} storeKey The access key for the storefront store + * @param {Object} config The config object + * @param {Boolean} debug Enable debug mode + * @return {Storefront} Instance + */ + constructor(storeKey: string, config: StorefrontConfig = {}, debug = false) { + this.version = config.version || 'v1'; + this.options = { + version: this.version, + host: config.host || 'https://api.fleetbase.io', + namespace: config.namespace || `storefront/${this.version}`, + publicKey: storeKey, + debug, + }; + + if (!isKeyValid(storeKey)) { + throw new Error('⚠️ Invalid Storefront key given to Storefront SDK'); + } + + this.adapter = config.adapter || detectAdapter(this.options); + + this.initializeStores(); + } + + initializeStores() { + this.products = new StorefrontStore('product', this.adapter); + this.categories = new StorefrontStore('category', this.adapter); + this.foodTrucks = new StorefrontStore('food-truck', this.adapter); + this.reviews = new StorefrontStore('review', this.adapter).extendActions(reviewActions) as ReviewStore; + this.customers = new StorefrontStore('customer', this.adapter).extendActions(customerActions) as CustomerStore; + this.cart = new StorefrontStore('cart', this.adapter).extendActions(cartActions) as CartStore; + this.checkout = new StorefrontStore('checkout', this.adapter).extendActions(checkoutActions) as CheckoutStore; + this.orders = new StorefrontStore('order', this.adapter).extendActions(orderActions) as OrderStore; + + return this; + } + + /** + * Loads information about this storefront. + * + * @param {{ resource?: boolean }} options + * @returns {Promise | Store | Network>} + */ + about(options: { resource?: boolean } = {}): Promise { + return this.adapter.get('about').then((attributes) => (options.resource ? this.hydrateOwner(attributes) : attributes)); + } + + /** @returns {Promise} Loads the storefront owner as a typed resource. */ + getOwner(): Promise { + return this.about({ resource: true }) as Promise; + } + + /** + * Looks up a specific store or network by public ID. + * + * @param {string} id + * @param {{ resource?: boolean }} options + * @returns {Promise | Store | Network>} + */ + lookup(id: string, options: { resource?: boolean } = {}): Promise { + return this.adapter.get(`lookup/${id}`).then((attributes) => (options.resource ? this.hydrateOwner(attributes) : attributes)); + } + + /** + * @param {string} id + * @returns {Promise} + */ + lookupResource(id: string): Promise { + return this.lookup(id, { resource: true }) as Promise; + } + + /** + * Searches products in the current store or network. + * + * @param {string} query + * @param {Record} options + * @returns {Promise>} + */ + search(query: string, options: Attributes = {}): Promise> { + return this.adapter.get('search', { query, ...options }).then((products) => { + return new Collection(products.map((product: Attributes) => new Product(product, this.adapter))); + }); + } + + hydrateOwner(attributes: Attributes = {}): Store | Network { + if (attributes?.is_network === true) { + return new Network(attributes, this.adapter); + } + + return new Store(attributes, this.adapter); + } + + static newInstance(...args: ConstructorParameters) { + return new Storefront(...args); + } + + setAdapter(adapter: Adapter) { + this.adapter = adapter; + + return this.initializeStores(); + } + + getAdapter() { + return this.adapter; + } +} + +export { Product, Category, Customer, Cart, Store, StoreLocation, StoreHour, DeliveryServiceQuote, Checkout, PaymentGateway, Review, Network, FoodTruck, Order, lookup }; diff --git a/src/types.ts b/src/types.ts new file mode 100644 index 0000000..022d556 --- /dev/null +++ b/src/types.ts @@ -0,0 +1,20 @@ +import type { Adapter, Resource } from '@fleetbase/sdk'; + +export type Attributes = Record; + +export interface RequestOptions extends Record { + headers?: Record; +} + +export interface StorefrontConfig { + version?: string; + host?: string; + namespace?: string; + adapter?: Adapter; +} + +export type ResourceIdentifier = string | Resource; + +export type ResolvableIdentifier = string | { id?: string } | null | undefined; + +export type ResourceConstructor = new (attributes?: Attributes, adapter?: Adapter, options?: Attributes) => T; diff --git a/src/utils/array.js b/src/utils/array.js deleted file mode 100644 index 5264699..0000000 --- a/src/utils/array.js +++ /dev/null @@ -1,3 +0,0 @@ -const { isArray } = Array; - -export { isArray }; diff --git a/src/utils/array.ts b/src/utils/array.ts new file mode 100644 index 0000000..b165b35 --- /dev/null +++ b/src/utils/array.ts @@ -0,0 +1,3 @@ +export function isArray(value: unknown): value is unknown[] { + return Array.isArray(value); +} diff --git a/src/utils/format-currency.js b/src/utils/format-currency.ts similarity index 76% rename from src/utils/format-currency.js rename to src/utils/format-currency.ts index 7ecea31..b2bc1fc 100644 --- a/src/utils/format-currency.js +++ b/src/utils/format-currency.ts @@ -1,4 +1,4 @@ -export function formatCurrency(amount = 0, currency = 'USD', currencyDisplay = 'symbol') { +export function formatCurrency(amount = 0, currency = 'USD', currencyDisplay: Intl.NumberFormatOptions['currencyDisplay'] = 'symbol') { return new Intl.NumberFormat('en-US', { style: 'currency', currency, diff --git a/src/utils/get-countries.js b/src/utils/get-countries.ts similarity index 81% rename from src/utils/get-countries.js rename to src/utils/get-countries.ts index 385ca17..e237de4 100644 --- a/src/utils/get-countries.js +++ b/src/utils/get-countries.ts @@ -1,6 +1,6 @@ import { countries } from 'countries-list'; -export function getCountries(_country = null) { +export function getCountries(_country: string | number | null = null) { const _countries = Object.values(countries); const _codes = Object.keys(countries); const _list = []; @@ -17,7 +17,7 @@ export function getCountries(_country = null) { _list.sort((a, b) => a.name.localeCompare(b.name)); if (_country !== null) { - return _list.find((c) => c.iso2 === _country || parseInt(c.phone) === parseInt(_country)); + return _list.find((c) => c.iso2 === _country || parseInt(String(c.phone)) === parseInt(String(_country))); } return _list; diff --git a/src/utils/index.js b/src/utils/index.ts similarity index 100% rename from src/utils/index.js rename to src/utils/index.ts diff --git a/src/utils/is-email.js b/src/utils/is-email.ts similarity index 100% rename from src/utils/is-email.js rename to src/utils/is-email.ts diff --git a/src/utils/is-empty.js b/src/utils/is-empty.js deleted file mode 100644 index 5d719cb..0000000 --- a/src/utils/is-empty.js +++ /dev/null @@ -1,34 +0,0 @@ -export function isEmpty(obj) { - const none = obj === null || obj === undefined; - if (none) { - return none; - } - - if (typeof obj.size === 'number') { - return !obj.size; - } - - const objectType = typeof obj; - - if (objectType === 'object') { - const { size } = obj; - if (typeof size === 'number') { - return !size; - } - } - - if (typeof obj.length === 'number' && objectType !== 'function') { - return !obj.length; - } - - if (objectType === 'object') { - const { length } = obj; - if (typeof length === 'number') { - return !length; - } - } - - return false; -} - -export default isEmpty; diff --git a/src/utils/is-empty.ts b/src/utils/is-empty.ts new file mode 100644 index 0000000..ad3ce49 --- /dev/null +++ b/src/utils/is-empty.ts @@ -0,0 +1,20 @@ +export function isEmpty(obj: unknown) { + const none = obj === null || obj === undefined; + if (none) { + return none; + } + + const objectType = typeof obj; + + if (typeof obj === 'object' && typeof (obj as { size?: unknown }).size === 'number') { + return !(obj as { size: number }).size; + } + + if ((typeof obj === 'object' || typeof obj === 'string') && typeof (obj as { length?: unknown }).length === 'number' && objectType !== 'function') { + return !(obj as { length: number }).length; + } + + return false; +} + +export default isEmpty; diff --git a/src/utils/is-key-valid.js b/src/utils/is-key-valid.ts similarity index 77% rename from src/utils/is-key-valid.js rename to src/utils/is-key-valid.ts index 24f03cf..0939b82 100644 --- a/src/utils/is-key-valid.js +++ b/src/utils/is-key-valid.ts @@ -1,4 +1,4 @@ -export function isKeyValid(key) { +export function isKeyValid(key: unknown) { return typeof key === 'string' && key.length > 30 && (key.startsWith('store_') || key.startsWith('network_')); } diff --git a/src/utils/is-phone.js b/src/utils/is-phone.js deleted file mode 100644 index ee354ad..0000000 --- a/src/utils/is-phone.js +++ /dev/null @@ -1,5 +0,0 @@ -export function isPhone(phone = '') { - return /^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(phone); -} - -export default isPhone; diff --git a/src/utils/is-phone.ts b/src/utils/is-phone.ts new file mode 100644 index 0000000..b155578 --- /dev/null +++ b/src/utils/is-phone.ts @@ -0,0 +1,5 @@ +export function isPhone(phone = '') { + return /^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/.test(phone); +} + +export default isPhone; diff --git a/stryker.config.mjs b/stryker.config.mjs new file mode 100644 index 0000000..bcfef12 --- /dev/null +++ b/stryker.config.mjs @@ -0,0 +1,27 @@ +/** @type {import('@stryker-mutator/api/core').PartialStrykerOptions} */ +export default { + plugins: ['@stryker-mutator/vitest-runner'], + testRunner: 'vitest', + coverageAnalysis: 'perTest', + reporters: ['clear-text', 'progress', 'json'], + mutate: [ + 'src/storefront.ts:135-181', + 'src/resource.ts:13-20', + 'src/resources/customer.ts:9-19', + 'src/resources/customer.ts:90-110', + 'src/resources/store-hour.ts:15-83', + 'src/utils/format-currency.ts', + 'src/utils/is-email.ts', + 'src/utils/is-key-valid.ts', + 'src/utils/is-phone.ts', + ], + thresholds: { + high: 90, + low: 80, + break: 80, + }, + concurrency: 4, + tempDirName: '.cache/stryker', + ignorePatterns: ['.cache', 'coverage', 'dist', 'reports'], + disableTypeChecks: false, +}; diff --git a/tests/actions.test.js b/tests/actions.test.js new file mode 100644 index 0000000..5335bb2 --- /dev/null +++ b/tests/actions.test.js @@ -0,0 +1,175 @@ +import { describe, expect, it, vi } from 'vitest'; +import { Order as FleetbaseOrder, Place } from '@fleetbase/sdk'; +import Storefront, { Cart, Category, Checkout, Customer, DeliveryServiceQuote, FoodTruck, Order, PaymentGateway, Product, Review } from '../src/storefront.js'; +import FakeAdapter from './helpers/fake-adapter.js'; + +const STORE_KEY = `store_${'a'.repeat(32)}`; + +describe('store action wire contracts', () => { + it('maps standard resource stores to the public commerce CRUD routes', async () => { + const adapter = new FakeAdapter({ + products: [{ id: 'product_1' }], + 'products/product_1': { id: 'product_1' }, + 'post:products': { id: 'product_2' }, + 'put:products/product_1': { id: 'product_1', name: 'Updated' }, + 'delete:products/product_1': { id: 'product_1', deleted: true }, + categories: [{ id: 'category_1' }], + 'food-trucks': [{ id: 'food_truck_1' }], + reviews: [{ id: 'review_1' }], + 'post:reviews': { id: 'review_2' }, + 'delete:reviews/review_1': { id: 'review_1', deleted: true }, + }); + const storefront = new Storefront(STORE_KEY, { adapter }); + + expect((await storefront.products.findAll())[0]).toBeInstanceOf(Product); + expect((await storefront.products.query({ category: 'category_1' }))[0]).toBeInstanceOf(Product); + await expect(storefront.products.findRecord('product_1')).resolves.toBeInstanceOf(Product); + await expect(storefront.products.create({ name: 'New' })).resolves.toBeInstanceOf(Product); + await expect(storefront.products.update('product_1', { name: 'Updated' })).resolves.toBeInstanceOf(Product); + await expect(storefront.products.destroy('product_1')).resolves.toBeInstanceOf(Product); + expect((await storefront.categories.findAll())[0]).toBeInstanceOf(Category); + expect((await storefront.foodTrucks.findAll())[0]).toBeInstanceOf(FoodTruck); + expect((await storefront.reviews.findAll())[0]).toBeInstanceOf(Review); + await expect(storefront.reviews.create({ rating: 5 })).resolves.toBeInstanceOf(Review); + await expect(storefront.reviews.destroy('review_1')).resolves.toBeInstanceOf(Review); + + expect(adapter.calls).toEqual( + expect.arrayContaining([ + expect.objectContaining({ method: 'get', endpoint: 'products', params: { category: 'category_1' } }), + expect.objectContaining({ method: 'post', endpoint: 'products', params: { name: 'New' } }), + expect.objectContaining({ method: 'put', endpoint: 'products/product_1', params: { name: 'Updated' } }), + expect.objectContaining({ method: 'delete', endpoint: 'reviews/review_1' }), + ]) + ); + }); + + it('covers customer authentication and creation actions', async () => { + const adapter = new FakeAdapter({ + 'customers/login-with-sms': { challenge: true }, + 'customers/login': { id: 'customer_1' }, + 'customers/login-with-apple': { id: 'customer_1' }, + 'customers/login-with-facebook': { id: 'customer_1' }, + 'customers/login-with-google': { id: 'customer_1' }, + 'customers/verify-code': { id: 'customer_1' }, + 'customers/request-creation-code': { sent: true }, + customers: { id: 'customer_1' }, + 'customers/customer_1': { id: 'customer_1' }, + }); + const { customers } = new Storefront(STORE_KEY, { adapter }); + + await expect(customers.login('+12025550100')).resolves.toEqual({ challenge: true }); + expect(() => customers.login('person@example.com')).toThrow('Login requires password!'); + await expect(customers.login('person@example.com', 'secret', { device: 'web' })).resolves.toBeInstanceOf(Customer); + await expect(customers.loginWithApple('apple', 'identity', 'auth', 'person@example.com', 'Person', { device: 'ios' })).resolves.toBeInstanceOf(Customer); + await expect(customers.loginWithFacebook('facebook', 'person@example.com', 'Person', 'avatar', { device: 'web' })).resolves.toBeInstanceOf(Customer); + await expect(customers.loginWithGoogle('token', 'client', { device: 'android' })).resolves.toBeInstanceOf(Customer); + await expect(customers.verifyCode('person@example.com', '1234', { device: 'web' })).resolves.toBeInstanceOf(Customer); + await expect(customers.requestCreationCode('person@example.com')).resolves.toEqual({ sent: true }); + await expect(customers.requestCreationCode('+12025550100', 'sms')).resolves.toEqual({ sent: true }); + await expect(customers.create('person@example.com', '1234', { name: 'Person' })).resolves.toBeInstanceOf(Customer); + await expect(customers.retrieve('customer_1')).resolves.toBeInstanceOf(Customer); + + expect(adapter.calls).toEqual( + expect.arrayContaining([ + expect.objectContaining({ method: 'post', endpoint: 'customers/login-with-sms', params: { phone: '+12025550100' } }), + expect.objectContaining({ method: 'post', endpoint: 'customers/login', params: { identity: 'person@example.com', password: 'secret', device: 'web' } }), + expect.objectContaining({ method: 'post', endpoint: 'customers/request-creation-code', params: { identity: '+12025550100', mode: 'sms' } }), + ]) + ); + }); + + it('uses request-scoped customer authorization and hydrates related resources', async () => { + const adapter = new FakeAdapter({ + 'customers/register-device': { registered: true }, + 'customers/places': [{ id: 'place_1' }], + 'customers/orders': [{ id: 'order_1' }], + 'customers/stripe-ephemeral-key': { key: 'ephemeral' }, + 'customers/stripe-setup-intent': { secret: 'setup' }, + 'customers/account-closure': { started: true }, + 'customers/confirm-account-closure': { confirmed: true }, + 'customers/request-phone-verification': { sent: true }, + 'customers/verify-phone-number': { verified: true }, + 'contacts/customer_1': { id: 'customer_1', name: 'Updated' }, + }); + const customer = new Customer({ id: 'customer_1', token: 'customer-token', name: 'Original' }, adapter); + + await expect(customer.syncDevice('device-token', 'ios')).resolves.toEqual({ registered: true }); + expect((await customer.getSavedPlaces())[0]).toBeInstanceOf(Place); + expect((await customer.getOrderHistory({ limit: 5 }))[0]).toBeInstanceOf(FleetbaseOrder); + await expect(customer.getStripeEphemeralKey({ version: '2026' })).resolves.toEqual({ key: 'ephemeral' }); + await expect(customer.getStripeSetupIntent()).resolves.toEqual({ secret: 'setup' }); + await expect(customer.startAccountClosure({ reason: 'unused' }, { timeout: 2 })).resolves.toEqual({ started: true }); + await expect(customer.confirmAccountClosure('1234', { reason: 'unused' })).resolves.toEqual({ confirmed: true }); + await expect(customer.requestPhoneVerification('+12025550100', { locale: 'en' })).resolves.toEqual({ sent: true }); + await expect(customer.verifyPhoneNumber('1234', '+12025550100', { locale: 'en' })).resolves.toEqual({ verified: true }); + await expect(customer.updateContactAlias({ name: 'Updated' })).resolves.toBe(customer); + expect(customer.getAttribute('name')).toBe('Updated'); + + for (const call of adapter.calls) { + expect(call.options.headers?.['Customer-Token']).toBe('customer-token'); + } + expect(adapter.headers).toEqual({}); + + const nextAdapter = new FakeAdapter(); + expect(customer.setAdapter(nextAdapter)).toBe(customer); + expect(customer.store.adapter).toBe(nextAdapter); + + const error = new Error('offline'); + nextAdapter.responses['customers/places'] = error; + await expect(customer.getSavedPlaces()).rejects.toBe(error); + }); + + it('covers checkout raw and resource argument contracts', async () => { + const adapter = new FakeAdapter({ + 'checkouts/before': { token: 'checkout-token' }, + 'checkouts/capture': { id: 'order_1' }, + 'checkouts/stripe-setup-intent': { secret: 'setup' }, + 'checkouts/stripe-update-payment-intent': { updated: true }, + 'checkouts/status': { status: 'completed' }, + 'checkouts/capture-qpay': { captured: true }, + }); + const { checkout } = new Storefront(STORE_KEY, { adapter }); + const customer = new Customer({ id: 'customer_1' }, adapter); + const cart = new Cart({ id: 'cart_1' }, adapter); + const quote = new DeliveryServiceQuote({ id: 'quote_1' }, adapter); + const gateway = new PaymentGateway({ id: 'gateway_1', code: 'stripe' }, adapter); + + await expect(checkout.initialize(customer, cart, quote, gateway, { tip: 10 }, { timeout: 2 })).resolves.toEqual({ token: 'checkout-token' }); + await expect(checkout.initialize('customer_1', 'cart_1', 'quote_1', 'cash')).resolves.toEqual({ token: 'checkout-token' }); + const order = await checkout.captureOrder('checkout-token', { note: 'front desk' }, { timeout: 2 }); + expect(order).toBeInstanceOf(Order); + expect(order.adapter).toBe(adapter); + await expect(checkout.createStripeSetupIntent(customer, { usage: 'off_session' })).resolves.toEqual({ secret: 'setup' }); + await expect(checkout.createStripeSetupIntent('customer_1')).resolves.toEqual({ secret: 'setup' }); + await expect(checkout.updateStripePaymentIntent('pi_1', customer, cart, quote, { tip: 20 })).resolves.toEqual({ updated: true }); + await expect(checkout.updateStripePaymentIntent('pi_1', 'customer_1', 'cart_1', 'quote_1')).resolves.toEqual({ updated: true }); + await expect(checkout.getStatus(new Checkout({ id: 'checkout_1' }, adapter), 'token')).resolves.toEqual({ status: 'completed' }); + await expect(checkout.getStatus('checkout_1', 'token')).resolves.toEqual({ status: 'completed' }); + await expect(checkout.captureQPay(new Checkout({ id: 'checkout_1' }, adapter), { payment: 'qpay' })).resolves.toEqual({ captured: true }); + await expect(checkout.captureQPay('checkout_1')).resolves.toEqual({ captured: true }); + await expect(checkout.captureQPayCallback(new Checkout({ id: 'checkout_1' }, adapter), { invoice_id: 'invoice' })).resolves.toEqual({ captured: true }); + await expect(checkout.captureQPayCallback('checkout_1')).resolves.toEqual({ captured: true }); + + const instance = new Checkout({}, adapter); + for (const method of ['initialize', 'captureOrder', 'createStripeSetupIntent', 'updateStripePaymentIntent', 'getStatus', 'captureQPay', 'captureQPayCallback']) { + instance.store[method] = vi.fn().mockResolvedValue(method); + await expect(instance[method]('argument')).resolves.toBe(method); + } + }); + + it('covers review count and authenticated order actions', async () => { + const adapter = new FakeAdapter({ + 'reviews/count': { count: 3 }, + 'orders/picked-up': { completed: true }, + 'orders/receipt': { receipt: true }, + }); + const storefront = new Storefront(STORE_KEY, { adapter }); + await expect(storefront.reviews.count()).resolves.toEqual({ count: 3 }); + await expect(storefront.reviews.count('store_1', { timeout: 2 })).resolves.toEqual({ count: 3 }); + const order = new Order({ id: 'order_1' }, adapter); + await expect(storefront.orders.completePickup(order, { code: '1234' }, { timeout: 2 })).resolves.toEqual({ completed: true }); + await expect(storefront.orders.completePickup('order_1')).resolves.toEqual({ completed: true }); + await expect(storefront.orders.getReceipt(order, { receiver_type: 'CITIZEN' })).resolves.toEqual({ receipt: true }); + await expect(storefront.orders.getReceipt('order_1')).resolves.toEqual({ receipt: true }); + }); +}); diff --git a/tests/contracts/public-api.snapshot.json b/tests/contracts/public-api.snapshot.json new file mode 100644 index 0000000..71ece9f --- /dev/null +++ b/tests/contracts/public-api.snapshot.json @@ -0,0 +1,91 @@ +{ + "exports": [ + "Cart", + "Category", + "Checkout", + "Customer", + "DeliveryServiceQuote", + "FoodTruck", + "Network", + "Order", + "PaymentGateway", + "Product", + "Review", + "Store", + "StoreHour", + "StoreLocation", + "default", + "lookup" + ], + "static": ["length", "name", "newInstance", "prototype"], + "stores": ["adapter", "cart", "categories", "checkout", "customers", "foodTrucks", "options", "orders", "products", "reviews", "version"], + "storeActions": { + "cart": ["add", "empty", "remove", "retrieve", "update"], + "categories": [], + "checkout": ["captureOrder", "captureQPay", "captureQPayCallback", "createStripeSetupIntent", "getStatus", "initialize", "updateStripePaymentIntent"], + "customers": ["create", "login", "loginWithApple", "loginWithFacebook", "loginWithGoogle", "requestCreationCode", "retrieve", "verifyCode"], + "foodTrucks": [], + "orders": ["completePickup", "getReceipt"], + "products": [], + "reviews": ["count"] + }, + "prototypes": { + "Storefront": ["about", "constructor", "getAdapter", "getOwner", "hydrateOwner", "initializeStores", "lookup", "lookupResource", "search", "setAdapter"], + "Cart": ["add", "constructor", "contents", "delete", "empty", "hasProduct", "isEmpty", "isNotEmpty", "refresh", "remove", "subtotal", "update"], + "Category": ["constructor", "getProducts"], + "Checkout": ["captureOrder", "captureQPay", "captureQPayCallback", "constructor", "createStripeSetupIntent", "getStatus", "initialize", "updateStripePaymentIntent"], + "Customer": [ + "confirmAccountClosure", + "constructor", + "getOrderHistory", + "getSavedPlaces", + "getStripeEphemeralKey", + "getStripeSetupIntent", + "performAuthorizedRequest", + "requestPhoneVerification", + "setAdapter", + "startAccountClosure", + "syncDevice", + "token", + "updateContactAlias", + "verifyPhoneNumber" + ], + "DeliveryServiceQuote": ["constructor", "fetchServiceQuotesFromCart", "formattedAmount", "fromCart", "setAdapter"], + "FoodTruck": ["constructor"], + "Network": ["constructor", "getCategories", "getPaymentGateways", "getResourceCollection", "getReviews", "getStoreLocations", "getStores", "getTags", "lookupStore", "search"], + "Order": ["constructor"], + "PaymentGateway": [ + "code", + "constructor", + "create", + "destroy", + "findRecord", + "getCheckoutToken", + "isCashGateway", + "isQPayGateway", + "isStripeGateway", + "reload", + "setCheckoutToken", + "type", + "update" + ], + "Product": ["addons", "constructor", "formattedAmount", "getReviews", "hours", "images", "isNotOnSale", "isOnSale", "merchant", "variants", "videos"], + "Review": ["constructor", "getMedia", "getPhotos", "getVideos"], + "Store": ["constructor", "getLocation", "getLocations", "getPaymentGateway", "getPaymentGateways", "getReviews", "getTags"], + "StoreHour": [ + "constructor", + "create", + "day", + "destroy", + "endDateInstance", + "humanReadableHours", + "humanReadableHoursRange", + "is24Hours", + "isClosed", + "reload", + "startDateInstance", + "update" + ], + "StoreLocation": ["constructor", "create", "destroy", "hours", "isAlwaysOpen", "latitude", "longitude", "merchant", "schedule", "storeData", "storeId", "today", "update"] + } +} diff --git a/tests/helpers/fake-adapter.js b/tests/helpers/fake-adapter.js new file mode 100644 index 0000000..dc68323 --- /dev/null +++ b/tests/helpers/fake-adapter.js @@ -0,0 +1,40 @@ +export default class FakeAdapter { + constructor(responses = {}) { + this.responses = responses; + this.calls = []; + this.headers = {}; + } + + respond(method, endpoint, params = {}, options = {}) { + const call = { method, endpoint, params, options }; + this.calls.push(call); + const configured = this.responses[`${method}:${endpoint}`] ?? this.responses[endpoint]; + + if (configured instanceof Error) { + return Promise.reject(configured); + } + + return Promise.resolve(typeof configured === 'function' ? configured(call) : (configured ?? {})); + } + + get(endpoint, params = {}, options = {}) { + return this.respond('get', endpoint, params, options); + } + + post(endpoint, params = {}, options = {}) { + return this.respond('post', endpoint, params, options); + } + + put(endpoint, params = {}, options = {}) { + return this.respond('put', endpoint, params, options); + } + + delete(endpoint, params = {}, options = {}) { + return this.respond('delete', endpoint, params, options); + } + + setHeaders(headers = {}) { + this.headers = { ...this.headers, ...headers }; + return this; + } +} diff --git a/tests/public-api.test.js b/tests/public-api.test.js new file mode 100644 index 0000000..e10c133 --- /dev/null +++ b/tests/public-api.test.js @@ -0,0 +1,30 @@ +import { readFileSync } from 'node:fs'; +import { describe, expect, it } from 'vitest'; +import Storefront, * as sdk from '../src/storefront.js'; +import FakeAdapter from './helpers/fake-adapter.js'; + +const snapshot = JSON.parse(readFileSync(new URL('./contracts/public-api.snapshot.json', import.meta.url), 'utf8')); + +describe('public API compatibility snapshot', () => { + it('preserves root exports, statics, resource prototypes, stores, and actions', () => { + const adapter = new FakeAdapter(); + const storefront = new Storefront(`store_${'a'.repeat(32)}`, { adapter }); + + expect(Object.keys(sdk).sort()).toEqual(snapshot.exports); + expect(Object.getOwnPropertyNames(Storefront).sort()).toEqual(snapshot.static); + expect(Object.keys(storefront).sort()).toEqual(snapshot.stores); + + for (const [name, properties] of Object.entries(snapshot.prototypes)) { + const Constructor = name === 'Storefront' ? Storefront : sdk[name]; + expect(Object.getOwnPropertyNames(Constructor.prototype).sort()).toEqual(properties); + } + + for (const [name, actions] of Object.entries(snapshot.storeActions)) { + expect( + Object.keys(storefront[name]) + .filter((property) => typeof storefront[name][property] === 'function') + .sort() + ).toEqual(actions); + } + }); +}); diff --git a/tests/resources.test.js b/tests/resources.test.js new file mode 100644 index 0000000..fb08b62 --- /dev/null +++ b/tests/resources.test.js @@ -0,0 +1,265 @@ +import { describe, expect, it, vi } from 'vitest'; +import { Adapter, Collection, Order as FleetbaseOrder, Place } from '@fleetbase/sdk'; +import StorefrontStore from '../src/store.js'; +import StorefrontResource from '../src/resource.js'; +import { Cart, Category, DeliveryServiceQuote, FoodTruck, Network, Order, PaymentGateway, Product, Review, Store, StoreHour, StoreLocation } from '../src/resources.js'; +import FakeAdapter from './helpers/fake-adapter.js'; + +describe('resource and store contracts', () => { + it('serializes registered resources and rebuilds stores when adapters change', () => { + const adapter = new FakeAdapter(); + const store = new StorefrontStore('product', adapter); + expect(store.extendActions()).toBeUndefined(); + expect(store.serialize({ id: 'product_1' })).toBeInstanceOf(Product); + + const resource = new StorefrontResource({ id: 'custom_1' }, adapter, 'storefront-resource'); + const nextAdapter = new FakeAdapter(); + expect(resource.setAdapter(nextAdapter)).toBe(resource); + expect(resource.adapter).toBe(nextAdapter); + expect(resource.store.adapter).toBe(nextAdapter); + }); + + it('implements cart actions, coercion, totals, and empty states', async () => { + const adapter = new FakeAdapter({ + 'post:carts/cart_1/product_1': { id: 'cart_1', items: [] }, + 'put:carts/cart_1/item_1': { id: 'cart_1', items: [] }, + 'delete:carts/cart_1/item_1': { id: 'cart_1', items: [] }, + 'put:carts/cart_1/empty': { id: 'cart_1', items: [] }, + 'carts/cart_1': { id: 'cart_1', items: [] }, + }); + const cart = new Cart( + { + id: 'cart_1', + items: [ + { product_id: 'product_1', subtotal: 250 }, + { product_id: 'product_2', subtotal: null }, + ], + }, + adapter + ); + const product = new Product({ id: 'product_1' }, adapter); + + expect(cart.subtotal()).toBe(250); + expect(cart.hasProduct('product_1')).toBe(true); + expect(cart.hasProduct('missing')).toBe(false); + expect(cart.isEmpty).toBe(false); + expect(cart.isNotEmpty).toBe(true); + expect(await cart.add(product, 2, { note: 'hot' }, { timeout: 1 })).toBeInstanceOf(Cart); + expect(await cart.add('product_1')).toBeInstanceOf(Cart); + expect(await cart.update('item_1', 3)).toBeInstanceOf(Cart); + expect(await cart.remove('item_1')).toBeInstanceOf(Cart); + expect(await cart.empty()).toBeInstanceOf(Cart); + expect(await cart.refresh()).toBeInstanceOf(Cart); + expect(cart.subtotal()).toBe(0); + expect(new Cart({ id: 'cart_2', items: null }, adapter).contents()).toEqual([]); + expect(new Cart({ id: 'cart_2', items: {} }, adapter).isEmpty).toBe(true); + + const destroy = vi.spyOn(cart, 'destroy').mockResolvedValue('deleted'); + await expect(cart.delete()).resolves.toBe('deleted'); + expect(destroy).toHaveBeenCalledOnce(); + }); + + it('hydrates category products and product helpers with adapter identity', async () => { + const adapter = new FakeAdapter({ + products: [{ id: 'product_1' }], + reviews: [{ id: 'review_1' }], + }); + const category = new Category({ id: 'category_1' }, adapter); + const [categoryProduct] = await category.getProducts(); + expect(categoryProduct).toBeInstanceOf(Product); + expect(categoryProduct.adapter).toBe(adapter); + + const product = new Product( + { + id: 'product_1', + variants: ['small'], + addon_categories: ['milk'], + images: ['image'], + videos: ['video'], + hours: ['hour'], + price: 1250, + currency: 'USD', + store: { id: 'store_1' }, + }, + adapter + ); + expect(product.variants()).toEqual(['small']); + expect(product.addons()).toEqual(['milk']); + expect(product.images()).toEqual(['image']); + expect(product.videos()).toEqual(['video']); + expect(product.hours()).toEqual(['hour']); + expect(product.isOnSale).toBeNull(); + expect(product.isNotOnSale).toBe(true); + expect(product.formattedAmount).toBe('$12.50'); + expect(product.merchant).toBeInstanceOf(Store); + expect(product.merchant.adapter).toBe(adapter); + expect((await product.getReviews())[0]).toBeInstanceOf(Review); + + expect(new Product({ price: null, currency: 'USD' }, adapter).formattedAmount).toBeNull(); + expect(new Product({ price: 100 }, adapter).formattedAmount).toBeNull(); + expect(new Product({ is_on_sale: true, sale_price: 500, currency: 'USD' }, adapter).formattedAmount).toBe('$5.00'); + expect(new Product({ is_on_sale: true, sale_price: null, currency: 'USD' }, adapter).formattedAmount).toBeNull(); + expect(new Product({ is_on_sale: true, sale_price: 500 }, adapter).formattedAmount).toBeNull(); + expect(new Product({}, adapter).merchant).toBeNull(); + expect(new Product({}, adapter).images()).toEqual([]); + expect(new Product({}, adapter).videos()).toEqual([]); + expect(new Product({}, adapter).hours()).toEqual([]); + }); + + it('hydrates store, network, locations, gateways, and reviews', async () => { + const adapter = new FakeAdapter({ + reviews: [{ id: 'review_1' }], + tags: ['coffee'], + locations: [ + { id: 'location_1', place: { id: 'place_1' }, hours: [] }, + { id: 'location_2', hours: [] }, + ], + 'locations/location_1': { id: 'location_1', hours: [] }, + gateways: [{ id: 'gateway_1', type: 'cash' }], + 'gateways/gateway_1': { id: 'gateway_1', type: 'cash' }, + stores: [{ id: 'store_1' }], + 'store-locations': [{ id: 'location_1', hours: [] }], + categories: [{ id: 'category_1' }], + search: [{ id: 'product_1' }], + 'lookup/store_1': { id: 'store_1' }, + }); + const store = new Store({ id: 'store_1' }, adapter); + expect((await store.getReviews({ limit: 1 }))[0]).toBeInstanceOf(Review); + expect(await store.getTags()).toEqual(['coffee']); + const [location, locationWithoutPlace] = await store.getLocations({ limit: 1 }); + expect(location).toBeInstanceOf(StoreLocation); + expect(location.getAttribute('place')).toBeInstanceOf(Place); + expect(location.getAttribute('place').adapter).toBe(adapter); + expect(locationWithoutPlace).toBeInstanceOf(StoreLocation); + expect(await store.getLocation('location_1')).toBeInstanceOf(StoreLocation); + expect((await store.getPaymentGateways())[0]).toBeInstanceOf(PaymentGateway); + expect(await store.getPaymentGateway('gateway_1')).toBeInstanceOf(PaymentGateway); + + const network = new Network({ id: 'network_1' }, adapter); + expect(await network.getTags({ limit: 1 })).toEqual(['coffee']); + expect((await network.getStores())[0]).toBeInstanceOf(Store); + expect((await network.getStoreLocations())[0]).toBeInstanceOf(StoreLocation); + expect((await network.getCategories())[0]).toBeInstanceOf(Category); + expect((await network.search('coffee'))[0]).toBeInstanceOf(Product); + expect(await network.lookupStore('store_1')).toBeInstanceOf(Store); + expect((await network.getReviews('store_1'))[0]).toBeInstanceOf(Review); + expect((await network.getPaymentGateways())[0]).toBeInstanceOf(PaymentGateway); + }); + + it('models location schedules and read-only resource failures', () => { + const adapter = new FakeAdapter(); + const monday = new StoreHour({ day: 'Monday', start: '09:00', end: '17:00' }, adapter); + const always = new StoreHour({ day: 'Tuesday', start: '00:00:00', end: '23:59:59' }, adapter); + const closed = new StoreHour({ day: 'Wednesday', start: null, end: null }, adapter); + const closesOnly = new StoreHour({ day: 'Thursday', start: null, end: '17:00' }, adapter); + const opensOnly = new StoreHour({ day: 'Friday', start: '09:00', end: null }, adapter); + const exactly23Hours = new StoreHour({ day: 'Saturday', start: '00:00', end: '23:00' }, adapter); + const invalidStart = new StoreHour({ day: 'Sunday', start: 'invalid', end: '17:00' }, adapter); + const invalidEnd = new StoreHour({ day: 'Sunday', start: '09:00', end: 'invalid' }, adapter); + const invalid = new StoreHour({ day: 'Other', start: 2, end: 'invalid' }, adapter); + const location = new StoreLocation( + { + id: 'location_1', + place: { location: { coordinates: [106.9, 47.9] } }, + store: 'store_1', + store_data: { id: 'store_1' }, + hours: [monday.serialize(), always.serialize(), invalid.serialize()], + }, + adapter + ); + + expect(location.latitude).toBe(47.9); + expect(location.longitude).toBe(106.9); + expect(location.storeData).toEqual({ id: 'store_1' }); + expect(location.storeId).toBe('store_1'); + expect(location.merchant).toBeInstanceOf(Store); + expect(location.isAlwaysOpen).toBe(false); + expect(location.schedule.Monday).toHaveLength(1); + expect(location.today).toBeInstanceOf(Collection); + expect(new StoreLocation({ hours: [] }, adapter).merchant).toBeNull(); + expect(new StoreLocation({ store: { public_id: 'store_2' }, hours: [always.serialize()] }, adapter).storeId).toBe('store_2'); + expect(new StoreLocation({ hours: [always.serialize()] }, adapter).isAlwaysOpen).toBe(true); + + expect(monday.day).toBe('Monday'); + expect(monday.isClosed).toBe(false); + expect(monday.is24Hours).toBe(false); + expect(monday.startDateInstance).toBeInstanceOf(Date); + expect(monday.endDateInstance).toBeInstanceOf(Date); + expect(monday.humanReadableHoursRange).toContain(' - '); + expect(monday.humanReadableHours).toContain(' - '); + expect(always.is24Hours).toBe(true); + expect(always.humanReadableHours).toBe('24 Hours'); + expect(closed.isClosed).toBe(true); + expect(closed.startDateInstance).toBeNull(); + expect(closed.endDateInstance).toBeNull(); + expect(closed.humanReadableHours).toBe('Closed'); + expect(closesOnly.isClosed).toBe(false); + expect(opensOnly.isClosed).toBe(false); + expect(exactly23Hours.is24Hours).toBe(false); + expect(invalidStart.is24Hours).toBe(false); + expect(invalidStart.humanReadableHoursRange).toBe('invalid - 17:00'); + expect(invalidEnd.is24Hours).toBe(false); + expect(invalidEnd.humanReadableHoursRange).toBe('09:00 - invalid'); + expect(invalid.startDateInstance).toBeNull(); + expect(invalid.is24Hours).toBe(false); + expect(invalid.humanReadableHoursRange).toBe('2 - invalid'); + const missing = new StoreHour({ day: 'Thursday' }, adapter); + expect(missing.startDateInstance).toBeNull(); + expect(missing.endDateInstance).toBeNull(); + + for (const method of ['create', 'update', 'destroy']) { + expect(() => location[method]()).toThrow(`There is no ${method}() method store location!`); + } + for (const method of ['create', 'update', 'destroy', 'reload']) { + expect(() => monday[method]()).toThrow(`There is no ${method}() method store location!`); + } + }); + + it('models payment gateways, review media, food trucks, and storefront orders', () => { + const adapter = new FakeAdapter(); + const cash = new PaymentGateway({ type: 'cash', code: 'cash' }, adapter); + const stripe = new PaymentGateway({ type: 'stripe', code: 'stripe' }, adapter); + const qpay = new PaymentGateway({ type: 'other', code: 'qpay' }, adapter); + expect(cash.isCashGateway).toBe(true); + expect(cash.isStripeGateway).toBe(false); + expect(stripe.isStripeGateway).toBe(true); + expect(qpay.isQPayGateway).toBe(true); + expect(new PaymentGateway({ type: 'qpay' }, adapter).isQPayGateway).toBe(true); + cash.setCheckoutToken('checkout-token'); + expect(cash.getCheckoutToken()).toBe('checkout-token'); + for (const method of ['findRecord', 'create', 'update', 'destroy', 'reload']) { + expect(() => cash[method]()).toThrow(`There is no ${method}() method for payment gateways!`); + } + + const review = new Review({ photos: [{ type: 'image/jpeg' }, { type: 'video/mp4' }] }, adapter); + expect(review.getMedia()).toEqual(review.getPhotos()); + expect(review.getVideos()).toEqual([{ type: 'video/mp4' }]); + expect(new Review({}, adapter).getPhotos()).toEqual([]); + expect(new FoodTruck({ id: 'truck_1' }, adapter).resource).toBe('food-truck'); + expect(new Order({ id: 'order_1' }, adapter)).toBeInstanceOf(FleetbaseOrder); + }); + + it('fetches delivery quotes for resource IDs, raw IDs, lists, and single responses', async () => { + const adapter = new FakeAdapter({ + 'service-quotes/from-cart': ({ params }) => (params.all ? [{ id: 'quote_1', amount: 1250, currency: 'USD' }] : { id: 'quote_1', amount: 1250, currency: 'USD' }), + }); + const quote = new DeliveryServiceQuote({}, adapter); + expect(quote.formattedAmount).toBeNull(); + expect(new DeliveryServiceQuote({ amount: 1250, currency: 'USD' }, adapter).formattedAmount).toBe('$12.50'); + expect(new DeliveryServiceQuote({ amount: null, currency: 'USD' }, adapter).formattedAmount).toBeNull(); + expect(new DeliveryServiceQuote({ amount: 100 }, adapter).formattedAmount).toBeNull(); + const single = await quote.fromCart({ id: 'origin_1' }, { id: 'destination_1' }, { id: 'cart_1' }); + expect(single).toBeInstanceOf(DeliveryServiceQuote); + expect(single.adapter).toBe(adapter); + const list = await quote.fetchServiceQuotesFromCart('origin_1', 'destination_1', 'cart_1', 'storefront', true); + expect(list).toBeInstanceOf(Collection); + expect(list[0]).toBeInstanceOf(DeliveryServiceQuote); + expect(await DeliveryServiceQuote.getFromCart(adapter, 'origin_1', 'destination_1', 'cart_1')).toBeInstanceOf(DeliveryServiceQuote); + + const sdkAdapter = new Adapter(); + sdkAdapter.get = adapter.get.bind(adapter); + sdkAdapter.post = adapter.post.bind(adapter); + expect(new DeliveryServiceQuote(sdkAdapter).adapter).toBe(sdkAdapter); + expect(quote.setAdapter(adapter)).toBe(quote); + }); +}); diff --git a/tests/storefront.test.js b/tests/storefront.test.js index b31f785..e364b2f 100644 --- a/tests/storefront.test.js +++ b/tests/storefront.test.js @@ -1,4 +1,4 @@ -import { assert } from 'chai'; +import { describe, expect, it } from 'vitest'; import Storefront, { Network, Product, Store, StoreLocation } from '../src/storefront.js'; const NETWORK_KEY = `network_${'a'.repeat(32)}`; @@ -24,9 +24,11 @@ class FakeAdapter { describe('Storefront SDK marketplace contracts', () => { it('validates store and network keys without live credentials', () => { - assert.instanceOf(new Storefront(NETWORK_KEY, { adapter: new FakeAdapter() }), Storefront); - assert.instanceOf(new Storefront(STORE_KEY, { adapter: new FakeAdapter() }), Storefront); - assert.throws(() => new Storefront('network_too_short', { adapter: new FakeAdapter() }), /Invalid Storefront key/); + expect(new Storefront(NETWORK_KEY, { adapter: new FakeAdapter() })).toBeInstanceOf(Storefront); + expect(new Storefront(STORE_KEY, { adapter: new FakeAdapter() })).toBeInstanceOf(Storefront); + expect(new Storefront(STORE_KEY).getAdapter()).toBeDefined(); + expect(Storefront.newInstance(STORE_KEY, { adapter: new FakeAdapter() })).toBeInstanceOf(Storefront); + expect(() => new Storefront('network_too_short', { adapter: new FakeAdapter() })).toThrow(/Invalid Storefront key/); }); it('preserves raw about and lookup behavior while offering typed owner hydration', async () => { @@ -36,10 +38,11 @@ describe('Storefront SDK marketplace contracts', () => { }); const storefront = new Storefront(NETWORK_KEY, { adapter }); - assert.deepEqual(await storefront.about(), { id: 'network_public', is_network: true, is_store: false }); - assert.instanceOf(await storefront.getOwner(), Network); - assert.deepEqual(await storefront.lookup('store_public'), { id: 'store_public', is_network: false, is_store: true }); - assert.instanceOf(await storefront.lookupResource('store_public'), Store); + expect(await storefront.about()).toEqual({ id: 'network_public', is_network: true, is_store: false }); + expect(await storefront.getOwner()).toBeInstanceOf(Network); + expect(await storefront.lookup('store_public')).toEqual({ id: 'store_public', is_network: false, is_store: true }); + expect(await storefront.lookupResource('store_public')).toBeInstanceOf(Store); + expect(storefront.hydrateOwner(null)).toBeInstanceOf(Store); }); it('hydrates searched products and their embedded merchants with the active adapter', async () => { @@ -49,12 +52,12 @@ describe('Storefront SDK marketplace contracts', () => { const storefront = new Storefront(NETWORK_KEY, { adapter }); const products = await storefront.search('coffee', { with_store: true }); - assert.lengthOf(products, 1); - assert.instanceOf(products[0], Product); - assert.strictEqual(products[0].adapter, adapter); - assert.instanceOf(products[0].merchant, Store); - assert.strictEqual(products[0].merchant.adapter, adapter); - assert.deepInclude(adapter.calls[0], { + expect(products).toHaveLength(1); + expect(products[0]).toBeInstanceOf(Product); + expect(products[0].adapter).toBe(adapter); + expect(products[0].merchant).toBeInstanceOf(Store); + expect(products[0].merchant.adapter).toBe(adapter); + expect(adapter.calls[0]).toMatchObject({ endpoint: 'search', params: { query: 'coffee', with_store: true }, }); @@ -67,10 +70,10 @@ describe('Storefront SDK marketplace contracts', () => { const returned = storefront.setAdapter(nextAdapter); - assert.strictEqual(returned, storefront); - assert.strictEqual(storefront.getAdapter(), nextAdapter); + expect(returned).toBe(storefront); + expect(storefront.getAdapter()).toBe(nextAdapter); for (const storeName of ['products', 'categories', 'foodTrucks', 'reviews', 'customers', 'cart', 'checkout']) { - assert.strictEqual(storefront[storeName].adapter, nextAdapter, `${storeName} uses the replacement adapter`); + expect(storefront[storeName].adapter, `${storeName} uses the replacement adapter`).toBe(nextAdapter); } }); @@ -103,23 +106,23 @@ describe('Storefront SDK marketplace contracts', () => { const reviews = await network.getReviews('store_public', { limit: 10 }); const tags = await network.getTags(); - assert.instanceOf(stores[0], Store); - assert.instanceOf(locations[0], StoreLocation); - assert.strictEqual(locations[0].storeId, 'store_public'); - assert.deepEqual(locations[0].storeData, { id: 'store_public', name: 'Cafe' }); - assert.instanceOf(locations[0].merchant, Store); - assert.strictEqual(locations[0].merchant.adapter, adapter); - assert.equal(categories[0].resource, 'category'); - assert.instanceOf(products[0], Product); - assert.instanceOf(products[0].merchant, Store); - assert.instanceOf(store, Store); - assert.equal(gateways[0].resource, 'payment-gateway'); - assert.equal(reviews[0].resource, 'review'); - assert.deepEqual(tags, ['coffee', 'open-late']); - assert.deepInclude(adapter.calls.find((call) => call.endpoint === 'search'), { + expect(stores[0]).toBeInstanceOf(Store); + expect(locations[0]).toBeInstanceOf(StoreLocation); + expect(locations[0].storeId).toBe('store_public'); + expect(locations[0].storeData).toEqual({ id: 'store_public', name: 'Cafe' }); + expect(locations[0].merchant).toBeInstanceOf(Store); + expect(locations[0].merchant.adapter).toBe(adapter); + expect(categories[0].resource).toBe('category'); + expect(products[0]).toBeInstanceOf(Product); + expect(products[0].merchant).toBeInstanceOf(Store); + expect(store).toBeInstanceOf(Store); + expect(gateways[0].resource).toBe('payment-gateway'); + expect(reviews[0].resource).toBe('review'); + expect(tags).toEqual(['coffee', 'open-late']); + expect(adapter.calls.find((call) => call.endpoint === 'search')).toMatchObject({ params: { query: 'coffee', with_store: true, limit: 5 }, }); - assert.deepInclude(adapter.calls.find((call) => call.endpoint === 'reviews'), { + expect(adapter.calls.find((call) => call.endpoint === 'reviews')).toMatchObject({ params: { store: 'store_public', limit: 10 }, }); }); @@ -134,10 +137,10 @@ describe('Storefront SDK marketplace contracts', () => { adapter ); - assert.deepEqual(location.storeData, { id: 'store_legacy', name: 'Legacy Cafe' }); - assert.equal(location.storeId, 'store_legacy'); - assert.lengthOf(location.hours, 0); - assert.instanceOf(location.merchant, Store); + expect(location.storeData).toEqual({ id: 'store_legacy', name: 'Legacy Cafe' }); + expect(location.storeId).toBe('store_legacy'); + expect(location.hours).toHaveLength(0); + expect(location.merchant).toBeInstanceOf(Store); }); it('propagates network helper failures without unconditional console output', async () => { @@ -146,9 +149,9 @@ describe('Storefront SDK marketplace contracts', () => { try { await network.getStores(); - assert.fail('Expected getStores() to reject'); + throw new Error('Expected getStores() to reject'); } catch (caught) { - assert.strictEqual(caught, error); + expect(caught).toBe(error); } }); }); diff --git a/tests/types/consumer.cts b/tests/types/consumer.cts new file mode 100644 index 0000000..18f53d5 --- /dev/null +++ b/tests/types/consumer.cts @@ -0,0 +1,7 @@ +import Storefront = require('@fleetbase/storefront'); + +const client = new Storefront(`store_${'a'.repeat(32)}`); +const product: InstanceType = new Storefront.Product(); + +void client; +void product; diff --git a/tests/types/consumer.ts b/tests/types/consumer.ts new file mode 100644 index 0000000..01af3f8 --- /dev/null +++ b/tests/types/consumer.ts @@ -0,0 +1,19 @@ +import Storefront, { Cart, Customer, FoodTruck, Network, Order, Product, Store } from '@fleetbase/storefront'; + +const client = new Storefront(`store_${'a'.repeat(32)}`); +const replacement = Storefront.newInstance(`network_${'b'.repeat(32)}`); + +client.setAdapter(replacement.getAdapter()); +client.search('coffee').then((products) => products[0] satisfies Product); +client.getOwner().then((owner) => owner satisfies Store | Network); +client.products.findAll().then((products) => products[0] satisfies Product); +client.customers.login('person@example.com', 'secret'); +client.cart.add('cart_1', 'product_1', 2); +client.checkout.captureOrder('checkout-token').then((order) => order satisfies Order); +client.orders.getReceipt('order_1'); +client.reviews.count('store_1'); + +new Cart(); +new Customer(); +new FoodTruck(); +new Order(); diff --git a/tests/types/tsconfig.json b/tests/types/tsconfig.json new file mode 100644 index 0000000..69f386d --- /dev/null +++ b/tests/types/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "baseUrl": "../..", + "paths": {}, + "module": "NodeNext", + "moduleResolution": "NodeNext" + }, + "include": ["consumer.ts", "consumer.cts", "../../types/**/*.d.ts"] +} diff --git a/tests/utils.test.js b/tests/utils.test.js new file mode 100644 index 0000000..e513b6e --- /dev/null +++ b/tests/utils.test.js @@ -0,0 +1,50 @@ +import { describe, expect, it } from 'vitest'; +import { formatCurrency, getCountries, isArray, isEmail, isEmpty, isKeyValid, isPhone } from '../src/utils/index.js'; + +describe('utility contracts', () => { + it('validates storefront keys, email addresses, phone numbers, and arrays', () => { + expect(isKeyValid(`store_${'a'.repeat(32)}`)).toBe(true); + expect(isKeyValid(`network_${'a'.repeat(32)}`)).toBe(true); + expect(isKeyValid(`other_${'a'.repeat(32)}`)).toBe(false); + expect(isKeyValid('store_short')).toBe(false); + expect(isKeyValid(`store_${'a'.repeat(24)}`)).toBe(false); + expect(isKeyValid(null)).toBe(false); + expect(isEmail('hello@fleetbase.io')).toBe(true); + expect(isEmail('a@fleetbase.io')).toBe(true); + expect(isEmail('hello@x.y')).toBe(true); + expect(isEmail('invalid')).toBe(false); + expect(isEmail()).toBe(false); + expect(isPhone('+1 (202) 555-0100')).toBe(true); + expect(isPhone('2025550100')).toBe(true); + expect(isPhone('prefix +1 (202) 555-0100')).toBe(false); + expect(isPhone('+1 (202) 555-0100 trailing')).toBe(false); + expect(isPhone('not-a-phone')).toBe(false); + expect(isPhone()).toBe(false); + expect(isArray([])).toBe(true); + expect(isArray({})).toBe(false); + }); + + it('detects empty nullable, sized, and array-like values', () => { + expect(isEmpty(null)).toBe(true); + expect(isEmpty(undefined)).toBe(true); + expect(isEmpty(new Set())).toBe(true); + expect(isEmpty(new Set(['value']))).toBe(false); + expect(isEmpty('')).toBe(true); + expect(isEmpty('value')).toBe(false); + expect(isEmpty([])).toBe(true); + expect(isEmpty([1])).toBe(false); + expect(isEmpty(() => {})).toBe(false); + expect(isEmpty({})).toBe(false); + }); + + it('formats currency and returns sorted country metadata', () => { + expect(formatCurrency()).toBe('$0.00'); + expect(formatCurrency(12.5, 'USD', 'code')).toContain('USD'); + const countries = getCountries(); + expect(countries.length).toBeGreaterThan(200); + expect(countries[0].name.localeCompare(countries.at(-1).name)).toBeLessThan(0); + expect(getCountries('US')).toMatchObject({ iso2: 'US', name: 'United States' }); + expect(getCountries('1')?.phone).toContain(1); + expect(getCountries('not-found')).toBeUndefined(); + }); +}); diff --git a/tsconfig.build.json b/tsconfig.build.json new file mode 100644 index 0000000..4e9347e --- /dev/null +++ b/tsconfig.build.json @@ -0,0 +1,11 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "noEmit": false, + "declaration": true, + "emitDeclarationOnly": true, + "outDir": "types" + }, + "include": ["src/**/*.ts"], + "exclude": ["tests", "types", "dist", "coverage"] +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..50fd853 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,17 @@ +{ + "compilerOptions": { + "allowJs": false, + "noEmit": true, + "strict": true, + "module": "NodeNext", + "moduleResolution": "NodeNext", + "target": "ES2022", + "lib": ["ES2022", "DOM"], + "skipLibCheck": false, + "baseUrl": ".", + "paths": { + "@fleetbase/sdk": ["types-internal/fleetbase-sdk.d.ts"] + } + }, + "include": ["src/**/*.ts", "types-internal/**/*.d.ts"] +} diff --git a/tsconfig.rollup.json b/tsconfig.rollup.json new file mode 100644 index 0000000..bce9a7e --- /dev/null +++ b/tsconfig.rollup.json @@ -0,0 +1,13 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "noEmit": false, + "declaration": false, + "emitDeclarationOnly": false, + "sourceMap": true, + "module": "ESNext", + "moduleResolution": "Bundler" + }, + "include": ["src/**/*.ts"], + "exclude": ["tests", "types", "dist", "coverage"] +} diff --git a/types-internal/fleetbase-sdk.d.ts b/types-internal/fleetbase-sdk.d.ts new file mode 100644 index 0000000..4b1b76b --- /dev/null +++ b/types-internal/fleetbase-sdk.d.ts @@ -0,0 +1,71 @@ +declare module '@fleetbase/sdk' { + export class Adapter { + constructor(config?: Record); + get(endpoint: string, params?: unknown, options?: unknown): Promise; + post(endpoint: string, params?: unknown, options?: unknown): Promise; + put(endpoint: string, params?: unknown, options?: unknown): Promise; + patch(endpoint: string, params?: unknown, options?: unknown): Promise; + delete(endpoint: string, params?: unknown, options?: unknown): Promise; + setHeaders(headers: Record): this; + } + + export class Collection extends Array { + constructor(items?: T[]); + get first(): T | undefined; + get last(): T | undefined; + objectAt(index: number): T | undefined; + pushObject(value: T): this; + } + + export class Store { + constructor(resource: string, adapter: Adapter, options?: Record); + resource: string; + adapter: Adapter; + namespace: string; + options: Record; + afterFetch(json: unknown): T; + create(attributes?: Record, options?: Record): Promise; + update(id: string | number, attributes?: Record, options?: Record): Promise; + findRecord(id: string | number, options?: Record): Promise; + findAll(options?: Record): Promise>; + query(query?: Record, options?: Record): Promise>; + queryRecord(query?: Record, options?: Record): Promise; + destroy(record: string | number | Resource, options?: Record): Promise; + } + + export class StoreActions { + constructor(actions?: Record, bind?: unknown); + } + + export class Resource { + constructor(attributes?: Record, adapter?: Adapter, resource?: string, options?: Record); + adapter: Adapter; + store: Store; + resource: string; + options: Record; + get id(): string; + getAttribute(attribute: string, defaultValue?: T): T; + getAttributes(attributes: string[]): Record; + hasAttribute(attribute: string): boolean; + syncAttributes(attributes: Record): this; + serialize(): Record; + destroy(options?: Record): unknown; + } + + export class Order extends Resource { + constructor(attributes?: Record, adapter?: Adapter, options?: Record); + } + export class Place extends Resource { + constructor(attributes?: Record, adapter?: Adapter, options?: Record); + } + export class ServiceQuote extends Resource { + constructor(attributes?: Record, adapter?: Adapter, resource?: string, options?: Record); + } + + export function classify(value: string): string; + export function detectAdapter(options?: Record): Adapter; + export function extendStoreActions(store: T, actions?: StoreActions | undefined[]): T; + export function isResource(value: unknown): value is Resource; + export function lookup(type: string, className: string, ...args: unknown[]): T; + export function register(type: string, className: string, value: unknown): void; +} diff --git a/types/cart-store.d.ts b/types/cart-store.d.ts deleted file mode 100644 index e82261d..0000000 --- a/types/cart-store.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -export default class CartStore extends Store { - request(method: any, uri: any, data: any, options: any): any; - add(id: any, productId: any, quantity?: number, data?: {}, options?: {}): any; - update(id: any, cartItemId: any, quantity: any, data?: {}, options?: {}): any; - remove(id: any, cartItemId: any, options?: {}): any; - empty(id: any, options?: {}): any; - retrieve(id?: string): Promise; - create(): void; - findAll(): void; - query(): void; - queryRecord(): void; -} -import Store from './store'; diff --git a/types/customer-store.d.ts b/types/customer-store.d.ts deleted file mode 100644 index 3b78685..0000000 --- a/types/customer-store.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -export default class CustomerStore extends Store { - request(method: any, uri: any, data: any, options: any): any; - login(identity: any, password?: any, attributes?: {}): any; - verifySmsCode(phone: any, code: any, attributes?: {}): any; - retrieve(id: any): Promise; -} -import Store from './store'; diff --git a/types/fleetbase-sdk.d.ts b/types/fleetbase-sdk.d.ts new file mode 100644 index 0000000..4b1b76b --- /dev/null +++ b/types/fleetbase-sdk.d.ts @@ -0,0 +1,71 @@ +declare module '@fleetbase/sdk' { + export class Adapter { + constructor(config?: Record); + get(endpoint: string, params?: unknown, options?: unknown): Promise; + post(endpoint: string, params?: unknown, options?: unknown): Promise; + put(endpoint: string, params?: unknown, options?: unknown): Promise; + patch(endpoint: string, params?: unknown, options?: unknown): Promise; + delete(endpoint: string, params?: unknown, options?: unknown): Promise; + setHeaders(headers: Record): this; + } + + export class Collection extends Array { + constructor(items?: T[]); + get first(): T | undefined; + get last(): T | undefined; + objectAt(index: number): T | undefined; + pushObject(value: T): this; + } + + export class Store { + constructor(resource: string, adapter: Adapter, options?: Record); + resource: string; + adapter: Adapter; + namespace: string; + options: Record; + afterFetch(json: unknown): T; + create(attributes?: Record, options?: Record): Promise; + update(id: string | number, attributes?: Record, options?: Record): Promise; + findRecord(id: string | number, options?: Record): Promise; + findAll(options?: Record): Promise>; + query(query?: Record, options?: Record): Promise>; + queryRecord(query?: Record, options?: Record): Promise; + destroy(record: string | number | Resource, options?: Record): Promise; + } + + export class StoreActions { + constructor(actions?: Record, bind?: unknown); + } + + export class Resource { + constructor(attributes?: Record, adapter?: Adapter, resource?: string, options?: Record); + adapter: Adapter; + store: Store; + resource: string; + options: Record; + get id(): string; + getAttribute(attribute: string, defaultValue?: T): T; + getAttributes(attributes: string[]): Record; + hasAttribute(attribute: string): boolean; + syncAttributes(attributes: Record): this; + serialize(): Record; + destroy(options?: Record): unknown; + } + + export class Order extends Resource { + constructor(attributes?: Record, adapter?: Adapter, options?: Record); + } + export class Place extends Resource { + constructor(attributes?: Record, adapter?: Adapter, options?: Record); + } + export class ServiceQuote extends Resource { + constructor(attributes?: Record, adapter?: Adapter, resource?: string, options?: Record); + } + + export function classify(value: string): string; + export function detectAdapter(options?: Record): Adapter; + export function extendStoreActions(store: T, actions?: StoreActions | undefined[]): T; + export function isResource(value: unknown): value is Resource; + export function lookup(type: string, className: string, ...args: unknown[]): T; + export function register(type: string, className: string, value: unknown): void; +} diff --git a/types/index.d.ts b/types/index.d.ts new file mode 100644 index 0000000..1866ede --- /dev/null +++ b/types/index.d.ts @@ -0,0 +1 @@ +export * from './storefront.js'; diff --git a/types/resolver.d.ts b/types/resolver.d.ts deleted file mode 100644 index 15e73b2..0000000 --- a/types/resolver.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -export class Resolver { - constructor(...args: any[]); - resources: { - Product: typeof Product; - Category: typeof Category; - Customer: typeof Customer; - Cart: typeof Cart; - DeliveryServiceQuote: typeof DeliveryServiceQuote; - Store: typeof Store; - StoreLocation: typeof StoreLocation; - StoreHour: typeof StoreHour; - Checkout: typeof Checkout; - Review: typeof Review; - }; - adapters: { - BrowserAdapter: typeof BrowserAdapter; - NodeAdapter: typeof NodeAdapter; - }; - lookup(type: any, className: any, ...args: any[]): any; -} -export function lookup(...args: any[]): Resolver; -import { Product } from './resources'; -import { Category } from './resources'; -import { Customer } from './resources'; -import { Cart } from './resources'; -import { DeliveryServiceQuote } from './resources'; -import { Store } from './resources'; -import { StoreLocation } from './resources'; -import { StoreHour } from './resources'; -import { Checkout } from './resources'; -import { Review } from './resources'; -import { BrowserAdapter } from '@fleetbase/sdk'; -import { NodeAdapter } from '@fleetbase/sdk'; diff --git a/types/resource.d.ts b/types/resource.d.ts index 99cec7d..828d871 100644 --- a/types/resource.d.ts +++ b/types/resource.d.ts @@ -1,2 +1,12 @@ -export default class StorefrontResource extends Resource {} -import { Resource } from '@fleetbase/sdk'; +import { Adapter, Resource } from '@fleetbase/sdk'; +import StorefrontStore from './store.js'; +export default class StorefrontResource extends Resource { + store: StorefrontStore & Record unknown>; + /** + * Set a new adapter to the resource instance, this will update the Store instance + * + * @param {import('@fleetbase/sdk').Adapter} adapter + * @return {this} + */ + setAdapter(adapter: Adapter): this; +} diff --git a/types/resources.d.ts b/types/resources.d.ts index 77c6cc7..f27aafe 100644 --- a/types/resources.d.ts +++ b/types/resources.d.ts @@ -1,13 +1,14 @@ -import Product from './resources/product'; -import Category from './resources/category'; -import Customer from './resources/customer'; -import Cart from './resources/cart'; -import Network from './resources/network'; -import Store from './resources/store'; -import StoreLocation from './resources/store-location'; -import StoreHour from './resources/store-hour'; -import DeliveryServiceQuote from './resources/delivery-service-quote'; -import Checkout from './resources/checkout'; -import PaymentGateway from './resources/payment-gateway'; -import Review from './resources/review'; -export { Product, Category, Customer, Cart, Network, Store, StoreLocation, StoreHour, DeliveryServiceQuote, Checkout, PaymentGateway, Review }; +export { default as Product } from './resources/product.js'; +export { default as Category } from './resources/category.js'; +export { default as Customer } from './resources/customer.js'; +export { default as Cart } from './resources/cart.js'; +export { default as Network } from './resources/network.js'; +export { default as Store } from './resources/store.js'; +export { default as StoreLocation } from './resources/store-location.js'; +export { default as StoreHour } from './resources/store-hour.js'; +export { default as DeliveryServiceQuote } from './resources/delivery-service-quote.js'; +export { default as Checkout } from './resources/checkout.js'; +export { default as PaymentGateway } from './resources/payment-gateway.js'; +export { default as Review } from './resources/review.js'; +export { default as FoodTruck } from './resources/food-truck.js'; +export { default as Order } from './resources/order.js'; diff --git a/types/resources/cart.d.ts b/types/resources/cart.d.ts index 637b0e9..e2accf6 100644 --- a/types/resources/cart.d.ts +++ b/types/resources/cart.d.ts @@ -1,16 +1,19 @@ +import Resource from '../resource.js'; +import Product from './product.js'; +import { Adapter, StoreActions } from '@fleetbase/sdk'; +import type { Attributes, RequestOptions } from '../types.js'; +export declare const cartActions: StoreActions; export default class Cart extends Resource { - constructor(attributes: {}, adapter: any, options?: {}); - add(productId: any, quantity?: number, data?: {}, options?: {}): any; - update(cartItemId: any, quantity: any, data?: {}, options?: {}): Promise; - remove(cartItemId: any, options?: {}): any; - empty(options?: {}): any; - delete(): [type]; - refresh(): any; + constructor(attributes?: Attributes, adapter?: Adapter, options?: Attributes); + add(productId: string | Product, quantity?: number, data?: Attributes, options?: RequestOptions): Promise; + update(cartItemId: string, quantity: number, data?: Attributes, options?: RequestOptions): Promise; + remove(cartItemId: string, options?: RequestOptions): Promise; + empty(options?: RequestOptions): Promise; + delete(): unknown; + refresh(): Promise; subtotal(): number; - contents(): any; - hasProduct(productId: any): boolean; + contents(): Attributes[]; + hasProduct(productId: string): boolean; + get isEmpty(): boolean; get isNotEmpty(): boolean; } -import Resource from '../resource'; -export const cartActions: StoreActions; -import { StoreActions } from '@fleetbase/sdk'; diff --git a/types/resources/category.d.ts b/types/resources/category.d.ts index ea7e532..b8aeb24 100644 --- a/types/resources/category.d.ts +++ b/types/resources/category.d.ts @@ -1,5 +1,8 @@ +import Resource from '../resource.js'; +import Product from './product.js'; +import { Adapter, Collection } from '@fleetbase/sdk'; +import type { Attributes } from '../types.js'; export default class Category extends Resource { - constructor(attributes: {}, adapter: any, options?: {}); - getProducts(): any; + constructor(attributes?: Attributes, adapter?: Adapter, options?: Attributes); + getProducts(): Promise>; } -import Resource from '../resource'; diff --git a/types/resources/checkout.d.ts b/types/resources/checkout.d.ts index 277236a..f735756 100644 --- a/types/resources/checkout.d.ts +++ b/types/resources/checkout.d.ts @@ -1,8 +1,29 @@ +import Resource from '../resource.js'; +import Order from './order.js'; +import { Adapter, StoreActions } from '@fleetbase/sdk'; +import type { Attributes, RequestOptions, ResourceIdentifier } from '../types.js'; +export declare const checkoutActions: StoreActions; export default class Checkout extends Resource { - constructor(attributes: {}, adapter: any, options?: {}); - initialize(...args: any[]): any; - captureOrder(...args: any[]): any; + constructor(attributes?: Attributes, adapter?: Adapter, options?: Attributes); + initialize( + customer: ResourceIdentifier, + cart: ResourceIdentifier, + serviceQuote: ResourceIdentifier, + gateway: ResourceIdentifier, + orderOptions?: Attributes, + options?: RequestOptions + ): Promise; + captureOrder(token: string, params?: Attributes, options?: RequestOptions): Promise; + createStripeSetupIntent(customer: ResourceIdentifier, params?: Attributes, options?: RequestOptions): Promise; + updateStripePaymentIntent( + paymentIntent: string, + customer: ResourceIdentifier, + cart: ResourceIdentifier, + serviceQuote: ResourceIdentifier, + orderOptions?: Attributes, + options?: RequestOptions + ): Promise; + getStatus(checkout: ResourceIdentifier, token: string, options?: RequestOptions): Promise; + captureQPay(checkout: ResourceIdentifier, params?: Attributes, options?: RequestOptions): Promise; + captureQPayCallback(checkout: ResourceIdentifier, params?: Attributes, options?: RequestOptions): Promise; } -import Resource from '../resource'; -export const checkoutActions: StoreActions; -import { StoreActions } from '@fleetbase/sdk'; diff --git a/types/resources/customer.d.ts b/types/resources/customer.d.ts index 10b4a56..26ad2e9 100644 --- a/types/resources/customer.d.ts +++ b/types/resources/customer.d.ts @@ -1,12 +1,26 @@ +import Resource from '../resource.js'; +import { Adapter, Collection, Order, Place, StoreActions } from '@fleetbase/sdk'; +import type { Attributes, RequestOptions } from '../types.js'; +export declare const customerActions: StoreActions; export default class Customer extends Resource { - constructor(attributes: {}, adapter: any, options?: {}); - get token(): any; - syncDevice(token: any): Promise; - performAuthorizedRequest(endpoint: any, params?: {}, method?: string): Promise; - getSavedPlaces(): Promise; - getOrderHistory(params?: {}): Promise; + constructor(attributes?: Attributes, adapter?: Adapter, options?: Attributes); + /** + * Set a new adapter to the resource instance, this will update the Store instance + * + * @param {import('@fleetbase/sdk').Adapter} adapter + * @return {this} + */ + setAdapter(adapter: Adapter): this; + get token(): string | undefined; + syncDevice(token: string, platform: string): Promise; + performAuthorizedRequest(endpoint: string, params?: Attributes, method?: string, options?: RequestOptions): Promise; + getSavedPlaces(): Promise>; + getOrderHistory(params?: Attributes): Promise>; + getStripeEphemeralKey(params?: Attributes): Promise; + getStripeSetupIntent(params?: Attributes): Promise; + startAccountClosure(params?: Attributes, options?: RequestOptions): Promise; + confirmAccountClosure(code: string, params?: Attributes, options?: RequestOptions): Promise; + requestPhoneVerification(phone: string, params?: Attributes, options?: RequestOptions): Promise; + verifyPhoneNumber(code: string, phone: string, params?: Attributes, options?: RequestOptions): Promise; + updateContactAlias(attributes?: Attributes, options?: RequestOptions): Promise; } -import Resource from '../resource'; -import { Collection } from '@fleetbase/sdk'; -export const customerActions: StoreActions; -import { StoreActions } from '@fleetbase/sdk'; diff --git a/types/resources/delivery-service-quote.d.ts b/types/resources/delivery-service-quote.d.ts index e441639..956cb8e 100644 --- a/types/resources/delivery-service-quote.d.ts +++ b/types/resources/delivery-service-quote.d.ts @@ -1,16 +1,29 @@ +import { Adapter, Collection, ServiceQuote } from '@fleetbase/sdk'; +import type { Attributes, ResolvableIdentifier } from '../types.js'; export default class DeliveryServiceQuote extends ServiceQuote { - static getFromCart(adapter: any, origin: any, destination: any, cart: any, config?: string, all?: boolean): Promise; - constructor(attributes: {}, adapter: any, options?: {}); + constructor(attributes?: Attributes | Adapter, adapter?: Adapter, options?: Attributes); /** * Set a new adapter to the resource instance, this will update the Store instance * * @param {Adapter} adapter - * @return {Resource} this + * @return {this} */ - setAdapter(adapter: Adapter): Resource; - get formattedAmount(): string; - fetchServiceQuotesFromCart(origin: any, destination: any, cart: any, config?: string, all?: boolean): Promise; + setAdapter(adapter: Adapter): this; + get formattedAmount(): string | null; + fromCart(...args: Parameters): Promise>; + fetchServiceQuotesFromCart( + origin: ResolvableIdentifier, + destination: ResolvableIdentifier, + cart: ResolvableIdentifier, + config?: string, + all?: boolean + ): Promise>; + static getFromCart( + adapter: Adapter, + origin: ResolvableIdentifier, + destination: ResolvableIdentifier, + cart: ResolvableIdentifier, + config?: string, + all?: boolean + ): Promise>; } -import { ServiceQuote } from '@fleetbase/sdk'; -import { Adapter } from '@fleetbase/sdk'; -import { Collection } from '@fleetbase/sdk'; diff --git a/types/resources/food-truck.d.ts b/types/resources/food-truck.d.ts new file mode 100644 index 0000000..54ca7b9 --- /dev/null +++ b/types/resources/food-truck.d.ts @@ -0,0 +1,6 @@ +import Resource from '../resource.js'; +import { Adapter } from '@fleetbase/sdk'; +import type { Attributes } from '../types.js'; +export default class FoodTruck extends Resource { + constructor(attributes?: Attributes, adapter?: Adapter, options?: Attributes); +} diff --git a/types/resources/network.d.ts b/types/resources/network.d.ts index a4be78f..23a55cf 100644 --- a/types/resources/network.d.ts +++ b/types/resources/network.d.ts @@ -1,15 +1,21 @@ +import Resource from '../resource.js'; +import PaymentGateway from './payment-gateway.js'; +import Category from './category.js'; +import Product from './product.js'; +import Review from './review.js'; +import Store from './store.js'; +import StoreLocation from './store-location.js'; +import { Adapter, Collection } from '@fleetbase/sdk'; +import type { Attributes, ResourceConstructor } from '../types.js'; export default class Network extends Resource { - constructor(attributes: {}, adapter: any, options?: {}); - getTags(params?: {}): any; - getResourceCollection(endpoint: any, ResourceClass: any, params?: {}): Promise; - getStores(params?: {}): Promise; - getStoreLocations(params?: {}): Promise; - getCategories(params?: {}): Promise; - search(query: any, params?: {}): Promise; + constructor(attributes?: Attributes, adapter?: Adapter, options?: Attributes); + getTags(params?: Attributes): Promise; + getResourceCollection(endpoint: string, ResourceClass: ResourceConstructor, params?: Attributes): Promise>; + getStores(params?: Attributes): Promise>; + getStoreLocations(params?: Attributes): Promise>; + getCategories(params?: Attributes): Promise>; + search(query: string, params?: Attributes): Promise>; lookupStore(id: string): Promise; - getReviews(storeId: string, params?: {}): Promise; - getPaymentGateways(params?: {}): Promise; + getReviews(storeId: string, params?: Attributes): Promise>; + getPaymentGateways(params?: Attributes): Promise>; } -import Resource from '../resource'; -import { Collection } from '@fleetbase/sdk'; -import Store from './store'; diff --git a/types/resources/order-actions.d.ts b/types/resources/order-actions.d.ts new file mode 100644 index 0000000..a910435 --- /dev/null +++ b/types/resources/order-actions.d.ts @@ -0,0 +1,2 @@ +import { StoreActions } from '@fleetbase/sdk'; +export declare const orderActions: StoreActions; diff --git a/types/resources/order.d.ts b/types/resources/order.d.ts new file mode 100644 index 0000000..2fedfa5 --- /dev/null +++ b/types/resources/order.d.ts @@ -0,0 +1,5 @@ +import { Adapter, Order as FleetbaseOrder } from '@fleetbase/sdk'; +import type { Attributes } from '../types.js'; +export default class Order extends FleetbaseOrder { + constructor(attributes?: Attributes, adapter?: Adapter, options?: Attributes); +} diff --git a/types/resources/payment-gateway.d.ts b/types/resources/payment-gateway.d.ts index f3244b3..1ad1b1d 100644 --- a/types/resources/payment-gateway.d.ts +++ b/types/resources/payment-gateway.d.ts @@ -1,16 +1,19 @@ +import Resource from '../resource.js'; +import { Adapter } from '@fleetbase/sdk'; +import type { Attributes } from '../types.js'; export default class PaymentGateway extends Resource { - constructor(attributes: {}, adapter: any, options?: {}); - get type(): any; - get code(): any; + private token?; + constructor(attributes?: Attributes, adapter?: Adapter, options?: Attributes); + get type(): string | undefined; + get code(): string | undefined; get isCashGateway(): boolean; get isStripeGateway(): boolean; - setCheckoutToken(token: any): void; - token: any; - getCheckoutToken(): any; + get isQPayGateway(): boolean; + setCheckoutToken(token: string): void; + getCheckoutToken(): string | undefined; findRecord(): void; create(): void; update(): void; destroy(): void; reload(): void; } -import Resource from '../resource'; diff --git a/types/resources/product.d.ts b/types/resources/product.d.ts index 353510a..9d74928 100644 --- a/types/resources/product.d.ts +++ b/types/resources/product.d.ts @@ -1,12 +1,18 @@ +import Resource from '../resource.js'; +import Review from './review.js'; +import { Adapter, Collection } from '@fleetbase/sdk'; +import Store from './store.js'; +import type { Attributes } from '../types.js'; export default class Product extends Resource { - constructor(attributes: {}, adapter: any, options?: {}); - variants(): any; - addons(): any; - get isOnSale(): any; + constructor(attributes?: Attributes, adapter?: Adapter, options?: Attributes); + variants(): unknown; + addons(): unknown; + images(): unknown[]; + videos(): unknown[]; + hours(): unknown[]; + get isOnSale(): boolean; get isNotOnSale(): boolean; - get formattedAmount(): string; + get formattedAmount(): string | null; get merchant(): Store | null; - getReviews(): any; + getReviews(): Promise>; } -import Resource from '../resource'; -import Store from './store'; diff --git a/types/resources/review.d.ts b/types/resources/review.d.ts index 6b5c876..38d6e34 100644 --- a/types/resources/review.d.ts +++ b/types/resources/review.d.ts @@ -1,9 +1,10 @@ +import Resource from '../resource.js'; +import { Adapter, StoreActions } from '@fleetbase/sdk'; +import type { Attributes } from '../types.js'; +export declare const reviewActions: StoreActions; export default class Review extends Resource { - constructor(attributes: {}, adapter: any, options?: {}); - getMedia(): void; - getPhotos(): void; - getVideos(): void; + constructor(attributes?: Attributes, adapter?: Adapter, options?: Attributes); + getMedia(): Attributes[]; + getPhotos(): Attributes[]; + getVideos(): Attributes[]; } -import Resource from '../resource'; -export const reviewActions: StoreActions; -import { StoreActions } from '@fleetbase/sdk'; diff --git a/types/resources/store-hour.d.ts b/types/resources/store-hour.d.ts index 74a39e1..5efa413 100644 --- a/types/resources/store-hour.d.ts +++ b/types/resources/store-hour.d.ts @@ -1,10 +1,13 @@ +import Resource from '../resource.js'; +import { Adapter } from '@fleetbase/sdk'; +import type { Attributes } from '../types.js'; export default class StoreHour extends Resource { - constructor(attributes: {}, adapter: any, options?: {}); - get day(): any; + constructor(attributes?: Attributes, adapter?: Adapter, options?: Attributes); + get day(): string; get isClosed(): boolean; get is24Hours(): boolean; - get startDateInstance(): Date; - get endDateInstance(): Date; + get startDateInstance(): Date | null; + get endDateInstance(): Date | null; get humanReadableHoursRange(): string; get humanReadableHours(): string; create(): void; @@ -12,4 +15,3 @@ export default class StoreHour extends Resource { destroy(): void; reload(): void; } -import Resource from '../resource'; diff --git a/types/resources/store-location.d.ts b/types/resources/store-location.d.ts index 7ca4a9b..6d3f76d 100644 --- a/types/resources/store-location.d.ts +++ b/types/resources/store-location.d.ts @@ -1,18 +1,22 @@ +import Resource from '../resource.js'; +import StoreHour from './store-hour.js'; +import { Adapter, Collection } from '@fleetbase/sdk'; +import type { Attributes } from '../types.js'; export default class StoreLocation extends Resource { - constructor(attributes: {}, adapter: any, options?: {}); - get latitude(): any; - get longitude(): any; - get hours(): Collection; - get storeData(): any; - get storeId(): any; - get merchant(): Store | null; + constructor(attributes?: Attributes, adapter?: Adapter, options?: Attributes); + get latitude(): number | undefined; + get longitude(): number | undefined; + get hours(): Collection; + /** Raw embedded merchant payload, normalized across API response versions. */ + get storeData(): unknown; + /** Public store identifier for this location. */ + get storeId(): string | undefined; + /** Typed embedded merchant when requested with `with_store`. */ + get merchant(): Resource | null; get isAlwaysOpen(): boolean; - get today(): any; - get schedule(): {}; + get today(): Collection; + get schedule(): Record>; create(): void; update(): void; destroy(): void; } -import Resource from '../resource'; -import { Collection } from '@fleetbase/sdk'; -import Store from './store'; diff --git a/types/resources/store.d.ts b/types/resources/store.d.ts index 1384648..a36b70d 100644 --- a/types/resources/store.d.ts +++ b/types/resources/store.d.ts @@ -1,9 +1,15 @@ +import Resource from '../resource.js'; +import StoreLocation from './store-location.js'; +import PaymentGateway from './payment-gateway.js'; +import Review from './review.js'; +import { Adapter, Collection } from '@fleetbase/sdk'; +import type { Attributes } from '../types.js'; export default class Store extends Resource { - constructor(attributes: {}, adapter: any, options?: {}); - getReviews(params?: {}): any; - getLocations(params?: {}): any; - getLocation(id: any): any; - getPaymentGateways(params?: {}): any; - getPaymentGateway(id: any): any; + constructor(attributes?: Attributes, adapter?: Adapter, options?: Attributes); + getReviews(params?: Attributes): Promise>; + getTags(params?: Attributes): Promise; + getLocations(params?: Attributes): Promise>; + getLocation(id: string): Promise; + getPaymentGateways(params?: Attributes): Promise>; + getPaymentGateway(id: string): Promise; } -import Resource from '../resource'; diff --git a/types/store.d.ts b/types/store.d.ts index 25b2a5e..66a158e 100644 --- a/types/store.d.ts +++ b/types/store.d.ts @@ -1,5 +1,8 @@ -export default class StorefrontStore extends Store { - constructor(...args: any[]); - serialize(json: any): import('./resolver').Resolver; +import { Store, StoreActions } from '@fleetbase/sdk'; +import type { Adapter } from '@fleetbase/sdk'; +import type { Attributes } from './types.js'; +export default class StorefrontStore extends Store { + constructor(resource: string, adapter: Adapter, options?: Attributes); + extendActions(actions?: StoreActions | Array): this; + serialize(json: Attributes): T; } -import { Store } from '@fleetbase/sdk'; diff --git a/types/storefront.d.cts b/types/storefront.d.cts new file mode 100644 index 0000000..2d92eca --- /dev/null +++ b/types/storefront.d.cts @@ -0,0 +1,4 @@ +import './fleetbase-sdk.js'; +type StorefrontModule = typeof import('./storefront.js', { with: { 'resolution-mode': 'import' } }); +declare const Storefront: StorefrontModule['default'] & StorefrontModule & { default: StorefrontModule['default'] }; +export = Storefront; diff --git a/types/storefront.d.ts b/types/storefront.d.ts index 2f2ab7a..092400d 100644 --- a/types/storefront.d.ts +++ b/types/storefront.d.ts @@ -1,10 +1,78 @@ +import './fleetbase-sdk.js'; +import StorefrontStore from './store.js'; +import { Product, Category, Customer, Cart, Store, StoreLocation, StoreHour, DeliveryServiceQuote, Checkout, PaymentGateway, Review, Network, FoodTruck, Order } from './resources.js'; +import { Collection, lookup } from '@fleetbase/sdk'; +import type { Adapter } from '@fleetbase/sdk'; +import type { Attributes, RequestOptions, ResourceIdentifier, StorefrontConfig } from './types.js'; +export interface ReviewStoreActions { + count(storeId?: string, options?: RequestOptions): Promise; +} +export interface CustomerStoreActions { + login(identity: string, password?: string | null, attributes?: Attributes): Promise; + loginWithApple(appleUserId: string, identityToken: string, authorizationCode: string, email: string, name: string, attributes?: Attributes): Promise; + loginWithFacebook(facebookUserId: string, email: string, name: string, avatarUrl: string, attributes?: Attributes): Promise; + loginWithGoogle(idToken: string, clientId: string, attributes?: Attributes): Promise; + verifyCode(identity: string, code: string, attributes?: Attributes): Promise; + requestCreationCode(identity: string, mode?: string): Promise; + create(identity: string, code: string, attributes?: Attributes): Promise; + retrieve(id: string): Promise; +} +export interface CartStoreActions { + add(id: string, productId: string, quantity?: number, data?: Attributes, options?: RequestOptions): Promise; + update(id: string, cartItemId: string, quantity: number, data?: Attributes, options?: RequestOptions): Promise; + remove(id: string, cartItemId: string, options?: RequestOptions): Promise; + empty(id: string, options?: RequestOptions): Promise; + retrieve(id?: string): Promise; +} +export interface CheckoutStoreActions { + initialize( + customer: ResourceIdentifier, + cart: ResourceIdentifier, + serviceQuote: ResourceIdentifier, + gateway: ResourceIdentifier, + orderOptions?: Attributes, + options?: RequestOptions + ): Promise; + captureOrder(token: string, params?: Attributes, options?: RequestOptions): Promise; + createStripeSetupIntent(customer: ResourceIdentifier, params?: Attributes, options?: RequestOptions): Promise; + updateStripePaymentIntent( + paymentIntent: string, + customer: ResourceIdentifier, + cart: ResourceIdentifier, + serviceQuote: ResourceIdentifier, + orderOptions?: Attributes, + options?: RequestOptions + ): Promise; + getStatus(checkout: ResourceIdentifier, token: string, options?: RequestOptions): Promise; + captureQPay(checkout: ResourceIdentifier, params?: Attributes, options?: RequestOptions): Promise; + captureQPayCallback(checkout: ResourceIdentifier, params?: Attributes, options?: RequestOptions): Promise; +} +export interface OrderStoreActions { + completePickup(order: ResourceIdentifier, params?: Attributes, options?: RequestOptions): Promise; + getReceipt(order: ResourceIdentifier, params?: Attributes, options?: RequestOptions): Promise; +} +export type ReviewStore = StorefrontStore & ReviewStoreActions; +export type CustomerStore = StorefrontStore & CustomerStoreActions; +export type CartStore = StorefrontStore & CartStoreActions; +export type CheckoutStore = StorefrontStore & CheckoutStoreActions; +export type OrderStore = StorefrontStore & OrderStoreActions; /** * // instance * const storefront = new Storefront(); * */ export default class Storefront { - static newInstance(...args: any[]): Storefront; + version: string; + options: Attributes; + adapter: Adapter; + products: StorefrontStore; + categories: StorefrontStore; + foodTrucks: StorefrontStore; + reviews: ReviewStore; + customers: CustomerStore; + cart: CartStore; + checkout: CheckoutStore; + orders: OrderStore; /** * Builds an instance of the Fleetbase Storefront SDK * @@ -13,46 +81,46 @@ export default class Storefront { * @param {Boolean} debug Enable debug mode * @return {Storefront} Instance */ - constructor(storeKey: string, config?: any, debug?: boolean); - version: any; - options: { - version: any; - host: any; - namespace: any; - publicKey: string; - debug: boolean; - }; - adapter: any; - products: StorefrontStore; - categories: StorefrontStore; - reviews: any; - customers: any; - cart: any; - checkout: any; - initializeStores(): Storefront; - /** loads information about this storefront */ - about(options?: { resource?: boolean }): any; + constructor(storeKey: string, config?: StorefrontConfig, debug?: boolean); + initializeStores(): this; + /** + * Loads information about this storefront. + * + * @param {{ resource?: boolean }} options + * @returns {Promise | Store | Network>} + */ + about(options?: { resource?: boolean }): Promise; + /** @returns {Promise} Loads the storefront owner as a typed resource. */ getOwner(): Promise; - /** lookup a specific store or network provided the ID */ - lookup(id: string, options?: { resource?: boolean }): any; + /** + * Looks up a specific store or network by public ID. + * + * @param {string} id + * @param {{ resource?: boolean }} options + * @returns {Promise | Store | Network>} + */ + lookup( + id: string, + options?: { + resource?: boolean; + } + ): Promise; + /** + * @param {string} id + * @returns {Promise} + */ lookupResource(id: string): Promise; - /** search products in store or network */ - search(query: any, options?: {}): any; - hydrateOwner(attributes?: {}): Store | Network; - setAdapter(adapter: any): Storefront; - getAdapter(): any; + /** + * Searches products in the current store or network. + * + * @param {string} query + * @param {Record} options + * @returns {Promise>} + */ + search(query: string, options?: Attributes): Promise>; + hydrateOwner(attributes?: Attributes): Store | Network; + static newInstance(...args: ConstructorParameters): Storefront; + setAdapter(adapter: Adapter): this; + getAdapter(): Adapter; } -import StorefrontStore from './store'; -import { Product } from './resources'; -import { Category } from './resources'; -import { Customer } from './resources'; -import { Cart } from './resources'; -import { Store } from './resources'; -import { StoreLocation } from './resources'; -import { StoreHour } from './resources'; -import { DeliveryServiceQuote } from './resources'; -import { Checkout } from './resources'; -import { PaymentGateway } from './resources'; -import { Review } from './resources'; -import { Network } from './resources'; -export { Product, Category, Customer, Cart, Store, StoreLocation, StoreHour, DeliveryServiceQuote, Checkout, PaymentGateway, Review, Network }; +export { Product, Category, Customer, Cart, Store, StoreLocation, StoreHour, DeliveryServiceQuote, Checkout, PaymentGateway, Review, Network, FoodTruck, Order, lookup }; diff --git a/types/types.d.ts b/types/types.d.ts new file mode 100644 index 0000000..aad5dff --- /dev/null +++ b/types/types.d.ts @@ -0,0 +1,20 @@ +import type { Adapter, Resource } from '@fleetbase/sdk'; +export type Attributes = Record; +export interface RequestOptions extends Record { + headers?: Record; +} +export interface StorefrontConfig { + version?: string; + host?: string; + namespace?: string; + adapter?: Adapter; +} +export type ResourceIdentifier = string | Resource; +export type ResolvableIdentifier = + | string + | { + id?: string; + } + | null + | undefined; +export type ResourceConstructor = new (attributes?: Attributes, adapter?: Adapter, options?: Attributes) => T; diff --git a/types/utils/array.d.ts b/types/utils/array.d.ts new file mode 100644 index 0000000..0d27d5f --- /dev/null +++ b/types/utils/array.d.ts @@ -0,0 +1 @@ +export declare function isArray(value: unknown): value is unknown[]; diff --git a/types/utils/detect-adapter.d.ts b/types/utils/detect-adapter.d.ts deleted file mode 100644 index 697ba87..0000000 --- a/types/utils/detect-adapter.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export default detectAdapter; -declare function detectAdapter(options?: {}): import('../resolver').Resolver; diff --git a/types/utils/format-currency.d.ts b/types/utils/format-currency.d.ts index 5a0f9db..315c78a 100644 --- a/types/utils/format-currency.d.ts +++ b/types/utils/format-currency.d.ts @@ -1 +1,2 @@ -export default function formatCurrency(amount?: number, currency?: string, currencyDisplay?: string): string; +export declare function formatCurrency(amount?: number, currency?: string, currencyDisplay?: Intl.NumberFormatOptions['currencyDisplay']): string; +export default formatCurrency; diff --git a/types/utils/get-countries.d.ts b/types/utils/get-countries.d.ts index 7bb3ebb..39ac389 100644 --- a/types/utils/get-countries.d.ts +++ b/types/utils/get-countries.d.ts @@ -1,2 +1,31 @@ +export declare function getCountries(_country?: string | number | null): + | { + iso2: string; + alias?: string[]; + capital: string; + continent: import('countries-list').TContinentCode; + continents?: import('countries-list').TContinentCode[]; + currency: import('countries-list').TCurrencyCode[]; + languages: import('countries-list').TLanguageCode[]; + name: string; + native: string; + partOf?: string; + phone: number[]; + userAssigned?: boolean; + } + | { + iso2: string; + alias?: string[]; + capital: string; + continent: import('countries-list').TContinentCode; + continents?: import('countries-list').TContinentCode[]; + currency: import('countries-list').TCurrencyCode[]; + languages: import('countries-list').TLanguageCode[]; + name: string; + native: string; + partOf?: string; + phone: number[]; + userAssigned?: boolean; + }[] + | undefined; export default getCountries; -declare function getCountries(_country?: any): any; diff --git a/types/utils/index.d.ts b/types/utils/index.d.ts index adc5d87..fc29883 100644 --- a/types/utils/index.d.ts +++ b/types/utils/index.d.ts @@ -1,7 +1,7 @@ -import detectAdapter from './detect-adapter'; -import isKeyValid from './is-key-valid'; -import isEmail from './is-email'; -import isPhone from './is-phone'; -import isEmpty from './is-empty'; -import formatCurrency from './format-currency'; -export { detectAdapter, isKeyValid, isEmail, isPhone, isEmpty, formatCurrency }; +export { default as isEmail } from './is-email.js'; +export { default as isPhone } from './is-phone.js'; +export { default as formatCurrency } from './format-currency.js'; +export { default as isKeyValid } from './is-key-valid.js'; +export { default as isEmpty } from './is-empty.js'; +export { default as getCountries } from './get-countries.js'; +export { isArray } from './array.js'; diff --git a/types/utils/is-email.d.ts b/types/utils/is-email.d.ts index 871067f..f4229bf 100644 --- a/types/utils/is-email.d.ts +++ b/types/utils/is-email.d.ts @@ -1,2 +1,2 @@ +export declare function isEmail(email?: string): boolean; export default isEmail; -declare function isEmail(email?: string): boolean; diff --git a/types/utils/is-empty.d.ts b/types/utils/is-empty.d.ts index 611ade3..0905dbd 100644 --- a/types/utils/is-empty.d.ts +++ b/types/utils/is-empty.d.ts @@ -1,2 +1,2 @@ +export declare function isEmpty(obj: unknown): boolean; export default isEmpty; -declare function isEmpty(obj: any): boolean; diff --git a/types/utils/is-key-valid.d.ts b/types/utils/is-key-valid.d.ts index 7c73d3b..568d675 100644 --- a/types/utils/is-key-valid.d.ts +++ b/types/utils/is-key-valid.d.ts @@ -1,2 +1,2 @@ +export declare function isKeyValid(key: unknown): boolean; export default isKeyValid; -declare function isKeyValid(key: any): any; diff --git a/types/utils/is-phone.d.ts b/types/utils/is-phone.d.ts index 2daa6d5..1b9fd2c 100644 --- a/types/utils/is-phone.d.ts +++ b/types/utils/is-phone.d.ts @@ -1,2 +1,2 @@ +export declare function isPhone(phone?: string): boolean; export default isPhone; -declare function isPhone(phone?: string): boolean; diff --git a/vitest.config.js b/vitest.config.js new file mode 100644 index 0000000..035d936 --- /dev/null +++ b/vitest.config.js @@ -0,0 +1,21 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + environment: 'node', + globals: true, + exclude: ['**/.cache/**', '**/node_modules/**', '**/dist/**'], + coverage: { + provider: 'v8', + include: ['src/**/*.ts'], + exclude: ['src/index.ts', 'src/types.ts'], + thresholds: { + statements: 100, + branches: 100, + functions: 100, + lines: 100, + }, + reporter: ['text', 'json-summary', 'lcov'], + }, + }, +});