From 96d7a851fbe51d319bf5c44b98214f467c9e240b Mon Sep 17 00:00:00 2001 From: "Ronald A. Richardson" Date: Mon, 31 Aug 2026 18:43:31 +0800 Subject: [PATCH 1/8] docs: add storefront sdk modernization plan --- MODERNIZATION_PLAN.md | 284 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 284 insertions(+) create mode 100644 MODERNIZATION_PLAN.md diff --git a/MODERNIZATION_PLAN.md b/MODERNIZATION_PLAN.md new file mode 100644 index 0000000..9e9b3cc --- /dev/null +++ b/MODERNIZATION_PLAN.md @@ -0,0 +1,284 @@ +# Storefront JavaScript SDK modernization and release plan + +Status: proposed for review + +Audit baseline: `main` at `dbc6456` (`v1.1.14`) on 2026-08-31 + +Proposed release: `v1.2.0` if every compatibility gate passes; otherwise `v2.0.0` + +## 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 a Changeset; +- 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 + +Adopt Changesets because it makes SemVer intent and user-facing notes reviewable per PR and maintains a release PR. Use separate jobs/actions so version-PR permissions do not grant publish permissions. + +Release flow: + +1. Every user-visible PR adds a Changeset; CI reports whether one is missing without blocking test-only/internal changes that use an empty Changeset. +2. Changesets maintains a version/changelog PR on `main`. +3. Merging that reviewed release PR runs all required CI again and creates one immutable packed artifact. +4. Publish the artifact first as `v1.2.0-rc.N` under npm dist-tag `next`. +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, promote/publish the exact verified artifact to npm `latest`; publish the same bytes to GitHub Packages only if that registry remains a supported requirement. +7. Create the signed `vX.Y.Z` tag and GitHub Release from the reviewed changelog, 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. Changesets 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 Changeset/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) +- [Changesets release action](https://github.com/changesets/action) +- [publint package compatibility linting](https://github.com/publint/publint) From c57a77dae78e0d3320c3239d2d9d7ce22600de85 Mon Sep 17 00:00:00 2001 From: "Ronald A. Richardson" Date: Mon, 31 Aug 2026 19:22:55 +0800 Subject: [PATCH 2/8] feat: establish SDK modernization foundation --- .gitignore | 3 +- .npmrc | 1 + dist/$storefront.min.js | 2 - dist/$storefront.min.js.map | 1 - dist/@fleetbase/storefront.min.js | 2 - dist/@fleetbase/storefront.min.js.map | 1 - dist/@fleetbase/storefront/resolver.min.js | 2 - .../@fleetbase/storefront/resolver.min.js.map | 1 - dist/@storefront.min.js | 2 +- dist/@storefront.min.js.map | 2 +- dist/cjs/resolver.js | 2 - dist/cjs/resolver.js.map | 1 - dist/cjs/store-B5J1gYSv.js | 2 - dist/cjs/store-B5J1gYSv.js.map | 1 - dist/cjs/storefront.cjs | 6579 +++++++++++++++++ dist/cjs/storefront.cjs.map | 1 + dist/cjs/storefront.js | 2 - dist/cjs/storefront.js.map | 1 - dist/esm/resolver.js | 2 - dist/esm/resolver.js.map | 1 - dist/esm/store-DfOhXl38.js | 2 - dist/esm/store-DfOhXl38.js.map | 1 - dist/esm/storefront.js | 1089 ++- dist/esm/storefront.js.map | 2 +- eslint.config.js | 6 +- package.json | 114 +- pnpm-lock.yaml | 4834 +++++------- rollup.config.js | 102 +- scripts/create-cjs-types.mjs | 16 + src/customer-store.js | 2 +- src/resource.js | 4 +- src/resources.js | 1 + src/resources/cart.js | 21 +- src/resources/category.js | 2 +- src/resources/checkout.js | 51 +- src/resources/customer.js | 79 +- src/resources/delivery-service-quote.js | 35 +- src/resources/food-truck.js | 2 +- src/resources/network.js | 2 +- src/resources/order-actions.js | 21 + src/resources/order.js | 9 + src/resources/payment-gateway.js | 6 +- src/resources/product.js | 14 +- src/resources/review.js | 8 +- src/resources/store-hour.js | 17 +- src/resources/store-location.js | 8 +- src/resources/store.js | 8 +- src/storefront.js | 6 +- src/utils/is-empty.js | 18 +- src/utils/is-phone.js | 2 +- tests/actions.test.js | 138 + tests/helpers/fake-adapter.js | 40 + tests/resources.test.js | 292 + tests/storefront.test.js | 78 +- tests/types/consumer.cts | 7 + tests/types/consumer.ts | 13 + tests/utils.test.js | 44 + tsconfig.build.json | 11 + tsconfig.json | 18 + types-internal/fleetbase-sdk.d.ts | 57 + types/cart-store.d.ts | 12 +- types/customer-store.d.ts | 8 +- types/fleetbase-sdk.d.ts | 57 + types/index.d.ts | 1 + types/resolver.d.ts | 33 - types/resource.d.ts | 10 +- types/resources.d.ts | 27 +- types/resources/cart.d.ts | 15 +- types/resources/category.d.ts | 7 +- types/resources/checkout.d.ts | 11 +- types/resources/customer.d.ts | 30 +- types/resources/delivery-service-quote.d.ts | 11 +- types/resources/food-truck.d.ts | 4 + types/resources/network.d.ts | 24 +- types/resources/order-actions.d.ts | 2 + types/resources/order.d.ts | 4 + types/resources/payment-gateway.d.ts | 5 +- types/resources/product.d.ts | 14 +- types/resources/review.d.ts | 12 +- types/resources/store-hour.d.ts | 4 +- types/resources/store-location.d.ts | 12 +- types/resources/store.d.ts | 18 +- types/store.d.ts | 3 +- types/storefront.d.cts | 4 + types/storefront.d.ts | 56 +- types/utils/array.d.ts | 1 + types/utils/detect-adapter.d.ts | 2 - types/utils/format-currency.d.ts | 3 +- types/utils/get-countries.d.ts | 30 +- types/utils/index.d.ts | 14 +- types/utils/is-email.d.ts | 2 +- types/utils/is-empty.d.ts | 2 +- types/utils/is-key-valid.d.ts | 2 +- types/utils/is-phone.d.ts | 2 +- vitest.config.js | 20 + 95 files changed, 10721 insertions(+), 3530 deletions(-) create mode 100644 .npmrc delete mode 100644 dist/$storefront.min.js delete mode 100644 dist/$storefront.min.js.map delete mode 100644 dist/@fleetbase/storefront.min.js delete mode 100644 dist/@fleetbase/storefront.min.js.map delete mode 100644 dist/@fleetbase/storefront/resolver.min.js delete mode 100644 dist/@fleetbase/storefront/resolver.min.js.map delete mode 100644 dist/cjs/resolver.js delete mode 100644 dist/cjs/resolver.js.map delete mode 100644 dist/cjs/store-B5J1gYSv.js delete mode 100644 dist/cjs/store-B5J1gYSv.js.map create mode 100644 dist/cjs/storefront.cjs create mode 100644 dist/cjs/storefront.cjs.map delete mode 100644 dist/cjs/storefront.js delete mode 100644 dist/cjs/storefront.js.map delete mode 100644 dist/esm/resolver.js delete mode 100644 dist/esm/resolver.js.map delete mode 100644 dist/esm/store-DfOhXl38.js delete mode 100644 dist/esm/store-DfOhXl38.js.map create mode 100644 scripts/create-cjs-types.mjs create mode 100644 src/resources/order-actions.js create mode 100644 src/resources/order.js create mode 100644 tests/actions.test.js create mode 100644 tests/helpers/fake-adapter.js create mode 100644 tests/resources.test.js create mode 100644 tests/types/consumer.cts create mode 100644 tests/types/consumer.ts create mode 100644 tests/utils.test.js create mode 100644 tsconfig.build.json create mode 100644 tsconfig.json create mode 100644 types-internal/fleetbase-sdk.d.ts create mode 100644 types/fleetbase-sdk.d.ts create mode 100644 types/index.d.ts delete mode 100644 types/resolver.d.ts create mode 100644 types/resources/food-truck.d.ts create mode 100644 types/resources/order-actions.d.ts create mode 100644 types/resources/order.d.ts create mode 100644 types/storefront.d.cts create mode 100644 types/utils/array.d.ts delete mode 100644 types/utils/detect-adapter.d.ts create mode 100644 vitest.config.js diff --git a/.gitignore b/.gitignore index e828eb1..1dcefe6 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ /.sass-cache /connect.lock /coverage/ +/.cache/ /libpeerconnection.log /npm-debug.log* /testem.log @@ -23,4 +24,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/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":"+0yBAmBqBA,IAAAA,GAAM,WACvB,SAAAC,EAAYC,GAAsB,IAAdC,IAAKC,UAAAC,OAAAD,QAAAA,IAAAA,eAAAA,UAAA,GAAOE,EAAAC,KAAAN,GAAAO,0BAKb,CAAC,YAAa,cAAe,OAAQ,QAAS,UAAW,SAAU,OAAQ,QAAS,QAAS,OAAQ,SAAOA,EAEjHD,KAAA,cAAA,CACV,CAAC,IAAIE,OAAO,SAAU,MAAO,QAC7B,CAAC,IAAIA,OAAO,YAAa,MAAO,UAChC,CAAC,IAAIA,OAAO,WAAY,MAAO,SAC/B,CAAC,IAAIA,OAAO,SAAU,MAAO,QAC7B,CAAC,IAAIA,OAAO,eAAgB,MAAO,QACnC,CAAC,IAAIA,OAAO,iBAAkB,MAAO,OACrC,CAAC,IAAIA,OAAO,kBAAmB,MAAO,QACtC,CAAC,IAAIA,OAAO,SAAU,MAAO,SAC7B,CAAC,IAAIA,OAAO,yBAA0B,MAAO,SAC7C,CAAC,IAAIA,OAAO,YAAa,MAAO,OAChC,CAAC,IAAIA,OAAO,OAAQ,MAAO,OAC3B,CAAC,IAAIA,OAAO,wBAAyB,MAAO,WAC5C,CAAC,IAAIA,OAAO,UAAW,MAAO,OAC9B,CAAC,IAAIA,OAAO,mBAAoB,MAAO,SACvC,CAAC,IAAIA,OAAO,gBAAiB,MAAO,QACpC,CAAC,IAAIA,OAAO,wBAAyB,MAAO,UAC5C,CAAC,IAAIA,OAAO,eAAgB,MAAO,SACnC,CAAC,IAAIA,OAAO,UAAW,MAAO,SAC9B,CAAC,IAAIA,OAAO,KAAM,MAAO,KACzB,CAAC,IAAIA,OAAO,IAAK,MAAO,OAC3BD,EAEeD,KAAA,gBAAA,CACZ,CAAC,IAAIE,OAAO,SAAU,MAAO,QAC7B,CAAC,IAAIA,OAAO,YAAa,MAAO,UAChC,CAAC,IAAIA,OAAO,cAAe,MAAO,MAClC,CAAC,IAAIA,OAAO,WAAY,MAAO,QAC/B,CAAC,IAAIA,OAAO,gEAAiE,MAAO,WACpF,CAAC,IAAIA,OAAO,WAAY,MAAO,MAC/B,CAAC,IAAIA,OAAO,WAAY,MAAO,MAC/B,CAAC,IAAIA,OAAO,YAAa,MAAO,MAChC,CAAC,IAAIA,OAAO,aAAc,MAAO,OACjC,CAAC,IAAIA,OAAO,cAAe,MAAO,QAClC,CAAC,IAAIA,OAAO,qBAAsB,MAAO,OACzC,CAAC,IAAIA,OAAO,YAAa,MAAO,WAChC,CAAC,IAAIA,OAAO,YAAa,MAAO,UAChC,CAAC,IAAIA,OAAO,kBAAmB,MAAO,MACtC,CAAC,IAAIA,OAAO,cAAe,MAAO,UAClC,CAAC,IAAIA,OAAO,WAAY,MAAO,MAC/B,CAAC,IAAIA,OAAO,SAAU,MAAO,MAC7B,CAAC,IAAIA,OAAO,WAAY,MAAO,MAC/B,CAAC,IAAIA,OAAO,oBAAqB,MAAO,QACxC,CAAC,IAAIA,OAAO,gBAAiB,MAAO,QACpC,CAAC,IAAIA,OAAO,oBAAqB,MAAO,MACxC,CAAC,IAAIA,OAAO,UAAW,MAAO,MAC9B,CAAC,IAAIA,OAAO,kBAAmB,MAAO,QACtC,CAAC,IAAIA,OAAO,cAAe,MAAO,QAClC,CAAC,IAAIA,OAAO,aAAc,MAAO,MACjC,CAAC,IAAIA,OAAO,KAAM,MAAO,MAC5BD,EAAAD,KAAA,qBAEoB,CAAC,MAAO,KAAM,MAAO,IAAK,KAAM,MAAO,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,OAAQ,OAAQ,KAAM,OAAQ,MAAO,MAAO,KAAM,OAAQ,OAAQ,QAAMC,EAE9JD,KAAA,WAAA,IAAIE,OAAO,cAAe,MAAID,kBAC9B,IAAIC,OAAO,IAAK,MAAID,EAAAD,KAAA,kBACb,IAAIE,OAAO,OAAQ,MAAID,EAC7BD,KAAA,YAAA,IAAIE,OAAO,UAAW,MAAID,EACrBD,KAAA,iBAAA,IAAIE,OAAO,OAhExBF,KAAKG,IAAMR,EACXK,KAAKI,MAAQR,CACjB,CAAC,OAAAS,EAAAX,EAAA,CAAA,CAAAY,IAAA,MAAAC,MAgED,WACI,OAAOP,KAAKG,GAChB,GAAC,CAAAG,IAAA,aAAAC,MAED,SAAWb,EAAKC,EAAOC,EAAMY,GACzB,GAAIA,EACAd,EAAMc,OAGN,KADaZ,EAAKa,QAAQf,EAAIgB,gBAAkB,GAE5C,IAAK,IAAIC,EAAI,EAAGA,EAAIhB,EAAMG,OAAQa,IAC9B,GAAIjB,EAAIkB,MAAMjB,EAAMgB,GAAG,IAAK,CACxBjB,EAAMA,EAAImB,QAAQlB,EAAMgB,GAAG,GAAIhB,EAAMgB,GAAG,IACxC,KACJ,CAQZ,OAFAX,KAAKG,IAAMT,GAAA,IAEPM,KAAKI,MACEJ,KAIJN,CACX,GAEA,CAAAY,IAAA,YAAAC,MAMA,SAAUb,GAAoB,IAAfC,EAAME,UAAAC,OAAAD,QAAAA,IAAAA,UAAAA,GAAAA,UAAG,GAAA,KAGpB,OAFAH,EAAMA,GAAOM,KAAKG,IAEXH,KAAKc,WAAWpB,EAAKM,KAAKe,YAAaf,KAAKgB,iBAAkBrB,EACzE,GAEA,CAAAW,IAAA,cAAAC,MAMA,SAAYb,EAAKC,GAGb,OAFAD,EAAMA,GAAOM,KAAKG,IAEXH,KAAKc,WAAWpB,EAAKM,KAAKiB,cAAejB,KAAKgB,iBAAkBrB,EAC3E,GAEA,CAAAW,IAAA,WAAAC,MAIA,SAASb,EAAKC,GAIV,IADA,IAAIC,GAFJF,EAAMA,GAAOM,KAAKG,KAECe,MAAM,KAChBV,EAAI,EAAGA,EAAIZ,EAASE,OAAQU,IAAK,CAItC,IAHA,IAAIG,EAAUf,EAASY,GAAGU,MAAM,KAGvBC,EAFGxB,GAAkBa,EAAI,IAAMZ,EAASE,OAAS,EAAI,EAE1CqB,EAAIR,EAAQb,OAAQqB,IACpCR,EAAQQ,GAAKR,EAAQQ,GAAGC,OAAO,GAAGC,cAAgBV,EAAQQ,GAAGG,UAAU,GAE3E1B,EAASY,GAAKG,EAAQY,KAAK,GAC/B,CAIA,GAHA7B,EAAME,EAAS2B,KAAK,OAAA,IAGhB5B,EAAyB,CACzB,IAAI6B,EAAQ9B,EAAI0B,OAAO,GAAGV,cACtBe,EAAO/B,EAAIgC,MAAM,GACrBhC,EAAM8B,EAAQC,CAClB,CAKA,OAFAzB,KAAKG,IAAMT,GAAA,IAEPM,KAAKI,MACEJ,KAIJN,CACX,GAEA,CAAAY,IAAA,aAAAC,MAIA,SAAWb,GAIP,IADA,IAAIC,GAFJD,EAAMA,GAAOM,KAAKG,KAECe,MAAM,MAChBtB,EAAI,EAAGA,EAAID,EAASG,OAAQF,IACjCD,EAASC,GAAKD,EAASC,GAAGiB,QAAQb,KAAK2B,UAAW,OAClDhC,EAASC,GAAKD,EAASC,GAAGiB,QAAQb,KAAK4B,eAAgB,IAO3D,OALAlC,EAAMC,EAAS4B,KAAK,KAAKb,cAGzBV,KAAKG,IAAMT,GAEQ,IAAfM,KAAKI,MACEJ,KAIJN,CACX,GAEA,CAAAY,IAAA,WAAAC,MAIA,SAASb,EAAKC,GAaV,OARAD,GADAA,GADAA,GAFAA,EAAMA,GAAOM,KAAKG,KAERO,eACAG,QAAQb,KAAK6B,SAAU,KACvBhB,QAAQb,KAAK8B,SAAU,KAC5BnC,IACDD,EAAMM,KAAK+B,WAAWrC,IAI1BM,KAAKG,IAAMT,GAAA,IAEPM,KAAKI,MACEJ,KAIJN,CACX,GAEA,CAAAY,IAAA,aAAAC,MAIA,SAAWb,GASP,OALAA,GADAA,GAFAA,EAAMA,GAAOM,KAAKG,KAERO,eACAY,UAAU,EAAG,GAAGD,cAAgB3B,EAAI4B,UAAU,GAGxDtB,KAAKG,IAAMT,OAEPM,KAAKI,MACEJ,KAIJN,CACX,GAEA,CAAAY,IAAA,YAAAC,MAIA,SAAUb,GASN,OALAA,GADAA,GAFAA,EAAMA,GAAOM,KAAKG,KAERU,QAAQb,KAAKgC,gBAAiB,MAC9BtB,cAGVV,KAAKG,IAAMT,GAAA,IAEPM,KAAKI,MACEJ,KAIJN,CACX,GAEA,CAAAY,IAAA,UAAAC,MAKA,SAAQb,EAAKC,GACTD,EAAMA,GAAOM,KAAKG,KAGI,IAAlBR,GACAD,EAAMM,KAAKiC,SAASvC,GACpBA,EAAMM,KAAKkC,WAAWxC,IAEtBA,EAAMA,EAAIgB,cAKd,IADA,IAAId,GADJF,EAAMA,EAAImB,QAAQb,KAAK8B,SAAU,MACfZ,MAAM,KACfV,EAAI,EAAGA,EAAIZ,EAAQE,OAAQU,IAAK,CAErC,IADA,IAAIG,EAAIf,EAAQY,GAAGU,MAAM,KAChBC,EAAI,EAAGA,EAAIR,EAAEb,OAAQqB,IACtBnB,KAAKmC,mBAAmB1B,QAAQE,EAAEQ,GAAGT,eAAiB,IACtDC,EAAEQ,GAAKnB,KAAK+B,WAAWpB,EAAEQ,KAGjCvB,EAAQY,GAAKG,EAAEY,KAAK,IACxB,CAOA,OALA7B,GADAA,EAAME,EAAQ2B,KAAK,MACTD,UAAU,EAAG,GAAGD,cAAgB3B,EAAI4B,UAAU,GAGxDtB,KAAKG,IAAMT,GAAA,IAEPM,KAAKI,MACEJ,KAIJN,CACX,GAEA,CAAAY,IAAA,aAAAC,MAGA,SAAWb,GAGP,IAAIC,GAFJD,EAAMA,GAAOM,KAAKG,KAEAe,MAAM,MAMxB,OALAxB,EAAMC,EAAQA,EAAQG,OAAS,GAG/BE,KAAKG,IAAMT,GAEQ,IAAfM,KAAKI,MACEJ,KAIJN,CACX,GAEA,CAAAY,IAAA,WAAAC,MAGA,SAASb,GAQL,OAPAA,EAAMA,GAAOM,KAAKG,IAElBT,EAAMM,KAAKoC,UAAUpC,KAAKkC,WAAWxC,IAGrCM,KAAKG,IAAMT,GAEQ,IAAfM,KAAKI,MACEJ,KAIJN,CACX,GAEA,CAAAY,IAAA,WAAAC,MAGA,SAASb,GAQL,OAPAA,EAAMA,GAAOM,KAAKG,IAElBT,EAAMM,KAAKqC,YAAYrC,KAAKiC,SAASvC,IAGrCM,KAAKG,IAAMT,GAEQ,IAAfM,KAAKI,MACEJ,KAIJN,CACX,GAEA,CAAAY,IAAA,aAAAC,MAIA,SAAWb,GAAyB,IAApBC,EAAUE,UAAAC,OAAAD,QAAAA,IAAAA,cAAAA,UAAA,GAQtB,OAPAH,EAAMA,GAAOM,KAAKG,IAElBT,EAAMM,KAAKkC,WAAWlC,KAAKsC,WAAW5C,KAASC,EAAa,GAAK,KAAO,KAGxEK,KAAKG,IAAMT,GAAA,IAEPM,KAAKI,MACEJ,KAIJN,CACX,GAEA,CAAAY,IAAA,aAAAC,MAGA,SAAWb,GAIP,IADA,IAAIC,GAFJD,EAAMA,GAAOM,KAAKG,KAEAe,MAAM,KACftB,EAAI,EAAGA,EAAID,EAAQG,OAAQF,IAAK,CACrC,IAAIY,EAAI+B,SAAS5C,EAAQC,IACzB,GAAI4C,MAAMhC,GAAI,CACV,IAAIG,EAAMhB,EAAQC,GAAG0B,UAAU3B,EAAQC,GAAGE,OAAS,GAC/CqB,EAAKxB,EAAQC,GAAG0B,UAAU3B,EAAQC,GAAGE,OAAS,GAC9C0B,EAAM,KACC,MAAPb,GAAsB,MAAPA,GAAsB,MAAPA,IACnB,MAAPQ,EACAK,EAAM,KACQ,MAAPL,EACPK,EAAM,KACQ,MAAPL,IACPK,EAAM,OAGd7B,EAAQC,IAAM4B,CAClB,CACJ,CAMA,OALA9B,EAAMC,EAAQ4B,KAAK,KAGnBvB,KAAKG,IAAMT,GAEQ,IAAfM,KAAKI,MACEJ,KAIJN,CACX,IAEA,CAAA,CAAAY,IAAA,SAAAC,MAGA,WACI,IAAMZ,EAAO8C,OAAOC,OAAO7C,WACrBD,EAAW,IAAIF,EAAO,MAAM,GAC5Bc,EAASX,UAAU,GAGzB,OAFAF,EAAKgD,QAE2B,mBAArB/C,EAASY,GACTZ,EAASY,GAAOoC,MAAhBhD,EAAoBD,GAGxB,IACX,KAtauB,GAyadkD,GAAY,WACrB,IAAMnD,EAAI,CAAI,aAAWoD,OAAAC,MAAAC,UAAAtB,MAAAuB,KAAKpD,YAE9B,OAAOJ,GAAOyD,OAAMN,MAAbnD,GAAM0D,EAAWzD,GAC5B,EAEa0D,GAAc,WACvB,IAAM1D,EAAI,CAAI,eAAaoD,OAAAC,MAAAC,UAAAtB,MAAAuB,KAAKpD,YAEhC,OAAOJ,GAAOyD,OAAMN,MAAbnD,GAAM0D,EAAWzD,GAC5B,EAkDa2D,GAAW,WACpB,IAAM3D,EAAI,CAAI,YAAUoD,OAAAC,MAAAC,UAAAtB,MAAAuB,KAAKpD,YAE7B,OAAOJ,GAAOyD,OAAMN,MAAbnD,GAAM0D,EAAWzD,GAC5B,u1kFC5f6E,IAExD4D,YAAeC,GAChC,SAAAD,IAAc,OAAAE,OAAAF,GAAAG,EAAAzD,KAAAsD,EACDzD,UACb,CAAC,OAAA6D,EAAAJ,EAAAC,GAAAI,EAAAL,EAAA,CAAA,CAAAhD,IAAA,gBAAAC,MAED,WACI,OAAOqD,GAAmB5D,KADTH,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,GAExB,GAAC,CAAAS,IAAA,YAAAC,MAED,SAAUuD,GACN,OAAOC,GAAO,WAAYC,GAAShE,KAAKiE,UAAWH,EAAM9D,KAAKkE,QAClE,IAAC,EAXwCC,ICFtC,SAASC,KAAyE,IAA1DC,EAAMxE,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,EAAGyE,EAAQzE,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,MAAO0E,EAAe1E,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,SAC3E,OAAO,IAAI2E,KAAKC,aAAa,QAAS,CAClCC,MAAO,WACPJ,SAAAA,EACAC,gBAAAA,IACDI,OAAON,EACd,CCNO,SAASO,GAAQC,GACpB,IAAMC,EAAOD,QACb,GAAIC,EACA,OAAOA,EAGX,GAAwB,iBAAbD,EAAIE,KACX,OAAQF,EAAIE,KAGhB,IAAMC,EAAUC,EAAUJ,GAE1B,GAAmB,WAAfG,EAAyB,CACzB,IAAQD,EAASF,EAATE,KACR,GAAoB,iBAATA,EACP,OAAQA,CAEhB,CAEA,GAA0B,iBAAfF,EAAI/E,QAAsC,aAAfkF,EAClC,OAAQH,EAAI/E,OAGhB,GAAmB,WAAfkF,EAAyB,CACzB,IAAQlF,EAAW+E,EAAX/E,OACR,GAAsB,iBAAXA,EACP,OAAQA,CAEhB,CAEA,OAAO,CACX,CC/BA,IAAQoF,GAAYnC,MAAZmC,QCGaC,YAAkBC,GAAA,SAAAD,IAAA,OAAA3B,OAAA2B,GAAA1B,EAAAzD,KAAAmF,EAAAtF,UAAA,CAAA,OAAA6D,EAAAyB,EAAAC,GAAAzB,EAAAwB,EAAA,CAAA,CAAA7E,IAAA,aAAAC,MAOnC,SAAW2D,GAAS,IAAAmB,EAOhB,OANArF,KAAKkE,QAAUA,EACflE,KAAKsF,MAAQ,IAAIhC,GAAgBtD,KAAKiE,SAAUC,EAAS,CACrDqB,aAAcvF,KAAKwF,eAAeC,KAAKzF,MACvC0F,QAAqBL,QAAdA,EAAErF,KAAK2F,eAALN,IAAYA,OAAZA,EAAAA,EAAcK,UAGpB1F,IACX,IAAC,EAf2C4F,IAkBhDC,GAAS,WAAY,qBAAsBV,IClBpC,IAAMW,GAAgB,IAAIC,GAAa,CAC1CC,MAAO,SAAUC,GAAuB,IAAdN,EAAO9F,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAC5BqG,EAAS,CAAE,EAMjB,OAJID,IACAC,EAAOZ,MAAQW,GAGZjG,KAAKkE,QAAQiC,IAAGrD,GAAAA,OAAI9C,KAAKoG,UAAS,UAAUF,EAAQP,EAC/D,IAGiBU,YAAMjB,GACvB,SAAAiB,IAAoD,IAAxCC,EAAUzG,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAEqE,EAAOrE,UAAAC,OAAAD,EAAAA,kBAAAgE,EAAE8B,EAAO9F,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAA,OAAA2D,OAAA6C,GAAA5C,EAAA4C,KAAAA,EACxCC,CAAAA,EAAYpC,EAAS,SAAUyB,GACzC,CAAC,OAAAjC,EAAA2C,EAAAjB,GAAAzB,EAAA0C,EAAA,CAAA,CAAA/F,IAAA,WAAAC,MAED,WACI,GACH,CAAAD,IAAA,YAAAC,MAED,WACI,GACH,CAAAD,IAAA,YAAAC,MAED,WACI,IACH,EAf+BqF,IAkBpCC,GAAS,WAAY,SAAUQ,IC5BVE,IAAAA,YAAOnB,GACxB,SAAAmB,IAAoD,IAAxCD,EAAUzG,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAEqE,EAAOrE,UAAAC,OAAAD,EAAAA,kBAAAgE,EAAE8B,EAAO9F,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAA,OAAA2D,OAAA+C,GAAA9C,EAAA8C,KAAAA,EACxCD,CAAAA,EAAYpC,EAAS,UAAWyB,GAC1C,CAAC,OAAAjC,EAAA6C,EAAAnB,GAAAzB,EAAA4C,EAAA,CAAA,CAAAjG,IAAA,WAAAC,MAED,WACI,OAAOP,KAAKwG,aAAa,WAC7B,GAAC,CAAAlG,IAAA,SAAAC,MAED,WACI,OAAOP,KAAKwG,aAAa,mBAC7B,GAAC,CAAAlG,IAAA,WAAA6F,IAED,WACI,OAAOnG,KAAKwG,aAAa,aAC7B,GAAC,CAAAlG,IAAA,cAAA6F,IAED,WACI,OAAQnG,KAAKwG,aAAa,aAC9B,GAAC,CAAAlG,IAAA,kBAAA6F,IAED,WACI,IAAAM,EAAwCzG,KAAK0G,cAAc,CAAC,QAAS,aAAc,aAA3EC,EAAKF,EAALE,MAAOC,EAAUH,EAAVG,WAAYtC,EAAQmC,EAARnC,SAE3B,OAAItE,KAAK6G,SACDjC,GAAQgC,IAAehC,GAAQN,GACxB,KAGJF,GAAewC,EAAa,IAAKtC,GAGxCM,GAAQ+B,IAAU/B,GAAQN,GACnB,KAGJF,GAAeuC,EAAQ,IAAKrC,EACvC,GAAC,CAAAhE,IAAA,aAAAC,MAED,WAAa,IAAAuG,EAAA9G,KACT,OAAOA,KAAKkE,QAAQiC,IAAI,UAAW,CAAEb,MAAOtF,KAAK+G,KAAMC,MAAK,SAACC,GACzD,OAAO,IAAIC,GAAWD,EAAQE,KAAI,SAACb,GAAU,OAAK,IAAID,GAAOC,EAAYQ,EAAK5C,QAAQ,IAC1F,GACJ,IAAC,EA3CgC0B,IA8CrCC,GAAS,WAAY,UAAWU,IC/CXa,IAAAA,YAAQhC,GACzB,SAAAgC,IAAoD,IAAxCd,EAAUzG,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAEqE,EAAOrE,UAAAC,OAAAD,EAAAA,kBAAAgE,EAAE8B,EAAO9F,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAA,OAAA2D,OAAA4D,GAAA3D,EAAA2D,KAAAA,EACxCd,CAAAA,EAAYpC,EAAS,WAAYyB,GAC3C,CAAC,OAAAjC,EAAA0D,EAAAhC,GAAAzB,EAAAyD,EAAA,CAAA,CAAA9G,IAAA,cAAAC,MAED,WAAc,IAAAuG,EAAA9G,KACV,OAAOA,KAAKkE,QAAQiC,IAAI,WAAY,CAAEkB,SAAUrH,KAAK+G,KAAMC,MAAK,SAACM,GAC7D,OAAO,IAAIJ,GAAWI,EAASH,KAAI,SAACb,GAAU,OAAK,IAAIC,GAAQD,EAAYQ,EAAK5C,QAAQ,IAC5F,GACJ,IAAC,EATiC0B,IAYtCC,GAAS,WAAY,WAAYuB,ICX1B,IAAMG,GAAkB,IAAIxB,GAAa,CAE5CyB,MAAO,SAAUC,GAA4C,IAAlCC,EAAQ7H,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,KAAMyG,EAAUzG,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAEvD,GCTD,WACH,MAAO,iDAAiD8H,KAD/B9H,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,GAEhC,CDOY+H,CAAQH,GACR,OAAOzH,KAAKkE,QAAQ2D,KAAK,2BAA4B,CAAEC,MAAOL,IAGlE,IAAKC,EACD,MAAM,IAAIK,MAAM,4BAGpB,OAAO/H,KAAKkE,QAAQ2D,KAAK,kBAAiBG,EAAA,CAAIP,SAAAA,EAAUC,SAAAA,GAAapB,IAAcU,KAAKhH,KAAKiI,WAAWxC,KAAKzF,MAChH,EAEDkI,WAAY,SAAUT,EAAUU,GAAuB,IAAjB7B,EAAUzG,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EACjD,OAAOG,KAAKkE,QAAQ2D,KAAK,wBAAuBG,EAAA,CAAIP,SAAAA,EAAUU,KAAAA,GAAS7B,IAAcU,KAAKhH,KAAKiI,WAAWxC,KAAKzF,MAClH,EAEDoI,oBAAAA,SAAoBX,GAA0B,IAAhBY,EAAIxI,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,QACjC,OAAOG,KAAKkE,QAAQ2D,KAAK,kCAAmC,CACxDJ,SAAAA,EACAY,KAAAA,GAEP,EAEDC,gBAAOb,EAAUU,GAAuB,IAAjB7B,EAAUzG,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAClC,OAAOG,KAAKkE,QAAQ2D,KAAK,YAAWG,EAAA,CAAIP,SAAAA,EAAUU,KAAAA,GAAS7B,IAAcU,KAAKhH,KAAKiI,WAAWxC,KAAKzF,MACtG,EAEDuI,SAAU,SAAUxB,GAChB,OAAO/G,KAAKwI,WAAWzB,EAC3B,IAGiB0B,YAAQrD,GACzB,SAAAqD,IAAoD,IAAxCnC,EAAUzG,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAEqE,EAAOrE,UAAAC,OAAAD,EAAAA,kBAAAgE,EAAE8B,EAAO9F,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAA,OAAA2D,OAAAiF,GAAAhF,EAAAgF,KAAAA,EACxCnC,CAAAA,EAAYpC,EAAS,WAAU8D,EAAA,CACjCtC,QAAS6B,IACN5B,IAEX,CAEA,OAAAjC,EAAA+E,EAAArD,GAAAzB,EAAA8E,EAAA,CAAA,CAAAnI,IAAA,aAAAC,MAMA,SAAW2D,GAAS,IAAAmB,EAOhB,OANArF,KAAKkE,QAAUA,EACflE,KAAKsF,MAAQ,IAAIhC,GAAgBtD,KAAKiE,SAAUC,EAAS,CACrDqB,aAAcvF,KAAKwF,eAAeC,KAAKzF,MACvC0F,QAAqBL,QAAdA,EAAErF,KAAK2F,eAALN,IAAYA,OAAZA,EAAAA,EAAcK,UAGpB1F,IACX,GAAC,CAAAM,IAAA,QAAA6F,IAED,WACI,OAAOnG,KAAKwG,aAAa,QAC7B,GAAC,CAAAlG,IAAA,aAAAC,OAAAmI,EAAAC,EAAAC,IAAAC,MAED,SAAAC,EAAiBC,GAAK,IAAAjC,EAAA9G,KAAA,OAAA4I,IAAAI,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EAAA,OAAAF,EAAAG,OAAA,SACXpJ,KAAKkE,QACPmF,WAAW,CAAE,iBAAkBrJ,KAAK+I,QACpClB,KAAK,4BAA6BkB,GAClC/B,MAAK,WACF,OAAOF,CACX,KAAE,KAAA,EAAA,IAAA,MAAA,OAAAmC,EAAAK,OAAA,GAAAR,EAAA9I,UACT,SAPeuJ,GAAA,OAAAb,EAAA9F,MAAA5C,KAAAH,UAAA,IAAA,CAAAS,IAAA,2BAAAC,OAAAiJ,EAAAb,EAAAC,IAAAC,MAShB,SAAAY,EAA+BC,GAAQ,IAAAxD,EAAAyD,EAAAC,EAAAC,EAAAC,EAAAjK,UAAA,OAAA+I,IAAAI,MAAA,SAAAe,GAAA,cAAAA,EAAAb,KAAAa,EAAAZ,MAAA,KAAA,EAEiB,OAFfjD,EAAM4D,EAAAhK,OAAAgK,QAAAjG,IAAAiG,EAAAjG,GAAAiG,EAAG,GAAA,CAAE,EAAEH,EAAMG,EAAAhK,OAAA,QAAA+D,IAAAiG,EAAA,GAAAA,EAAA,GAAG,MAAKC,EAAAb,KAAA,EAEtDU,EAAU,CAAE,iBAAkB5J,KAAK+I,OAAOgB,EAAAZ,KAAA,EACzBnJ,KAAKkE,QAAQmF,WAAWO,GAASD,EAAOjJ,eAAegJ,EAAUxD,GAAO,KAAA,EAAjF,OAAR2D,EAAQE,EAAAC,KAAAD,EAAAX,OAAA,SACPS,GAAQ,KAAA,GAEoD,MAFpDE,EAAAb,KAAA,GAAAa,EAAAE,GAAAF,EAAA,MAAA,GAEfG,QAAQC,MAAKrH,YAAAA,OAAa6G,EAAM,gBAAA7G,OAAe4G,EAAQ,KAAAK,EAAAE,IAAYF,EAAAE,GAAA,KAAA,GAAA,IAAA,MAAA,OAAAF,EAAAT,OAAA,GAAAG,EAAAzJ,KAAA,CAAA,CAAA,EAAA,UAG1E,SAT6BoK,GAAA,OAAAZ,EAAA5G,MAAA5C,KAAAH,UAAA,IAAA,CAAAS,IAAA,iBAAAC,OAAA8J,EAAA1B,EAAAC,IAAAC,MAW9B,SAAAyB,IAAA,IAAAC,EAAAC,EAAAxK,KAAA,OAAA4I,IAAAI,MAAA,SAAAyB,GAAA,cAAAA,EAAAvB,KAAAuB,EAAAtB,MAAA,KAAA,EAAA,OAAAsB,EAAAvB,KAAA,EAAAuB,EAAAtB,KAAA,EAE6BnJ,KAAK0K,yBAAyB,oBAAmB,KAAA,EAA1D,OAANH,EAAME,EAAAT,KAAAS,EAAArB,OAAA,SACL,IAAIlC,GAAWqD,EAAOpD,KAAI,SAACb,GAAU,OAAK,IAAIqE,GAAMrE,EAAYkE,EAAKtG,QAAQ,MAAE,KAAA,EAErC,MAFqCuG,EAAAvB,KAAA,EAAAuB,EAAAR,GAAAQ,EAAA,MAAA,GAEtFP,QAAQC,MAAM,mCAAmCM,EAAAR,GAAA,KAAA,GAAA,IAAA,MAAA,OAAAQ,EAAAnB,OAAA,GAAAgB,EAAAtK,KAAA,CAAA,CAAA,EAAA,SAGxD,WARmB,OAAAqK,EAAAzH,MAAA5C,KAAAH,UAAA,IAAA,CAAAS,IAAA,kBAAAC,OAAAqK,EAAAjC,EAAAC,IAAAC,MAUpB,SAAAgC,IAAA,IAAA3E,EAAA4E,EAAAC,EAAA/K,KAAAgL,EAAAnL,UAAA,OAAA+I,IAAAI,MAAA,SAAAiC,GAAA,cAAAA,EAAA/B,KAAA+B,EAAA9B,MAAA,KAAA,EAAiC,OAAXjD,EAAM8E,EAAAlL,OAAAkL,QAAAnH,IAAAmH,EAAAnH,GAAAmH,EAAG,GAAA,CAAE,EAAAC,EAAA/B,KAAA,EAAA+B,EAAA9B,KAAA,EAEJnJ,KAAK0K,yBAAyB,mBAAoBxE,GAAO,KAAA,EAAlE,OAAN4E,EAAMG,EAAAjB,KAAAiB,EAAA7B,OAAA,SACL,IAAIlC,GAAW4D,EAAO3D,KAAI,SAACb,GAAU,OAAK,IAAI4E,GAAM5E,EAAYyE,EAAK7G,QAAQ,MAAE,KAAA,EAEpC,MAFoC+G,EAAA/B,KAAA,EAAA+B,EAAAhB,GAAAgB,EAAA,MAAA,GAEtFf,QAAQC,MAAM,oCAAoCc,EAAAhB,GAAA,KAAA,GAAA,IAAA,MAAA,OAAAgB,EAAA3B,OAAA,GAAAuB,EAAA7K,KAAA,CAAA,CAAA,EAAA,SAGzD,WARoB,OAAA4K,EAAAhI,MAAA5C,KAAAH,UAAA,IAAA,CAAAS,IAAA,wBAAAC,MAUrB,WAAmC,IAAb2F,EAAMrG,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAC7B,OAAOG,KAAKkE,QAAQmF,WAAW,CAAE,iBAAkBrJ,KAAK+I,QAASlB,KAAK,iCAAkC3B,EAC5G,GAAC,CAAA5F,IAAA,uBAAAC,MAED,WAAkC,IAAb2F,EAAMrG,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAC5B,OAAOG,KAAKkE,QAAQmF,WAAW,CAAE,iBAAkBrJ,KAAK+I,QAASlB,KAAK,gCAAiC3B,EAC3G,KA1BoB,IAAA0E,EAXUP,EATdb,EAFfd,CAgDA,EA1EiC9C,IA6EtCC,GAAS,WAAY,WAAY4C,IEjHjC,IAAQvD,GAAYnC,MAAZmC,QAEKiG,GAAc,IAAIpF,GAAa,CACxCuC,YAAQzE,EACRuH,aAASvH,EACTwH,WAAOxH,EACPyH,iBAAazH,EAEb0H,IAAK,SAAUxE,EAAIyE,GAAkD,IAAvCC,EAAQ5L,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,EAAG6L,EAAI7L,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAE8F,EAAO9F,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAC/D,OAAOG,KAAKkE,QAAQ2D,QAAI/E,OAAI9C,KAAKoG,UAAS,KAAAtD,OAAIiE,EAAEjE,KAAAA,OAAI0I,GAASxD,EAAAA,EAAA,CAAA,EAAS0D,GAAI,GAAA,CAAED,SAAAA,IAAY9F,GAASqB,KAAKhH,KAAKiI,WAAWxC,KAAKzF,MAC9H,EAED2L,OAAQ,SAAU5E,EAAI6E,EAAYH,GAAmC,IAAzBC,EAAI7L,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAE8F,EAAO9F,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAC/D,OAAOG,KAAKkE,QAAQ2H,OAAG/I,OAAI9C,KAAKoG,UAAS,KAAAtD,OAAIiE,EAAEjE,KAAAA,OAAI8I,GAAU5D,EAAAA,EAAA,CAAA,EAAS0D,GAAI,GAAA,CAAED,SAAAA,IAAY9F,GAASqB,KAAKhH,KAAKiI,WAAWxC,KAAKzF,MAC9H,EAED8L,OAAQ,SAAU/E,EAAI6E,GAA0B,IAAdjG,EAAO9F,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAC1C,OAAOG,KAAKkE,QAAO,UAAOpB,OAAI9C,KAAKoG,UAAStD,KAAAA,OAAIiE,OAAEjE,OAAI8I,GAAc,CAAA,EAAIjG,GAASqB,KAAKhH,KAAKiI,WAAWxC,KAAKzF,MAC9G,EAED+L,MAAO,SAAUhF,GAAkB,IAAdpB,EAAO9F,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAC7B,OAAOG,KAAKkE,QAAQ2H,IAAG/I,GAAAA,OAAI9C,KAAKoG,UAAStD,KAAAA,OAAIiE,EAAE,UAAU,GAAIpB,GAASqB,KAAKhH,KAAKiI,WAAWxC,KAAKzF,MACnG,EAEDuI,SAAU,WAAmB,IAATxB,EAAElH,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,GACrB,OAAOG,KAAKwI,WAAWzB,EAC3B,IAGiBiF,YAAI5G,GACrB,SAAA4G,IAAoD,IAAxC1F,EAAUzG,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAEqE,EAAOrE,UAAAC,OAAAD,EAAAA,kBAAAgE,EAAE8B,EAAO9F,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAA,OAAA2D,OAAAwI,GAAAvI,EAAAuI,KAAAA,EACxC1F,CAAAA,EAAYpC,EAAS,OAAM8D,EAAA,CAAItC,QAASyF,IAAgBxF,IAClE,CAAC,OAAAjC,EAAAsI,EAAA5G,GAAAzB,EAAAqI,EAAA,CAAA,CAAA1L,IAAA,MAAAC,MAED,SAAIiL,GAAkD,IAAvCC,EAAQ5L,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,EAAG6L,EAAI7L,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAE8F,EAAO9F,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAKhD,OAJI2L,aAAqBjF,KACrBiF,EAAYA,EAAUzE,IAGnB/G,KAAKsF,MAAMiG,IAAIvL,KAAK+G,GAAIyE,EAAWC,EAAUC,EAAM/F,EAC9D,GAAC,CAAArF,IAAA,SAAAC,MAED,SAAOqL,EAAYH,GAAmC,IAAzBC,EAAI7L,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAE8F,EAAO9F,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAChD,OAAOG,KAAKsF,MAAMqG,OAAO3L,KAAK+G,GAAI6E,EAAYH,EAAUC,EAAM/F,EAClE,GAAC,CAAArF,IAAA,SAAAC,MAED,SAAOqL,GAA0B,IAAdjG,EAAO9F,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAC3B,OAAOG,KAAKsF,MAAMwG,OAAO9L,KAAK+G,GAAI6E,EAAYjG,EAClD,GAAC,CAAArF,IAAA,QAAAC,MAED,WAAoB,IAAdoF,EAAO9F,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EACd,OAAOG,KAAKsF,MAAMyG,MAAM/L,KAAK+G,GAAIpB,EACrC,GAAC,CAAArF,IAAA,SAAAC,MAED,WACI,OAAOP,KAAKiM,SAChB,GAAC,CAAA3L,IAAA,UAAAC,MAED,WACI,OAAOP,KAAKsF,MAAMiD,SAASvI,KAAK+G,GACpC,GAAC,CAAAzG,IAAA,WAAAC,MAED,WACI,IAAI2L,EAAW,EAMf,OAJAlM,KAAKmM,WAAWC,SAAQ,SAACC,GACrBH,GAAYG,EAASH,QACzB,IAEOA,CACX,GAAC,CAAA5L,IAAA,WAAAC,MAED,WACI,OAAOP,KAAKwG,aAAa,QAAS,GACtC,GAAC,CAAAlG,IAAA,aAAAC,MAED,SAAWiL,GACP,OAAuF,IAAhFxL,KAAKmM,WAAWG,WAAU,SAACD,GAAQ,OAAKA,EAASE,aAAef,CAAU,GACrF,GAAC,CAAAlL,IAAA,UAAA6F,IAED,WACI,IAAMgG,EAAWnM,KAAKmM,WAEtB,OAAKjH,GAAQiH,IAIc,IAApBA,EAASrM,MACpB,GAAC,CAAAQ,IAAA,aAAA6F,IAED,WACI,OAAQnG,KAAK4E,OACjB,IAAC,EA/D6BgB,IAkElCC,GAAS,WAAY,OAAQmG,IChGRQ,IAAAA,YAAcpH,GAC/B,SAAAoH,IAAoD,IAAxClG,EAAUzG,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAEqE,EAAOrE,UAAAC,OAAAD,EAAAA,kBAAAgE,EAAE8B,EAAO9F,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAA,OAAA2D,OAAAgJ,GAAA/I,EAAA+I,KAAAA,EACxClG,CAAAA,EAAYpC,EAAS,kBAAmByB,GAClD,CAAC,OAAAjC,EAAA8I,EAAApH,GAAAzB,EAAA6I,EAAA,CAAA,CAAAlM,IAAA,OAAA6F,IAED,WACI,OAAOnG,KAAKwG,aAAa,OAC7B,GAAC,CAAAlG,IAAA,OAAA6F,IAED,WACI,OAAOnG,KAAKwG,aAAa,OAC7B,GAAC,CAAAlG,IAAA,gBAAA6F,IAED,WACI,MAAqB,SAAdnG,KAAKyM,IAChB,GAAC,CAAAnM,IAAA,kBAAA6F,IAED,WACI,MAAqB,WAAdnG,KAAKyM,IAChB,GAAC,CAAAnM,IAAA,mBAAAC,MAED,SAAiBwI,GACb/I,KAAK+I,MAAQA,CACjB,GAAC,CAAAzI,IAAA,mBAAAC,MAED,WACI,OAAOP,KAAK+I,KAChB,GAEA,CAAAzI,IAAA,aAAAC,MACA,WACI,MAAM,IAAIwH,MAAM,wDACpB,GAEA,CAAAzH,IAAA,SAAAC,MACA,WACI,MAAM,IAAIwH,MAAM,oDACpB,GAEA,CAAAzH,IAAA,SAAAC,MACA,WACI,MAAM,IAAIwH,MAAM,oDACpB,GAEA,CAAAzH,IAAA,UAAAC,MACA,WACI,MAAM,IAAIwH,MAAM,qDACpB,GAEA,CAAAzH,IAAA,SAAAC,MACA,WACI,MAAM,IAAIwH,MAAM,oDACpB,IAAC,EApDuCnC,IAuD5CC,GAAS,WAAY,iBAAkB2G,ICkBhC,IAAME,GAAqB,OA2IrBC,GAAsBC,OAAU,IAAC,qBClLvC,SAASC,GAAcC,EAAMvM,GAClC,MAAoB,mBAATuM,EAA4BA,EAAKvM,GAExCuM,GAAwB,WAAhB7H,EAAO6H,IAAqBH,MAAuBG,EACtDA,EAAKH,IAAqBpM,GAE/BuM,aAAgBC,KAAa,IAAID,EAAKE,YAAYzM,GAE/C,IAAIwM,KAAKxM,EAClB,CCNO,SAAS0M,GAAOC,EAAUC,GAE/B,OAAON,GAAcM,GAAWD,EAAUA,EAC5C,CCdO,SAASE,GAAQN,EAAMzI,EAAQsB,GACpC,IAAM0H,EAAQJ,GAAOH,EAAMnH,aAAO,EAAPA,EAAO,IAClC,OAAInD,MAAM6B,GAAgBwI,IAAclH,eAAAA,EAAO,KAAQmH,EAAMQ,KAGxDjJ,GAELgJ,EAAME,QAAQF,EAAMG,UAAYnJ,GACzBgJ,GAHaA,CAItB,CCtCA,IAAII,GAAiB,CAAE,EAEhB,SAASC,KACd,OAAOD,EACT,CC8BO,SAASE,GAAYb,EAAMnH,GAAS,IAAAiI,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACnCR,EAAiBC,KACjBQ,EAIwC,QAJ5BN,UAAAC,EAEsB,QAFtBC,EACKC,QADLA,EAChBpI,eAAAA,EAASuI,oBAAYH,IAAAA,EAAAA,EACrBpI,SAAe,QAARqI,EAAPrI,EAASwI,cAAMH,IAAAA,GAASA,QAATA,EAAfA,EAAiBrI,eAAjBqI,IAAwBA,OAAxBA,EAAAA,EAA0BE,oBAAY,IAAAJ,EAAAA,EACtCL,EAAeS,oBAAY,IAAAL,EAAAA,EACN,QADMI,EAC3BR,EAAeU,cAAMF,IAAAA,GAASA,QAATA,EAArBA,EAAuBtI,eAAvBsI,IAA8BA,OAA9BA,EAAAA,EAAgCC,oBAAYN,IAAAA,EAAAA,EAC5C,EAEIP,EAAQJ,GAAOH,EAAMnH,aAAO,EAAPA,EAAO,IAC5ByI,EAAMf,EAAMgB,SACZC,GAAQF,EAAMF,EAAe,EAAI,GAAKE,EAAMF,EAIlD,OAFAb,EAAME,QAAQF,EAAMG,UAAYc,GAChCjB,EAAMkB,SAAS,EAAG,EAAG,EAAG,GACjBlB,CACT,CCpBO,SAASmB,GAAe1B,EAAMnH,GACnC,OAAOgI,GAAYb,EAAI9E,EAAAA,KAAOrC,GAAO,GAAA,CAAEuI,aAAc,IACvD,CCJO,SAASO,GAAe3B,EAAMnH,GACnC,IAAM0H,EAAQJ,GAAOH,OAAa,GAC5B4B,EAAOrB,EAAMsB,cAEbC,EAA4B/B,GAAcQ,EAAO,GACvDuB,EAA0BC,YAAYH,EAAO,EAAG,EAAG,GACnDE,EAA0BL,SAAS,EAAG,EAAG,EAAG,GAC5C,IAAMO,EAAkBN,GAAeI,GAEjCG,EAA4BlC,GAAcQ,EAAO,GACvD0B,EAA0BF,YAAYH,EAAM,EAAG,GAC/CK,EAA0BR,SAAS,EAAG,EAAG,EAAG,GAC5C,IAAMS,EAAkBR,GAAeO,GAEvC,OAAI1B,EAAM4B,WAAaH,EAAgBG,UAC9BP,EAAO,EACLrB,EAAM4B,WAAaD,EAAgBC,UACrCP,EAEAA,EAAO,CAElB,CCpCO,SAASQ,GAAgCpC,GAC9C,IAAMO,EAAQJ,GAAOH,GACfqC,EAAU,IAAIpC,KAClBA,KAAKqC,IACH/B,EAAMsB,cACNtB,EAAMgC,WACNhC,EAAMG,UACNH,EAAMiC,WACNjC,EAAMkC,aACNlC,EAAMmC,aACNnC,EAAMoC,oBAIV,OADAN,EAAQO,eAAerC,EAAMsB,gBACrB7B,GAAQqC,CAClB,CCAO,SAASQ,GAAW7C,EAAMnH,GAC/B,IAAM0H,EAAQJ,GAAOH,OAAa,GAElC,OADAO,EAAMkB,SAAS,EAAG,EAAG,EAAG,GACjBlB,CACT,CCQO,SAASuC,GAAyBC,EAAWC,EAAanK,GAC/D,IAAAoK,ECvCK,SAAwB5C,GAAmB,IAAA6C,IAAAA,EAAAnQ,UAAAC,OAAPmQ,MAAKlN,MAAAiN,EAAAA,EAAAA,OAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAALD,EAAKC,EAAArQ,GAAAA,UAAAqQ,GAC9C,IAAMC,EAAYtD,GAAcpH,KAC9B,KACWwK,EAAMG,MAAK,SAACtD,GAAI,MAAqB,WAAhB7H,EAAO6H,EAAiB,KAE1D,OAAOmD,EAAM9I,IAAIgJ,EACnB,CDiCqCE,MACjC1K,EACAkK,EACAC,GACDQ,EAAAC,EAAAR,EAAA,GAJMS,EAAUF,EAAA,GAAEG,EAAYH,EAAA,GAMzBI,EAAkBf,GAAWa,GAC7BG,EAAoBhB,GAAWc,GAE/BG,GACHF,EAAkBxB,GAAgCwB,GAC/CG,GACHF,EAAoBzB,GAAgCyB,GAKvD,OAAOG,KAAKC,OAAOH,EAAiBC,GVyBL,MUxBjC,CEzBO,SAASG,GAAQlE,GACtB,WCHqBvM,EDGHuM,aCDCC,MACC,WAAjB9H,EAAO1E,IACoC,kBAA1CkC,OAAOO,UAAUiO,SAAShO,KAAK1C,KDDQ,iBAATuM,GAAsBtK,OAAOyK,GAAOH,KCHjE,IAAgBvM,CDIvB,CEpCA,IAAM2Q,GAAuB,CAC3BC,iBAAkB,CAChBC,IAAK,qBACLC,MAAO,+BAGTC,SAAU,CACRF,IAAK,WACLC,MAAO,qBAGTE,YAAa,gBAEbC,iBAAkB,CAChBJ,IAAK,qBACLC,MAAO,+BAGTI,SAAU,CACRL,IAAK,WACLC,MAAO,qBAGTK,YAAa,CACXN,IAAK,eACLC,MAAO,yBAGTM,OAAQ,CACNP,IAAK,SACLC,MAAO,mBAGTO,MAAO,CACLR,IAAK,QACLC,MAAO,kBAGTQ,YAAa,CACXT,IAAK,eACLC,MAAO,yBAGTS,OAAQ,CACNV,IAAK,SACLC,MAAO,mBAGTU,aAAc,CACZX,IAAK,gBACLC,MAAO,0BAGTW,QAAS,CACPZ,IAAK,UACLC,MAAO,oBAGTY,YAAa,CACXb,IAAK,eACLC,MAAO,yBAGTa,OAAQ,CACNd,IAAK,SACLC,MAAO,mBAGTc,WAAY,CACVf,IAAK,cACLC,MAAO,wBAGTe,aAAc,CACZhB,IAAK,gBACLC,MAAO,2BC3EJ,SAASgB,GAAkBC,GAChC,OAAO,WAAkB,IAAjB3M,EAAO9F,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAEZ0S,EAAQ5M,EAAQ4M,MAAQC,OAAO7M,EAAQ4M,OAASD,EAAKG,aAE3D,OADeH,EAAKI,QAAQH,IAAUD,EAAKI,QAAQJ,EAAKG,aAEzD,CACH,CCLA,IAqBaE,GAAa,CACxB7F,KAAMuF,GAAkB,CACtBK,QAvBgB,CAClBE,KAAM,mBACNC,KAAM,aACNC,OAAQ,WACRC,MAAO,cAoBLN,aAAc,SAGhBO,KAAMX,GAAkB,CACtBK,QArBgB,CAClBE,KAAM,iBACNC,KAAM,cACNC,OAAQ,YACRC,MAAO,UAkBLN,aAAc,SAGhBQ,SAAUZ,GAAkB,CAC1BK,QAnBoB,CACtBE,KAAM,yBACNC,KAAM,yBACNC,OAAQ,qBACRC,MAAO,sBAgBLN,aAAc,UCpCZS,GAAuB,CAC3BC,SAAU,qBACVC,UAAW,mBACXC,MAAO,eACPC,SAAU,kBACVC,SAAU,cACVlC,MAAO,KCiCF,SAASmC,GAAgBlB,GAC9B,OAAO,SAAC/R,EAAOoF,GACb,IAEI8N,EACJ,GAAgB,gBAHA9N,SAAAA,EAASwH,QAAUqF,OAAO7M,EAAQwH,SAAW,eAG7BmF,EAAKoB,iBAAkB,CACrD,IAAMjB,EAAeH,EAAKqB,wBAA0BrB,EAAKG,aACnDF,EAAQ5M,SAAAA,EAAS4M,MAAQC,OAAO7M,EAAQ4M,OAASE,EAEvDgB,EACEnB,EAAKoB,iBAAiBnB,IAAUD,EAAKoB,iBAAiBjB,EAC1D,KAAO,CACL,IAAMA,EAAeH,EAAKG,aACpBF,EAAQ5M,SAAAA,EAAS4M,MAAQC,OAAO7M,EAAQ4M,OAASD,EAAKG,aAE5DgB,EAAcnB,EAAK5P,OAAO6P,IAAUD,EAAK5P,OAAO+P,EAClD,CAIA,OAAOgB,EAHOnB,EAAKsB,iBAAmBtB,EAAKsB,iBAAiBrT,GAASA,EAItE,CACH,CC3DA,IA0JasT,GAAW,CACtBC,cAzBoB,SAACC,EAAaC,GAClC,IAAMC,EAASC,OAAOH,GAShBI,EAASF,EAAS,IACxB,GAAIE,EAAS,IAAMA,EAAS,GAC1B,OAAQA,EAAS,IACf,KAAK,EACH,OAAOF,EAAS,KAClB,KAAK,EACH,OAAOA,EAAS,KAClB,KAAK,EACH,OAAOA,EAAS,KAGtB,OAAOA,EAAS,IAClB,EAKEG,IAAKZ,GAAgB,CACnB9Q,OA9Jc,CAChB2R,OAAQ,CAAC,IAAK,KACdC,YAAa,CAAC,KAAM,MACpBC,KAAM,CAAC,gBAAiB,gBA4JtB9B,aAAc,SAGhB+B,QAAShB,GAAgB,CACvB9Q,OA7JkB,CACpB2R,OAAQ,CAAC,IAAK,IAAK,IAAK,KACxBC,YAAa,CAAC,KAAM,KAAM,KAAM,MAChCC,KAAM,CAAC,cAAe,cAAe,cAAe,gBA2JlD9B,aAAc,OACdmB,iBAAkB,SAACY,GAAO,OAAKA,EAAU,CAAC,IAG5CC,MAAOjB,GAAgB,CACrB9Q,OAzJgB,CAClB2R,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChEC,YAAa,CACX,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAGFC,KAAM,CACJ,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,aA6HA9B,aAAc,SAGhBrE,IAAKoF,GAAgB,CACnB9Q,OA7Hc,CAChB2R,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACvCtB,MAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAC5CuB,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACxDC,KAAM,CACJ,SACA,SACA,UACA,YACA,WACA,SACA,aAmHA9B,aAAc,SAGhBiC,UAAWlB,GAAgB,CACzB9Q,OAnHoB,CACtB2R,OAAQ,CACNM,GAAI,IACJC,GAAI,IACJC,SAAU,KACVC,KAAM,IACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,SAETZ,YAAa,CACXK,GAAI,KACJC,GAAI,KACJC,SAAU,WACVC,KAAM,OACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,SAETX,KAAM,CACJI,GAAI,OACJC,GAAI,OACJC,SAAU,WACVC,KAAM,OACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,UAuFPzC,aAAc,OACdiB,iBApF8B,CAChCW,OAAQ,CACNM,GAAI,IACJC,GAAI,IACJC,SAAU,KACVC,KAAM,IACNC,QAAS,iBACTC,UAAW,mBACXC,QAAS,iBACTC,MAAO,YAETZ,YAAa,CACXK,GAAI,KACJC,GAAI,KACJC,SAAU,WACVC,KAAM,OACNC,QAAS,iBACTC,UAAW,mBACXC,QAAS,iBACTC,MAAO,YAETX,KAAM,CACJI,GAAI,OACJC,GAAI,OACJC,SAAU,WACVC,KAAM,OACNC,QAAS,iBACTC,UAAW,mBACXC,QAAS,iBACTC,MAAO,aAwDPvB,uBAAwB,UCxLrB,SAASwB,GAAa7C,GAC3B,OAAO,SAAC8C,GAAyB,IAAjBzP,EAAO9F,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EACpB0S,EAAQ5M,EAAQ4M,MAEhB8C,EACH9C,GAASD,EAAKgD,cAAc/C,IAC7BD,EAAKgD,cAAchD,EAAKiD,mBACpBC,EAAcJ,EAAOxU,MAAMyU,GAEjC,IAAKG,EACH,OAAO,KAET,IAWIjV,EAXEkV,EAAgBD,EAAY,GAE5BE,EACHnD,GAASD,EAAKoD,cAAcnD,IAC7BD,EAAKoD,cAAcpD,EAAKqD,mBAEpBrV,EAAMyC,MAAMmC,QAAQwQ,GA+B9B,SAAmBE,EAAOC,GACxB,IAAK,IAAIvV,EAAM,EAAGA,EAAMsV,EAAM9V,OAAQQ,IACpC,GAAIuV,EAAUD,EAAMtV,IAClB,OAAOA,EAGX,MACF,CArCQgM,CAAUoJ,GAAe,SAACI,GAAO,OAAKA,EAAQnO,KAAK8N,MAkB3D,SAAiBM,EAAQF,GACvB,IAAK,IAAMvV,KAAOyV,EAChB,GACEtT,OAAOO,UAAUgT,eAAe/S,KAAK8S,EAAQzV,IAC7CuV,EAAUE,EAAOzV,IAEjB,OAAOA,EAGX,MACF,CA1BQ2V,CAAQP,GAAe,SAACI,GAAO,OAAKA,EAAQnO,KAAK8N,MAYrD,OARAlV,EAAQ+R,EAAK4D,cAAgB5D,EAAK4D,cAAc5V,GAAOA,EAQhD,CAAEC,MAPTA,EAAQoF,EAAQuQ,cAEZvQ,EAAQuQ,cAAc3V,GACtBA,EAIY4V,KAFHf,EAAO1T,MAAM+T,EAAc3V,QAGzC,CACH,CChCA,ICHoCwS,GDyFvB1R,GAAQ,CACnBkT,eC1FkCxB,GD0FC,CACjC+C,aAxF8B,wBAyF9Be,aAxF8B,OAyF9BF,cAAe,SAAC3V,GAAK,OAAKgC,SAAShC,EAAO,GAAG,GC5FxC,SAAC6U,GAAyB,IAAjBzP,EAAO9F,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EACpB2V,EAAcJ,EAAOxU,MAAM0R,GAAK+C,cACtC,IAAKG,EAAa,OAAO,KACzB,IAAMC,EAAgBD,EAAY,GAE5Ba,EAAcjB,EAAOxU,MAAM0R,GAAK8D,cACtC,IAAKC,EAAa,OAAO,KACzB,IAAI9V,EAAQ+R,GAAK4D,cACb5D,GAAK4D,cAAcG,EAAY,IAC/BA,EAAY,GAOhB,MAAO,CAAE9V,MAJTA,EAAQoF,EAAQuQ,cAAgBvQ,EAAQuQ,cAAc3V,GAASA,EAI/C4V,KAFHf,EAAO1T,MAAM+T,EAAc3V,QAGzC,GD8EDsU,IAAKe,GAAa,CAChBG,cA3FqB,CACvBjB,OAAQ,UACRC,YAAa,6DACbC,KAAM,8DAyFJgB,kBAAmB,OACnBG,cAxFqB,CACvBY,IAAK,CAAC,MAAO,YAwFXX,kBAAmB,QAGrBnB,QAASW,GAAa,CACpBG,cAzFyB,CAC3BjB,OAAQ,WACRC,YAAa,YACbC,KAAM,kCAuFJgB,kBAAmB,OACnBG,cAtFyB,CAC3BY,IAAK,CAAC,KAAM,KAAM,KAAM,OAsFtBX,kBAAmB,MACnBO,cAAe,SAACK,GAAK,OAAKA,EAAQ,CAAC,IAGrC9B,MAAOU,GAAa,CAClBG,cAxFuB,CACzBjB,OAAQ,eACRC,YAAa,sDACbC,KAAM,6FAsFJgB,kBAAmB,OACnBG,cArFuB,CACzBrB,OAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAGFiC,IAAK,CACH,OACA,MACA,QACA,OACA,QACA,QACA,QACA,OACA,MACA,MACA,MACA,QA0DAX,kBAAmB,QAGrBvH,IAAK+G,GAAa,CAChBG,cA1DqB,CACvBjB,OAAQ,YACRtB,MAAO,2BACPuB,YAAa,kCACbC,KAAM,gEAuDJgB,kBAAmB,OACnBG,cAtDqB,CACvBrB,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACnDiC,IAAK,CAAC,OAAQ,MAAO,OAAQ,MAAO,OAAQ,MAAO,SAqDjDX,kBAAmB,QAGrBjB,UAAWS,GAAa,CACtBG,cAtD2B,CAC7BjB,OAAQ,6DACRiC,IAAK,kFAqDHf,kBAAmB,MACnBG,cApD2B,CAC7BY,IAAK,CACH3B,GAAI,MACJC,GAAI,MACJC,SAAU,OACVC,KAAM,OACNC,QAAS,WACTC,UAAW,aACXC,QAAS,WACTC,MAAO,WA4CPS,kBAAmB,SEnHVa,GAAO,CAClBrO,KAAM,QACNsO,eT+D4B,SAAC1N,EAAO/C,EAAOL,GAC3C,IAAI+Q,EAEEC,EAAazF,GAAqBnI,GASxC,OAPE2N,EADwB,iBAAfC,EACAA,EACU,IAAV3Q,EACA2Q,EAAWvF,IAEXuF,EAAWtF,MAAMxQ,QAAQ,YAAamF,EAAMiL,YAGnDtL,SAAAA,EAASiR,UACPjR,EAAQkR,YAAclR,EAAQkR,WAAa,EACtC,MAAQH,EAERA,EAAS,OAIbA,CACT,ESnFE/D,WAAYA,GACZmE,eNT4B,SAAC/N,EAAOsE,EAAO0J,EAAW/C,GAAQ,OAC9Dd,GAAqBnK,EAAM,EMS3B8K,SAAUA,GACVjT,MAAOA,GACP+E,QAAS,CACPuI,aAAc,EACd8I,sBAAuB,ICGpB,SAASC,GAAanK,EAAMnH,GACjC,IAAM0H,EAAQJ,GAAOH,OAAa,GAC5BwB,EAAOsB,GAAyBvC,ECAjC,SAAqBP,GAC1B,IAAMoK,EAAQjK,GAAOH,OAAa,GAGlC,OAFAoK,EAAMrI,YAAYqI,EAAMvI,cAAe,EAAG,GAC1CuI,EAAM3I,SAAS,EAAG,EAAG,EAAG,GACjB2I,CACT,CDL+CC,CAAY9J,IAEzD,OADkBiB,EAAO,CAE3B,CEFO,SAAS8I,GAAWtK,EAAMnH,GAC/B,IAAM0H,EAAQJ,GAAOH,OAAa,GAC5BwB,GAAQE,GAAenB,ICExB,SAA4BP,GACjC,IAAM4B,EAAOD,GAAe3B,GACtBuK,EAAkBxK,GAA6BC,EAAM,GAG3D,OAFAuK,EAAgBxI,YAAYH,EAAM,EAAG,GACrC2I,EAAgB9I,SAAS,EAAG,EAAG,EAAG,GAC3BC,GAAe6I,EACxB,CDRyCC,CAAmBjK,GAK1D,OAAOyD,KAAKC,MAAMzC,EAAO5B,IAAsB,CACjD,CEMO,SAAS6K,GAAYzK,EAAMnH,GAAS,IAAAiI,EAAAC,EAAAC,EAAA0J,EAAAxJ,EAAAC,EACnCZ,EAAQJ,GAAOH,EAAMnH,aAAO,EAAPA,EAAO,IAC5B+I,EAAOrB,EAAMsB,cAEblB,EAAiBC,KACjBsJ,EAIiD,QAJ5BpJ,UAAAC,EAEsB,QAFtBC,EACK0J,QADLA,EACzB7R,eAAAA,EAASqR,6BAAqBQ,IAAAA,EAAAA,EAC9B7R,SAAe,QAARqI,EAAPrI,EAASwI,cAAMH,IAAAA,GAASA,QAATA,EAAfA,EAAiBrI,eAAjBqI,IAAwBA,OAAxBA,EAAAA,EAA0BgJ,6BAAqB,IAAAlJ,EAAAA,EAC/CL,EAAeuJ,6BAAqB,IAAAnJ,EAAAA,EACf,QADeI,EACpCR,EAAeU,cAAMF,IAAAA,GAASA,QAATA,EAArBA,EAAuBtI,eAAvBsI,IAA8BA,OAA9BA,EAAAA,EAAgC+I,6BAAqBpJ,IAAAA,EAAAA,EACrD,EAEI6J,EAAsB5K,IAAclH,aAAO,EAAPA,EAAW,KAAImH,EAAM,GAC/D2K,EAAoB5I,YAAYH,EAAO,EAAG,EAAGsI,GAC7CS,EAAoBlJ,SAAS,EAAG,EAAG,EAAG,GACtC,IAAMO,EAAkBnB,GAAY8J,EAAqB9R,GAEnD+R,EAAsB7K,IAAclH,aAAO,EAAPA,EAAW,KAAImH,EAAM,GAC/D4K,EAAoB7I,YAAYH,EAAM,EAAGsI,GACzCU,EAAoBnJ,SAAS,EAAG,EAAG,EAAG,GACtC,IAAMS,EAAkBrB,GAAY+J,EAAqB/R,GAEzD,OAAK0H,IAAUyB,EACNJ,EAAO,GACJrB,IAAU2B,EACbN,EAEAA,EAAO,CAElB,CC7BO,SAASiJ,GAAQ7K,EAAMnH,GAC5B,IAAM0H,EAAQJ,GAAOH,EAAMnH,aAAO,EAAPA,EAAO,IAC5B2I,GAAQX,GAAYN,EAAO1H,ICC5B,SAAyBmH,EAAMnH,GAAS,IAAAiI,EAAAC,EAAAC,EAAA0J,EAAAxJ,EAAAC,EACvCR,EAAiBC,KACjBsJ,EAIiD,QAJ5BpJ,UAAAC,EAEsB,QAFtBC,EACK0J,QADLA,EACzB7R,eAAAA,EAASqR,6BAAqBQ,IAAAA,EAAAA,EAC9B7R,SAAe,QAARqI,EAAPrI,EAASwI,cAAMH,IAAAA,GAASA,QAATA,EAAfA,EAAiBrI,eAAjBqI,IAAwBA,OAAxBA,EAAAA,EAA0BgJ,6BAAqB,IAAAlJ,EAAAA,EAC/CL,EAAeuJ,6BAAqB,IAAAnJ,EAAAA,EACf,QADeI,EACpCR,EAAeU,cAAMF,IAAAA,GAASA,QAATA,EAArBA,EAAuBtI,eAAvBsI,IAA8BA,OAA9BA,EAAAA,EAAgC+I,6BAAqBpJ,IAAAA,EAAAA,EACrD,EAEIc,EAAO6I,GAAYzK,EAAMnH,GACzBiS,EAAY/K,IAAclH,aAAO,EAAPA,EAAW,KAAImH,EAAM,GAIrD,OAHA8K,EAAU/I,YAAYH,EAAM,EAAGsI,GAC/BY,EAAUrJ,SAAS,EAAG,EAAG,EAAG,GACdZ,GAAYiK,EAAWjS,EAEvC,CDhB+CkS,CAAgBxK,EAAO1H,GAKpE,OAAOmL,KAAKC,MAAMzC,EAAO5B,IAAsB,CACjD,CEnDO,SAASoL,GAAgB7D,EAAQ8D,GAGtC,OAFa9D,EAAS,EAAI,IAAM,IACjBnD,KAAKkH,IAAI/D,GAAQhD,WAAWgH,SAASF,EAAc,IAEpE,CCWO,IAAMG,YAETpL,EAAM/D,GAUN,IAAMoP,EAAarL,EAAK6B,cAElBD,EAAOyJ,EAAa,EAAIA,EAAa,EAAIA,EAC/C,OAAOL,GAA0B,OAAV/O,EAAiB2F,EAAO,IAAMA,EAAM3F,EAAMjJ,OAClE,EAhBUoY,YAmBTpL,EAAM/D,GACN,IAAM0L,EAAQ3H,EAAKuC,WACnB,MAAiB,MAAVtG,EAAgByJ,OAAOiC,EAAQ,GAAKqD,GAAgBrD,EAAQ,EAAG,EACvE,EAtBUyD,YAyBTpL,EAAM/D,GACN,OAAO+O,GAAgBhL,EAAKU,UAAWzE,EAAMjJ,OAC9C,EA3BUoY,YAgDTpL,EAAM/D,GACN,OAAO+O,GAAgBhL,EAAKwC,WAAa,IAAM,GAAIvG,EAAMjJ,OAC1D,EAlDUoY,YAqDTpL,EAAM/D,GACN,OAAO+O,GAAgBhL,EAAKwC,WAAYvG,EAAMjJ,OAC/C,EAvDUoY,YA0DTpL,EAAM/D,GACN,OAAO+O,GAAgBhL,EAAKyC,aAAcxG,EAAMjJ,OACjD,EA5DUoY,YA+DTpL,EAAM/D,GACN,OAAO+O,GAAgBhL,EAAK0C,aAAczG,EAAMjJ,OACjD,EAjEUoY,YAoETpL,EAAM/D,GACN,IAAMqP,EAAiBrP,EAAMjJ,OACvBuY,EAAevL,EAAK2C,kBAI1B,OAAOqI,GAHmBhH,KAAKwH,MAC7BD,EAAevH,KAAKyH,IAAI,GAAIH,EAAiB,IAELrP,EAAMjJ,OAClD,ECjFI0Y,GAGM,WAHNA,GAIE,OAJFA,GAKK,UALLA,GAMO,YANPA,GAOK,UAPLA,GAQG,QAiDIC,GAAa,CAExBC,EAAG,SAAU5L,EAAM/D,EAAO8K,GACxB,IAAMO,EAAMtH,EAAK6B,cAAgB,EAAI,EAAI,EACzC,OAAQ5F,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO8K,EAASO,IAAIA,EAAK,CAAE7B,MAAO,gBAEpC,IAAK,QACH,OAAOsB,EAASO,IAAIA,EAAK,CAAE7B,MAAO,WAGpC,QACE,OAAOsB,EAASO,IAAIA,EAAK,CAAE7B,MAAO,SAEvC,EAGDoG,EAAG,SAAU7L,EAAM/D,EAAO8K,GAExB,GAAc,OAAV9K,EAAgB,CAClB,IAAMoP,EAAarL,EAAK6B,cAElBD,EAAOyJ,EAAa,EAAIA,EAAa,EAAIA,EAC/C,OAAOtE,EAASC,cAAcpF,EAAM,CAAEkK,KAAM,QAC9C,CAEA,OAAOV,GAAkBpL,EAAM/D,EAChC,EAGD8P,EAAG,SAAU/L,EAAM/D,EAAO8K,EAAUlO,GAClC,IAAMmT,EAAiBvB,GAAYzK,EAAMnH,GAEnCoT,EAAWD,EAAiB,EAAIA,EAAiB,EAAIA,EAG3D,MAAc,OAAV/P,EAEK+O,GADciB,EAAW,IACK,GAIzB,OAAVhQ,EACK8K,EAASC,cAAciF,EAAU,CAAEH,KAAM,SAI3Cd,GAAgBiB,EAAUhQ,EAAMjJ,OACxC,EAGDkZ,EAAG,SAAUlM,EAAM/D,GAIjB,OAAO+O,GAHarJ,GAAe3B,GAGC/D,EAAMjJ,OAC3C,EAWDmZ,EAAG,SAAUnM,EAAM/D,GAEjB,OAAO+O,GADMhL,EAAK6B,cACW5F,EAAMjJ,OACpC,EAGDoZ,EAAG,SAAUpM,EAAM/D,EAAO8K,GACxB,IAAMW,EAAU1D,KAAKqI,MAAMrM,EAAKuC,WAAa,GAAK,GAClD,OAAQtG,GAEN,IAAK,IACH,OAAOyJ,OAAOgC,GAEhB,IAAK,KACH,OAAOsD,GAAgBtD,EAAS,GAElC,IAAK,KACH,OAAOX,EAASC,cAAcU,EAAS,CAAEoE,KAAM,YAEjD,IAAK,MACH,OAAO/E,EAASW,QAAQA,EAAS,CAC/BjC,MAAO,cACPpF,QAAS,eAGb,IAAK,QACH,OAAO0G,EAASW,QAAQA,EAAS,CAC/BjC,MAAO,SACPpF,QAAS,eAIb,QACE,OAAO0G,EAASW,QAAQA,EAAS,CAC/BjC,MAAO,OACPpF,QAAS,eAGhB,EAGDiM,EAAG,SAAUtM,EAAM/D,EAAO8K,GACxB,IAAMW,EAAU1D,KAAKqI,MAAMrM,EAAKuC,WAAa,GAAK,GAClD,OAAQtG,GAEN,IAAK,IACH,OAAOyJ,OAAOgC,GAEhB,IAAK,KACH,OAAOsD,GAAgBtD,EAAS,GAElC,IAAK,KACH,OAAOX,EAASC,cAAcU,EAAS,CAAEoE,KAAM,YAEjD,IAAK,MACH,OAAO/E,EAASW,QAAQA,EAAS,CAC/BjC,MAAO,cACPpF,QAAS,eAGb,IAAK,QACH,OAAO0G,EAASW,QAAQA,EAAS,CAC/BjC,MAAO,SACPpF,QAAS,eAIb,QACE,OAAO0G,EAASW,QAAQA,EAAS,CAC/BjC,MAAO,OACPpF,QAAS,eAGhB,EAGDkM,EAAG,SAAUvM,EAAM/D,EAAO8K,GACxB,IAAMY,EAAQ3H,EAAKuC,WACnB,OAAQtG,GACN,IAAK,IACL,IAAK,KACH,OAAOmP,GAAkBpL,EAAM/D,GAEjC,IAAK,KACH,OAAO8K,EAASC,cAAcW,EAAQ,EAAG,CAAEmE,KAAM,UAEnD,IAAK,MACH,OAAO/E,EAASY,MAAMA,EAAO,CAC3BlC,MAAO,cACPpF,QAAS,eAGb,IAAK,QACH,OAAO0G,EAASY,MAAMA,EAAO,CAC3BlC,MAAO,SACPpF,QAAS,eAIb,QACE,OAAO0G,EAASY,MAAMA,EAAO,CAAElC,MAAO,OAAQpF,QAAS,eAE5D,EAGDmM,EAAG,SAAUxM,EAAM/D,EAAO8K,GACxB,IAAMY,EAAQ3H,EAAKuC,WACnB,OAAQtG,GAEN,IAAK,IACH,OAAOyJ,OAAOiC,EAAQ,GAExB,IAAK,KACH,OAAOqD,GAAgBrD,EAAQ,EAAG,GAEpC,IAAK,KACH,OAAOZ,EAASC,cAAcW,EAAQ,EAAG,CAAEmE,KAAM,UAEnD,IAAK,MACH,OAAO/E,EAASY,MAAMA,EAAO,CAC3BlC,MAAO,cACPpF,QAAS,eAGb,IAAK,QACH,OAAO0G,EAASY,MAAMA,EAAO,CAC3BlC,MAAO,SACPpF,QAAS,eAIb,QACE,OAAO0G,EAASY,MAAMA,EAAO,CAAElC,MAAO,OAAQpF,QAAS,eAE5D,EAGDoM,EAAG,SAAUzM,EAAM/D,EAAO8K,EAAUlO,GAClC,IAAM6T,EAAO7B,GAAQ7K,EAAMnH,GAE3B,MAAc,OAAVoD,EACK8K,EAASC,cAAc0F,EAAM,CAAEZ,KAAM,SAGvCd,GAAgB0B,EAAMzQ,EAAMjJ,OACpC,EAGD2Z,EAAG,SAAU3M,EAAM/D,EAAO8K,GACxB,IAAM6F,EAAUtC,GAAWtK,GAE3B,MAAc,OAAV/D,EACK8K,EAASC,cAAc4F,EAAS,CAAEd,KAAM,SAG1Cd,GAAgB4B,EAAS3Q,EAAMjJ,OACvC,EAGD6Z,EAAG,SAAU7M,EAAM/D,EAAO8K,GACxB,MAAc,OAAV9K,EACK8K,EAASC,cAAchH,EAAKU,UAAW,CAAEoL,KAAM,SAGjDV,GAAkBpL,EAAM/D,EAChC,EAGD3F,EAAG,SAAU0J,EAAM/D,EAAO8K,GACxB,IAAM+F,EAAY3C,GAAanK,GAE/B,MAAc,OAAV/D,EACK8K,EAASC,cAAc8F,EAAW,CAAEhB,KAAM,cAG5Cd,GAAgB8B,EAAW7Q,EAAMjJ,OACzC,EAGD+Z,EAAG,SAAU/M,EAAM/D,EAAO8K,GACxB,IAAMiG,EAAYhN,EAAKuB,SACvB,OAAQtF,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO8K,EAASzF,IAAI0L,EAAW,CAC7BvH,MAAO,cACPpF,QAAS,eAGb,IAAK,QACH,OAAO0G,EAASzF,IAAI0L,EAAW,CAC7BvH,MAAO,SACPpF,QAAS,eAGb,IAAK,SACH,OAAO0G,EAASzF,IAAI0L,EAAW,CAC7BvH,MAAO,QACPpF,QAAS,eAIb,QACE,OAAO0G,EAASzF,IAAI0L,EAAW,CAC7BvH,MAAO,OACPpF,QAAS,eAGhB,EAGDxN,EAAG,SAAUmN,EAAM/D,EAAO8K,EAAUlO,GAClC,IAAMmU,EAAYhN,EAAKuB,SACjB0L,GAAkBD,EAAYnU,EAAQuI,aAAe,GAAK,GAAK,EACrE,OAAQnF,GAEN,IAAK,IACH,OAAOyJ,OAAOuH,GAEhB,IAAK,KACH,OAAOjC,GAAgBiC,EAAgB,GAEzC,IAAK,KACH,OAAOlG,EAASC,cAAciG,EAAgB,CAAEnB,KAAM,QACxD,IAAK,MACH,OAAO/E,EAASzF,IAAI0L,EAAW,CAC7BvH,MAAO,cACPpF,QAAS,eAGb,IAAK,QACH,OAAO0G,EAASzF,IAAI0L,EAAW,CAC7BvH,MAAO,SACPpF,QAAS,eAGb,IAAK,SACH,OAAO0G,EAASzF,IAAI0L,EAAW,CAC7BvH,MAAO,QACPpF,QAAS,eAIb,QACE,OAAO0G,EAASzF,IAAI0L,EAAW,CAC7BvH,MAAO,OACPpF,QAAS,eAGhB,EAGD6M,EAAG,SAAUlN,EAAM/D,EAAO8K,EAAUlO,GAClC,IAAMmU,EAAYhN,EAAKuB,SACjB0L,GAAkBD,EAAYnU,EAAQuI,aAAe,GAAK,GAAK,EACrE,OAAQnF,GAEN,IAAK,IACH,OAAOyJ,OAAOuH,GAEhB,IAAK,KACH,OAAOjC,GAAgBiC,EAAgBhR,EAAMjJ,QAE/C,IAAK,KACH,OAAO+T,EAASC,cAAciG,EAAgB,CAAEnB,KAAM,QACxD,IAAK,MACH,OAAO/E,EAASzF,IAAI0L,EAAW,CAC7BvH,MAAO,cACPpF,QAAS,eAGb,IAAK,QACH,OAAO0G,EAASzF,IAAI0L,EAAW,CAC7BvH,MAAO,SACPpF,QAAS,eAGb,IAAK,SACH,OAAO0G,EAASzF,IAAI0L,EAAW,CAC7BvH,MAAO,QACPpF,QAAS,eAIb,QACE,OAAO0G,EAASzF,IAAI0L,EAAW,CAC7BvH,MAAO,OACPpF,QAAS,eAGhB,EAGDxM,EAAG,SAAUmM,EAAM/D,EAAO8K,GACxB,IAAMiG,EAAYhN,EAAKuB,SACjB4L,EAA6B,IAAdH,EAAkB,EAAIA,EAC3C,OAAQ/Q,GAEN,IAAK,IACH,OAAOyJ,OAAOyH,GAEhB,IAAK,KACH,OAAOnC,GAAgBmC,EAAclR,EAAMjJ,QAE7C,IAAK,KACH,OAAO+T,EAASC,cAAcmG,EAAc,CAAErB,KAAM,QAEtD,IAAK,MACH,OAAO/E,EAASzF,IAAI0L,EAAW,CAC7BvH,MAAO,cACPpF,QAAS,eAGb,IAAK,QACH,OAAO0G,EAASzF,IAAI0L,EAAW,CAC7BvH,MAAO,SACPpF,QAAS,eAGb,IAAK,SACH,OAAO0G,EAASzF,IAAI0L,EAAW,CAC7BvH,MAAO,QACPpF,QAAS,eAIb,QACE,OAAO0G,EAASzF,IAAI0L,EAAW,CAC7BvH,MAAO,OACPpF,QAAS,eAGhB,EAGD3L,EAAG,SAAUsL,EAAM/D,EAAO8K,GACxB,IACMqG,EADQpN,EAAKwC,WACgB,IAAM,EAAI,KAAO,KAEpD,OAAQvG,GACN,IAAK,IACL,IAAK,KACH,OAAO8K,EAASa,UAAUwF,EAAoB,CAC5C3H,MAAO,cACPpF,QAAS,eAEb,IAAK,MACH,OAAO0G,EACJa,UAAUwF,EAAoB,CAC7B3H,MAAO,cACPpF,QAAS,eAEVzM,cACL,IAAK,QACH,OAAOmT,EAASa,UAAUwF,EAAoB,CAC5C3H,MAAO,SACPpF,QAAS,eAGb,QACE,OAAO0G,EAASa,UAAUwF,EAAoB,CAC5C3H,MAAO,OACPpF,QAAS,eAGhB,EAGDgN,EAAG,SAAUrN,EAAM/D,EAAO8K,GACxB,IACIqG,EADEE,EAAQtN,EAAKwC,WAUnB,OAPE4K,EADY,KAAVE,EACmB5B,GACF,IAAV4B,EACY5B,GAEA4B,EAAQ,IAAM,EAAI,KAAO,KAGxCrR,GACN,IAAK,IACL,IAAK,KACH,OAAO8K,EAASa,UAAUwF,EAAoB,CAC5C3H,MAAO,cACPpF,QAAS,eAEb,IAAK,MACH,OAAO0G,EACJa,UAAUwF,EAAoB,CAC7B3H,MAAO,cACPpF,QAAS,eAEVzM,cACL,IAAK,QACH,OAAOmT,EAASa,UAAUwF,EAAoB,CAC5C3H,MAAO,SACPpF,QAAS,eAGb,QACE,OAAO0G,EAASa,UAAUwF,EAAoB,CAC5C3H,MAAO,OACPpF,QAAS,eAGhB,EAGD9J,EAAG,SAAUyJ,EAAM/D,EAAO8K,GACxB,IACIqG,EADEE,EAAQtN,EAAKwC,WAYnB,OATE4K,EADEE,GAAS,GACU5B,GACZ4B,GAAS,GACG5B,GACZ4B,GAAS,EACG5B,GAEAA,GAGfzP,GACN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO8K,EAASa,UAAUwF,EAAoB,CAC5C3H,MAAO,cACPpF,QAAS,eAEb,IAAK,QACH,OAAO0G,EAASa,UAAUwF,EAAoB,CAC5C3H,MAAO,SACPpF,QAAS,eAGb,QACE,OAAO0G,EAASa,UAAUwF,EAAoB,CAC5C3H,MAAO,OACPpF,QAAS,eAGhB,EAGDpN,EAAG,SAAU+M,EAAM/D,EAAO8K,GACxB,GAAc,OAAV9K,EAAgB,CAClB,IAAIqR,EAAQtN,EAAKwC,WAAa,GAE9B,OADc,IAAV8K,IAAaA,EAAQ,IAClBvG,EAASC,cAAcsG,EAAO,CAAExB,KAAM,QAC/C,CAEA,OAAOV,GAAkBpL,EAAM/D,EAChC,EAGDsR,EAAG,SAAUvN,EAAM/D,EAAO8K,GACxB,MAAc,OAAV9K,EACK8K,EAASC,cAAchH,EAAKwC,WAAY,CAAEsJ,KAAM,SAGlDV,GAAkBpL,EAAM/D,EAChC,EAGDuR,EAAG,SAAUxN,EAAM/D,EAAO8K,GACxB,IAAMuG,EAAQtN,EAAKwC,WAAa,GAEhC,MAAc,OAAVvG,EACK8K,EAASC,cAAcsG,EAAO,CAAExB,KAAM,SAGxCd,GAAgBsC,EAAOrR,EAAMjJ,OACrC,EAGDya,EAAG,SAAUzN,EAAM/D,EAAO8K,GACxB,IAAIuG,EAAQtN,EAAKwC,WAGjB,OAFc,IAAV8K,IAAaA,EAAQ,IAEX,OAAVrR,EACK8K,EAASC,cAAcsG,EAAO,CAAExB,KAAM,SAGxCd,GAAgBsC,EAAOrR,EAAMjJ,OACrC,EAGD0a,EAAG,SAAU1N,EAAM/D,EAAO8K,GACxB,MAAc,OAAV9K,EACK8K,EAASC,cAAchH,EAAKyC,aAAc,CAAEqJ,KAAM,WAGpDV,GAAkBpL,EAAM/D,EAChC,EAGDtH,EAAG,SAAUqL,EAAM/D,EAAO8K,GACxB,MAAc,OAAV9K,EACK8K,EAASC,cAAchH,EAAK0C,aAAc,CAAEoJ,KAAM,WAGpDV,GAAkBpL,EAAM/D,EAChC,EAGD5F,EAAG,SAAU2J,EAAM/D,GACjB,OAAOmP,GAAkBpL,EAAM/D,EAChC,EAGD0R,EAAG,SAAU3N,EAAM/D,EAAO2R,GACxB,IAAMC,EAAiB7N,EAAK8N,oBAE5B,GAAuB,IAAnBD,EACF,MAAO,IAGT,OAAQ5R,GAEN,IAAK,IACH,OAAO8R,GAAkCF,GAK3C,IAAK,OACL,IAAK,KACH,OAAOG,GAAeH,GAOxB,QACE,OAAOG,GAAeH,EAAgB,KAE3C,EAGDI,EAAG,SAAUjO,EAAM/D,EAAO2R,GACxB,IAAMC,EAAiB7N,EAAK8N,oBAE5B,OAAQ7R,GAEN,IAAK,IACH,OAAO8R,GAAkCF,GAK3C,IAAK,OACL,IAAK,KACH,OAAOG,GAAeH,GAOxB,QACE,OAAOG,GAAeH,EAAgB,KAE3C,EAGDK,EAAG,SAAUlO,EAAM/D,EAAO2R,GACxB,IAAMC,EAAiB7N,EAAK8N,oBAE5B,OAAQ7R,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQkS,GAAoBN,EAAgB,KAGrD,QACE,MAAO,MAAQG,GAAeH,EAAgB,KAEnD,EAGDO,EAAG,SAAUpO,EAAM/D,EAAO2R,GACxB,IAAMC,EAAiB7N,EAAK8N,oBAE5B,OAAQ7R,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQkS,GAAoBN,EAAgB,KAGrD,QACE,MAAO,MAAQG,GAAeH,EAAgB,KAEnD,EAGDjb,EAAG,SAAUoN,EAAM/D,EAAO2R,GAExB,OAAO5C,GADWhH,KAAKwH,OAAOxL,EAAO,KACH/D,EAAMjJ,OACzC,EAGDqb,EAAG,SAAUrO,EAAM/D,EAAO2R,GACxB,OAAO5C,IAAiBhL,EAAM/D,EAAMjJ,OACtC,GAGF,SAASmb,GAAoBG,GAAwB,IAAhBC,EAASxb,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,GACzCyb,EAAOF,EAAS,EAAI,IAAM,IAC1BG,EAAYzK,KAAKkH,IAAIoD,GACrBhB,EAAQtJ,KAAKwH,MAAMiD,EAAY,IAC/BC,EAAUD,EAAY,GAC5B,OAAgB,IAAZC,EACKF,EAAO9I,OAAO4H,GAEhBkB,EAAO9I,OAAO4H,GAASiB,EAAYvD,GAAgB0D,EAAS,EACrE,CAEA,SAASX,GAAkCO,EAAQC,GACjD,OAAID,EAAS,IAAO,GACLA,EAAS,EAAI,IAAM,KAClBtD,GAAgBhH,KAAKkH,IAAIoD,GAAU,GAAI,GAEhDN,GAAeM,EAAQC,EAChC,CAEA,SAASP,GAAeM,GAAwB,IAAhBC,EAASxb,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,GACpCyb,EAAOF,EAAS,EAAI,IAAM,IAC1BG,EAAYzK,KAAKkH,IAAIoD,GAG3B,OAAOE,EAFOxD,GAAgBhH,KAAKwH,MAAMiD,EAAY,IAAK,GAEpCF,EADNvD,GAAgByD,EAAY,GAAI,EAElD,CCvwBA,IAAME,GAAoB,SAAC3F,EAASnD,GAClC,OAAQmD,GACN,IAAK,IACH,OAAOnD,EAAW7F,KAAK,CAAEyF,MAAO,UAClC,IAAK,KACH,OAAOI,EAAW7F,KAAK,CAAEyF,MAAO,WAClC,IAAK,MACH,OAAOI,EAAW7F,KAAK,CAAEyF,MAAO,SAElC,QACE,OAAOI,EAAW7F,KAAK,CAAEyF,MAAO,SAEtC,EAEMmJ,GAAoB,SAAC5F,EAASnD,GAClC,OAAQmD,GACN,IAAK,IACH,OAAOnD,EAAWK,KAAK,CAAET,MAAO,UAClC,IAAK,KACH,OAAOI,EAAWK,KAAK,CAAET,MAAO,WAClC,IAAK,MACH,OAAOI,EAAWK,KAAK,CAAET,MAAO,SAElC,QACE,OAAOI,EAAWK,KAAK,CAAET,MAAO,SAEtC,EAkCaoJ,GAAiB,CAC5BC,EAAGF,GACHG,EAlC4B,SAAC/F,EAASnD,GACtC,IAQImJ,EAREtG,EAAcM,EAAQlV,MAAM,cAAgB,GAC5Cmb,EAAcvG,EAAY,GAC1BwG,EAAcxG,EAAY,GAEhC,IAAKwG,EACH,OAAOP,GAAkB3F,EAASnD,GAKpC,OAAQoJ,GACN,IAAK,IACHD,EAAiBnJ,EAAWM,SAAS,CAAEV,MAAO,UAC9C,MACF,IAAK,KACHuJ,EAAiBnJ,EAAWM,SAAS,CAAEV,MAAO,WAC9C,MACF,IAAK,MACHuJ,EAAiBnJ,EAAWM,SAAS,CAAEV,MAAO,SAC9C,MAEF,QACEuJ,EAAiBnJ,EAAWM,SAAS,CAAEV,MAAO,SAIlD,OAAOuJ,EACJjb,QAAQ,WAAY4a,GAAkBM,EAAapJ,IACnD9R,QAAQ,WAAY6a,GAAkBM,EAAarJ,GACxD,GC1DMsJ,GAAmB,OACnBC,GAAkB,OAElBC,GAAc,CAAC,IAAK,KAAM,KAAM,QAE/B,SAASC,GAA0BrT,GACxC,OAAOkT,GAAiBtU,KAAKoB,EAC/B,CAEO,SAASsT,GAAyBtT,GACvC,OAAOmT,GAAgBvU,KAAKoB,EAC9B,CAEO,SAASuT,GAA0BvT,EAAOpE,EAAQ4X,GACvD,IAAMC,EAKR,SAAiBzT,EAAOpE,EAAQ4X,GAC9B,IAAME,EAAuB,MAAb1T,EAAM,GAAa,QAAU,oBAC7C,MAAAjG,QAAAA,OAAgBiG,EAAMrI,cAAaoC,kBAAAA,OAAmBiG,aAAKjG,OAAY6B,EAAM7B,sBAAAA,OAAsB2Z,EAAO,mBAAA3Z,OAAmByZ,EAAK,iFACpI,CARmBG,CAAQ3T,EAAOpE,EAAQ4X,GAExC,GADArS,QAAQyS,KAAKH,GACTL,GAAYS,SAAS7T,GAAQ,MAAM,IAAI8T,WAAWL,EACxD,CCUA,IAAMM,GACJ,wDAIIC,GAA6B,oCAE7BC,GAAsB,eACtBC,GAAoB,MACpBC,GAAgC,WAoS/B,SAASvY,GAAOmI,EAAMqQ,EAAWxX,GAASiI,IAAAA,EAAAC,EAAAC,EAAAsP,EAAAnP,EAAAoP,EAAAC,EAAAC,EAAAC,EACzC/P,EAAiBC,KACjBS,EAAiD,QAA3CP,EAAsBH,EAAeU,cAAM,IAAAP,EAAAA,EAAI6P,GAErDzG,EAIiD,QAJ5BnJ,UAAAC,EAEsB,QAFtBsP,OAEzBM,SAA+C,IAAAN,EAAAA,EAC/C3P,EAAeuJ,6BAAqB,IAAAlJ,EAAAA,EACf,QADeG,EACpCR,EAAeU,cAAMF,IAAAA,GAASA,QAATA,EAArBA,EAAuBtI,eAAvBsI,IAA8BA,OAA9BA,EAAAA,EAAgC+I,6BAAqBnJ,IAAAA,EAAAA,EACrD,EAEIK,EAIwC,QAJ5BmP,UAAAC,EAEsB,QAFtBC,OAEhBI,SAAsC,IAAAJ,EAAAA,EACtC9P,EAAeS,oBAAY,IAAAoP,EAAAA,EACN,QADME,EAC3B/P,EAAeU,cAAMqP,IAAAA,GAASA,QAATA,EAArBA,EAAuB7X,eAAvB6X,IAA8BA,OAA9BA,EAAAA,EAAgCtP,oBAAYmP,IAAAA,EAAAA,EAC5C,EAEIO,EAAe3Q,GAAOH,OAAa,GAEzC,IAAKkE,GAAQ4M,GACX,MAAM,IAAIf,WAAW,sBAGvB,IAAIgB,EAAQV,EACTvc,MAAMmc,IACN5V,KAAI,SAAC7F,GACJ,IAAMwc,EAAiBxc,EAAU,GACjC,MAAuB,MAAnBwc,GAA6C,MAAnBA,GAErBC,EADepC,GAAemC,IAChBxc,EAAW6M,EAAOwE,YAElCrR,CACT,IACCC,KAAK,IACLX,MAAMkc,IACN3V,KAAI,SAAC7F,GAEJ,GAAkB,OAAdA,EACF,MAAO,CAAE0c,SAAS,EAAOzd,MAAO,KAGlC,IAAMud,EAAiBxc,EAAU,GACjC,GAAuB,MAAnBwc,EACF,MAAO,CAAEE,SAAS,EAAOzd,MAAO0d,GAAmB3c,IAGrD,GAAImX,GAAWqF,GACb,MAAO,CAAEE,SAAS,EAAMzd,MAAOe,GAGjC,GAAIwc,EAAeld,MAAMsc,IACvB,MAAM,IAAIL,WACR,iEACEiB,EACA,KAIN,MAAO,CAAEE,SAAS,EAAOzd,MAAOe,EAClC,IAGE6M,EAAO0F,SAASqK,eAClBL,EAAQ1P,EAAO0F,SAASqK,aAAaN,EAAcC,IAGrD,IAAMM,EAAmB,CACvBnH,sBAAAA,EACA9I,aAAAA,EACAC,OAAAA,GAGF,OAAO0P,EACJ1W,KAAI,SAACiX,GACJ,IAAKA,EAAKJ,QAAS,OAAOI,EAAK7d,MAE/B,IAAMwI,EAAQqV,EAAK7d,MAYnB,OARI8b,GAAyBtT,IAEzBqT,GAA0BrT,KAE5BuT,GAA0BvT,EAAOoU,EAAW3K,OAAO1F,KAI9CuR,EADW5F,GAAW1P,EAAM,KAClB6U,EAAc7U,EAAOoF,EAAO0F,SAAUsK,EACzD,IACC5c,KAAK,GACV,CAEA,SAAS0c,GAAmB1B,GAC1B,IAAM+B,EAAU/B,EAAM3b,MAAMoc,IAE5B,OAAKsB,EAIEA,EAAQ,GAAGzd,QAAQoc,GAAmB,KAHpCV,CAIX,CC3aA,IAEagC,GAAM,WACF,OAAA5a,GADE,SAAA4a,IAAA/a,OAAA+a,GAAAC,qBACH,EAAC,GAAA,CAAA,CAAAle,IAAA,WAAAC,MAEf,SAASke,EAAUzK,GACjB,OAAO,CACT,IAAC,CALgB,GAQN0K,YAAWC,GACtB,SAAAD,EACEne,EAEAqe,EAEAC,EAEAC,EACAC,GACA,IAAAjY,EAQC,OARDtD,OAAAkb,IACA5X,EAAArD,EAAAzD,KAAA0e,IACKne,MAAQA,EACbuG,EAAK8X,cAAgBA,EACrB9X,EAAK+X,SAAWA,EAChB/X,EAAKgY,SAAWA,EACZC,IACFjY,EAAKiY,YAAcA,GACpBjY,CACH,CAAC,OAAApD,EAAAgb,EAAAC,GAAAhb,EAAA+a,EAAA,CAAA,CAAApe,IAAA,WAAAC,MAED,SAASuM,EAAMnH,GACb,OAAO3F,KAAK4e,cAAc9R,EAAM9M,KAAKO,MAAOoF,EAC9C,GAAC,CAAArF,IAAA,MAAAC,MAED,SAAIuM,EAAMkS,EAAOrZ,GACf,OAAO3F,KAAK6e,SAAS/R,EAAMkS,EAAOhf,KAAKO,MAAOoF,EAChD,IAAC,EA3B8B4Y,IA8BpBU,YAAkBC,GAI7B,SAAAD,EAAY9R,EAASgS,GAAW,IAAA3U,EAEuC,OAFvChH,OAAAyb,GACtBT,EAARhU,EAAA/G,EAAAzD,KAAAif,GAAQ,WA7CmB,IAyCIT,EAAAhU,EACnB,eAAC,GAIbA,EAAK2C,QAAUA,GAAY,SAACL,GAAI,OAAKD,GAAcsS,EAAWrS,EAAM,EAACtC,CACvE,CAAC,OAAA9G,EAAAub,EAAAC,GAAAvb,EAAAsb,EAAA,CAAA,CAAA3e,IAAA,MAAAC,MAED,SAAIuM,EAAMkS,GACR,OAAIA,EAAMI,eAAuBtS,EAC1BD,GAAcC,ECxBlB,SAAmBA,EAAME,GAC9B,IAAMkK,EAaR,SAAuBlK,GAAa,IAAAqS,EAClC,MACyB,mBAAhBrS,YACPqS,EAAArS,EAAYhK,iBAAS,IAAAqc,OAAA,EAArBA,EAAuBrS,eAAgBA,CAE3C,CAlBgBsS,CAActS,GACxB,IAAIA,EAAY,GAChBH,GAAcG,EAAa,GAQ/B,OAPAkK,EAAMrI,YAAY/B,EAAK6B,cAAe7B,EAAKuC,WAAYvC,EAAKU,WAC5D0J,EAAM3I,SACJzB,EAAKwC,WACLxC,EAAKyC,aACLzC,EAAK0C,aACL1C,EAAK2C,mBAEAyH,CACT,CDY+BqI,CAAUzS,EAAM9M,KAAKmN,SAClD,IAAC,EAZqCoR,IEzC3BiB,GAAM,WAAA,OAAA7b,GAAA,SAAA6b,IAAAhc,OAAAgc,EAAA,GAAA,CAAA,CAAAlf,IAAA,MAAAC,MACjB,SAAIkf,EAAY1W,EAAOnI,EAAO+E,GAC5B,IAAM+Q,EAAS1W,KAAK0f,MAAMD,EAAY1W,EAAOnI,EAAO+E,GACpD,OAAK+Q,EAIE,CACLiJ,OAAQ,IAAIjB,GACVhI,EAAOnW,MACPP,KAAK4f,SACL5f,KAAK6f,IACL7f,KAAK8e,SACL9e,KAAK+e,aAEP5I,KAAMO,EAAOP,MAXN,IAaX,GAAC,CAAA7V,IAAA,WAAAC,MAED,SAASke,EAAUqB,EAAQ9L,GACzB,OAAO,CACT,IAAC,CArBgB,GCAN+L,YAASC,GAAA,SAAAD,IAAA,IAAAjZ,EAAAtD,OAAAuc,GAAA,IAAA,IAAA/P,EAAAnQ,UAAAC,OAAAwS,EAAAvP,IAAAA,MAAAiN,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAoC,EAAApC,GAAArQ,UAAAqQ,GAmCqB,OAnCrBsO,EAAA1X,EAAArD,EAAAzD,KAAA+f,EAAAjd,GAAAA,OAAAwP,IAAA,WACT,KAAGkM,EAAA1X,EAAA,qBAkCO,CAAC,IAAK,IAAK,IAAK,MAAIA,CAAA,CAAA,OAAApD,EAAAqc,EAAAC,GAAArc,EAAAoc,EAAA,CAAA,CAAAzf,IAAA,QAAAC,MAhCzC,SAAMkf,EAAY1W,EAAOnI,GACvB,OAAQmI,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OACEnI,EAAMwT,IAAIqL,EAAY,CAAElN,MAAO,iBAC/B3R,EAAMwT,IAAIqL,EAAY,CAAElN,MAAO,WAInC,IAAK,QACH,OAAO3R,EAAMwT,IAAIqL,EAAY,CAAElN,MAAO,WAGxC,QACE,OACE3R,EAAMwT,IAAIqL,EAAY,CAAElN,MAAO,UAC/B3R,EAAMwT,IAAIqL,EAAY,CAAElN,MAAO,iBAC/B3R,EAAMwT,IAAIqL,EAAY,CAAElN,MAAO,WAGvC,GAAC,CAAAjS,IAAA,MAAAC,MAED,SAAIuM,EAAMkS,EAAOze,GAIf,OAHAye,EAAM5K,IAAM7T,EACZuM,EAAK+B,YAAYtO,EAAO,EAAG,GAC3BuM,EAAKyB,SAAS,EAAG,EAAG,EAAG,GAChBzB,CACT,IAAC,EAjC4B0S,ICFlBS,GACJ,iBADIA,GAEL,qBAFKA,GAGA,kCAHAA,GAIL,qBAJKA,GAKF,qBALEA,GAMF,qBANEA,GAOF,iBAPEA,GAQF,iBAREA,GASH,YATGA,GAUH,YAVGA,GAYE,MAZFA,GAaA,WAbAA,GAcE,WAdFA,GAeC,WAfDA,GAiBM,SAjBNA,GAkBQ,QAlBRA,GAmBM,aAnBNA,GAoBQ,aApBRA,GAqBO,aAGPC,GACW,2BADXA,GAEJ,0BAFIA,GAGW,oCAHXA,GAID,2BAJCA,GAKc,sCCrBpB,SAASC,GAASC,EAAeC,GACtC,OAAKD,EAIE,CACL7f,MAAO8f,EAAMD,EAAc7f,OAC3B4V,KAAMiK,EAAcjK,MALbiK,CAOX,CAEO,SAASE,GAAoBxK,EAAS2J,GAC3C,IAAMjK,EAAciK,EAAW7e,MAAMkV,GAErC,OAAKN,EAIE,CACLjV,MAAOgC,SAASiT,EAAY,GAAI,IAChCW,KAAMsJ,EAAW/d,MAAM8T,EAAY,GAAG1V,SAL/B,IAOX,CAEO,SAASygB,GAAqBzK,EAAS2J,GAC5C,IAAMjK,EAAciK,EAAW7e,MAAMkV,GAErC,OAAKN,EAKkB,MAAnBA,EAAY,GACP,CACLjV,MAAO,EACP4V,KAAMsJ,EAAW/d,MAAM,IASpB,CACLnB,OAN8B,MAAnBiV,EAAY,GAAa,GAAK,I1CkDX,M0CjDlBA,EAAY,GAAKjT,SAASiT,EAAY,GAAI,IAAM,G1C0C5B,K0CzClBA,EAAY,GAAKjT,SAASiT,EAAY,GAAI,IAAM,G1CuD9B,K0CtDlBA,EAAY,GAAKjT,SAASiT,EAAY,GAAI,IAAM,IAQ9DW,KAAMsJ,EAAW/d,MAAM8T,EAAY,GAAG1V,SAtB/B,IAwBX,CAEO,SAAS0gB,GAAqBf,GACnC,OAAOa,GAAoBL,GAAiCR,EAC9D,CAEO,SAASgB,GAAa7gB,EAAG6f,GAC9B,OAAQ7f,GACN,KAAK,EACH,OAAO0gB,GAAoBL,GAA6BR,GAC1D,KAAK,EACH,OAAOa,GAAoBL,GAA2BR,GACxD,KAAK,EACH,OAAOa,GAAoBL,GAA6BR,GAC1D,KAAK,EACH,OAAOa,GAAoBL,GAA4BR,GACzD,QACE,OAAOa,GAAoB,IAAIpgB,OAAO,UAAYN,EAAI,KAAM6f,GAElE,CAEO,SAASiB,GAAmB9gB,EAAG6f,GACpC,OAAQ7f,GACN,KAAK,EACH,OAAO0gB,GAAoBL,GAAmCR,GAChE,KAAK,EACH,OAAOa,GAAoBL,GAAiCR,GAC9D,KAAK,EACH,OAAOa,GAAoBL,GAAmCR,GAChE,KAAK,EACH,OAAOa,GAAoBL,GAAkCR,GAC/D,QACE,OAAOa,GAAoB,IAAIpgB,OAAO,YAAcN,EAAI,KAAM6f,GAEpE,CAEO,SAASkB,GAAqBjM,GACnC,OAAQA,GACN,IAAK,UACH,OAAO,EACT,IAAK,UACH,OAAO,GACT,IAAK,KACL,IAAK,OACL,IAAK,YACH,OAAO,GAIT,QACE,OAAO,EAEb,CAEO,SAASkM,GAAsBC,EAAcC,GAClD,IAOIpK,EAPEqK,EAAcD,EAAc,EAK5BE,EAAiBD,EAAcD,EAAc,EAAIA,EAGvD,GAAIE,GAAkB,GACpBtK,EAASmK,GAAgB,QACpB,CACL,IAAMI,EAAWD,EAAiB,GAGlCtK,EAASmK,EAF4C,IAA7B/P,KAAKwH,MAAM2I,EAAW,MACpBJ,GAAgBI,EAAW,IACU,IAAM,EACvE,CAEA,OAAOF,EAAcrK,EAAS,EAAIA,CACpC,CAEO,SAASwK,GAAgBxS,GAC9B,OAAOA,EAAO,KAAQ,GAAMA,EAAO,GAAM,GAAKA,EAAO,KAAQ,CAC/D,CC7HayS,IAAAA,YAAUnB,GAAA,SAAAmB,IAAA,IAAAra,EAAAtD,OAAA2d,GAAA,IAAA,IAAAnR,EAAAnQ,UAAAC,OAAAwS,EAAAvP,IAAAA,MAAAiN,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAoC,EAAApC,GAAArQ,UAAAqQ,GAEkD,OAFlDsO,EAAA1X,EAAArD,EAAAzD,KAAAmhB,EAAAre,GAAAA,OAAAwP,IAAA,WACV,KAAGkM,EAAA1X,EACO,qBAAA,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAIA,CAAA,CAAA,OAAApD,EAAAyd,EAAAnB,GAAArc,EAAAwd,EAAA,CAAA,CAAA7gB,IAAA,QAAAC,MAEvE,SAAMkf,EAAY1W,EAAOnI,GACvB,IAAMsV,EAAgB,SAACxH,GAAI,MAAM,CAC/BA,KAAAA,EACA0S,eAA0B,OAAVrY,EAChB,EAEF,OAAQA,GACN,IAAK,IACH,OAAOoX,GAASM,GAAa,EAAGhB,GAAavJ,GAC/C,IAAK,KACH,OAAOiK,GACLvf,EAAMkT,cAAc2L,EAAY,CAC9B7G,KAAM,SAER1C,GAEJ,QACE,OAAOiK,GAASM,GAAa1X,EAAMjJ,OAAQ2f,GAAavJ,GAE9D,GAAC,CAAA5V,IAAA,WAAAC,MAED,SAAS8M,EAAO9M,GACd,OAAOA,EAAM6gB,gBAAkB7gB,EAAMmO,KAAO,CAC9C,GAAC,CAAApO,IAAA,MAAAC,MAED,SAAIuM,EAAMkS,EAAOze,GACf,IAAMugB,EAAchU,EAAK6B,cAEzB,GAAIpO,EAAM6gB,eAAgB,CACxB,IAAMC,EAAyBT,GAC7BrgB,EAAMmO,KACNoS,GAIF,OAFAhU,EAAK+B,YAAYwS,EAAwB,EAAG,GAC5CvU,EAAKyB,SAAS,EAAG,EAAG,EAAG,GAChBzB,CACT,CAEA,IAAM4B,EACF,QAASsQ,GAAwB,IAAdA,EAAM5K,IAAyB,EAAI7T,EAAMmO,KAAvBnO,EAAMmO,KAG/C,OAFA5B,EAAK+B,YAAYH,EAAM,EAAG,GAC1B5B,EAAKyB,SAAS,EAAG,EAAG,EAAG,GAChBzB,CACT,IAAC,EA/C6B0S,ICJnB8B,YAAmBtB,GAAA,SAAAsB,IAAA,IAAAxa,EAAAtD,OAAA8d,GAAA,IAAA,IAAAtR,EAAAnQ,UAAAC,OAAAwS,EAAAvP,IAAAA,MAAAiN,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAoC,EAAApC,GAAArQ,UAAAqQ,GAkE7B,OAlE6BsO,EAAA1X,EAAArD,EAAAzD,KAAAshB,EAAAxe,GAAAA,OAAAwP,IAAA,WACnB,KAAGkM,EAAA1X,EAmDO,qBAAA,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACDA,CAAA,CAAA,OAAApD,EAAA4d,EAAAtB,GAAArc,EAAA2d,EAAA,CAAA,CAAAhhB,IAAA,QAAAC,MA/DD,SAAMkf,EAAY1W,EAAOnI,GACvB,IAAMsV,EAAgB,SAACxH,GAAI,MAAM,CAC/BA,KAAAA,EACA0S,eAA0B,OAAVrY,EAChB,EAEF,OAAQA,GACN,IAAK,IACH,OAAOoX,GAASM,GAAa,EAAGhB,GAAavJ,GAC/C,IAAK,KACH,OAAOiK,GACLvf,EAAMkT,cAAc2L,EAAY,CAC9B7G,KAAM,SAER1C,GAEJ,QACE,OAAOiK,GAASM,GAAa1X,EAAMjJ,OAAQ2f,GAAavJ,GAE9D,GAAC,CAAA5V,IAAA,WAAAC,MAED,SAAS8M,EAAO9M,GACd,OAAOA,EAAM6gB,gBAAkB7gB,EAAMmO,KAAO,CAC9C,GAAC,CAAApO,IAAA,MAAAC,MAED,SAAIuM,EAAMkS,EAAOze,EAAOoF,GACtB,IAAMmb,EAAcvJ,GAAYzK,EAAMnH,GAEtC,GAAIpF,EAAM6gB,eAAgB,CACxB,IAAMC,EAAyBT,GAC7BrgB,EAAMmO,KACNoS,GAQF,OANAhU,EAAK+B,YACHwS,EACA,EACA1b,EAAQqR,uBAEVlK,EAAKyB,SAAS,EAAG,EAAG,EAAG,GAChBZ,GAAYb,EAAMnH,EAC3B,CAEA,IAAM+I,EACF,QAASsQ,GAAwB,IAAdA,EAAM5K,IAAyB,EAAI7T,EAAMmO,KAAvBnO,EAAMmO,KAG/C,OAFA5B,EAAK+B,YAAYH,EAAM,EAAG/I,EAAQqR,uBAClClK,EAAKyB,SAAS,EAAG,EAAG,EAAG,GAChBZ,GAAYb,EAAMnH,EAC3B,IAAC,EAlDsC6Z,ICD5B+B,YAAiBvB,GAAA,SAAAuB,IAAA,IAAAza,EAAAtD,OAAA+d,GAAA,IAAA,IAAAvR,EAAAnQ,UAAAC,OAAAwS,EAAAvP,IAAAA,MAAAiN,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAoC,EAAApC,GAAArQ,UAAAqQ,GAkC3B,OAlC2BsO,EAAA1X,EAAArD,EAAAzD,KAAAuhB,EAAAze,GAAAA,OAAAwP,IAAA,WACjB,KAAGkM,EAAA1X,EAiBO,qBAAA,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACDA,CAAA,CAAA,OAAApD,EAAA6d,EAAAvB,GAAArc,EAAA4d,EAAA,CAAA,CAAAjhB,IAAA,QAAAC,MA/BD,SAAMkf,EAAY1W,GAChB,OACS2X,GADK,MAAV3X,EACwB,EAGFA,EAAMjJ,OAHD2f,EAIjC,GAAC,CAAAnf,IAAA,MAAAC,MAED,SAAIuM,EAAM0U,EAAQjhB,GAChB,IAAMkhB,EAAkB5U,GAAcC,EAAM,GAG5C,OAFA2U,EAAgB5S,YAAYtO,EAAO,EAAG,GACtCkhB,EAAgBlT,SAAS,EAAG,EAAG,EAAG,GAC3BC,GAAeiT,EACxB,IAAC,EAhBoCjC,ICH1BkC,YAAkB1B,GAAA,SAAA0B,IAAA,IAAA5a,EAAAtD,OAAAke,GAAA,IAAA,IAAA1R,EAAAnQ,UAAAC,OAAAwS,EAAAvP,IAAAA,MAAAiN,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAoC,EAAApC,GAAArQ,UAAAqQ,GAiB+C,OAjB/CsO,EAAA1X,EAAArD,EAAAzD,KAAA0hB,EAAA5e,GAAAA,OAAAwP,IAAA,WAClB,KAAGkM,EAAA1X,EAAA,qBAgBO,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAIA,CAAA,CAAA,OAAApD,EAAAge,EAAA1B,GAAArc,EAAA+d,EAAA,CAAA,CAAAphB,IAAA,QAAAC,MAd5E,SAAMkf,EAAY1W,GAChB,OACS2X,GADK,MAAV3X,EACwB,EAGFA,EAAMjJ,OAHD2f,EAIjC,GAAC,CAAAnf,IAAA,MAAAC,MAED,SAAIuM,EAAM0U,EAAQjhB,GAGhB,OAFAuM,EAAK+B,YAAYtO,EAAO,EAAG,GAC3BuM,EAAKyB,SAAS,EAAG,EAAG,EAAG,GAChBzB,CACT,IAAC,EAfqC0S,ICA3BmC,YAAa3B,GAAA,SAAA2B,IAAA,IAAA7a,EAAAtD,OAAAme,GAAA,IAAA,IAAA3R,EAAAnQ,UAAAC,OAAAwS,EAAAvP,IAAAA,MAAAiN,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAoC,EAAApC,GAAArQ,UAAAqQ,GA4EvB,OA5EuBsO,EAAA1X,EAAArD,EAAAzD,KAAA2hB,EAAA7e,GAAAA,OAAAwP,IAAA,WACb,KAAGkM,EAAA1X,EA4DO,qBAAA,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACDA,CAAA,CAAA,OAAApD,EAAAie,EAAA3B,GAAArc,EAAAge,EAAA,CAAA,CAAArhB,IAAA,QAAAC,MAzED,SAAMkf,EAAY1W,EAAOnI,GACvB,OAAQmI,GAEN,IAAK,IACL,IAAK,KACH,OAAO0X,GAAa1X,EAAMjJ,OAAQ2f,GAEpC,IAAK,KACH,OAAO7e,EAAMkT,cAAc2L,EAAY,CAAE7G,KAAM,YAEjD,IAAK,MACH,OACEhY,EAAM4T,QAAQiL,EAAY,CACxBlN,MAAO,cACPpF,QAAS,gBAEXvM,EAAM4T,QAAQiL,EAAY,CACxBlN,MAAO,SACPpF,QAAS,eAKf,IAAK,QACH,OAAOvM,EAAM4T,QAAQiL,EAAY,CAC/BlN,MAAO,SACPpF,QAAS,eAIb,QACE,OACEvM,EAAM4T,QAAQiL,EAAY,CACxBlN,MAAO,OACPpF,QAAS,gBAEXvM,EAAM4T,QAAQiL,EAAY,CACxBlN,MAAO,cACPpF,QAAS,gBAEXvM,EAAM4T,QAAQiL,EAAY,CACxBlN,MAAO,SACPpF,QAAS,eAInB,GAAC,CAAA7M,IAAA,WAAAC,MAED,SAAS8M,EAAO9M,GACd,OAAOA,GAAS,GAAKA,GAAS,CAChC,GAAC,CAAAD,IAAA,MAAAC,MAED,SAAIuM,EAAM0U,EAAQjhB,GAGhB,OAFAuM,EAAK8U,SAAuB,GAAbrhB,EAAQ,GAAQ,GAC/BuM,EAAKyB,SAAS,EAAG,EAAG,EAAG,GAChBzB,CACT,IAAC,EA3DgC0S,ICAtBqC,YAAuB7B,GAAA,SAAA6B,IAAA,IAAA/a,EAAAtD,OAAAqe,GAAA,IAAA,IAAA7R,EAAAnQ,UAAAC,OAAAwS,EAAAvP,IAAAA,MAAAiN,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAoC,EAAApC,GAAArQ,UAAAqQ,GA4EjC,OA5EiCsO,EAAA1X,EAAArD,EAAAzD,KAAA6hB,EAAA/e,GAAAA,OAAAwP,IAAA,WACvB,KAAGkM,EAAA1X,EA4DO,qBAAA,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACDA,CAAA,CAAA,OAAApD,EAAAme,EAAA7B,GAAArc,EAAAke,EAAA,CAAA,CAAAvhB,IAAA,QAAAC,MAzED,SAAMkf,EAAY1W,EAAOnI,GACvB,OAAQmI,GAEN,IAAK,IACL,IAAK,KACH,OAAO0X,GAAa1X,EAAMjJ,OAAQ2f,GAEpC,IAAK,KACH,OAAO7e,EAAMkT,cAAc2L,EAAY,CAAE7G,KAAM,YAEjD,IAAK,MACH,OACEhY,EAAM4T,QAAQiL,EAAY,CACxBlN,MAAO,cACPpF,QAAS,gBAEXvM,EAAM4T,QAAQiL,EAAY,CACxBlN,MAAO,SACPpF,QAAS,eAKf,IAAK,QACH,OAAOvM,EAAM4T,QAAQiL,EAAY,CAC/BlN,MAAO,SACPpF,QAAS,eAIb,QACE,OACEvM,EAAM4T,QAAQiL,EAAY,CACxBlN,MAAO,OACPpF,QAAS,gBAEXvM,EAAM4T,QAAQiL,EAAY,CACxBlN,MAAO,cACPpF,QAAS,gBAEXvM,EAAM4T,QAAQiL,EAAY,CACxBlN,MAAO,SACPpF,QAAS,eAInB,GAAC,CAAA7M,IAAA,WAAAC,MAED,SAAS8M,EAAO9M,GACd,OAAOA,GAAS,GAAKA,GAAS,CAChC,GAAC,CAAAD,IAAA,MAAAC,MAED,SAAIuM,EAAM0U,EAAQjhB,GAGhB,OAFAuM,EAAK8U,SAAuB,GAAbrhB,EAAQ,GAAQ,GAC/BuM,EAAKyB,SAAS,EAAG,EAAG,EAAG,GAChBzB,CACT,IAAC,EA3D0C0S,ICChCsC,YAAW9B,GAAA,SAAA8B,IAAA,IAAAhb,EAAAtD,OAAAse,GAAA,IAAA,IAAA9R,EAAAnQ,UAAAC,OAAAwS,EAAAvP,IAAAA,MAAAiN,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAoC,EAAApC,GAAArQ,UAAAqQ,GAiBR,OAjBQsO,EAAA1X,EAAArD,EAAAzD,KAAA8hB,EAAAhf,GAAAA,OAAAwP,IACD,qBAAA,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACDkM,EAAA1X,EAAA,WAEU,KAAGA,CAAA,CAAA,OAAApD,EAAAoe,EAAA9B,GAAArc,EAAAme,EAAA,CAAA,CAAAxhB,IAAA,QAAAC,MAEd,SAAMkf,EAAY1W,EAAOnI,GACvB,IAAMsV,EAAgB,SAAC3V,GAAK,OAAKA,EAAQ,CAAC,EAE1C,OAAQwI,GAEN,IAAK,IACH,OAAOoX,GACLG,GAAoBL,GAAuBR,GAC3CvJ,GAGJ,IAAK,KACH,OAAOiK,GAASM,GAAa,EAAGhB,GAAavJ,GAE/C,IAAK,KACH,OAAOiK,GACLvf,EAAMkT,cAAc2L,EAAY,CAC9B7G,KAAM,UAER1C,GAGJ,IAAK,MACH,OACEtV,EAAM6T,MAAMgL,EAAY,CACtBlN,MAAO,cACPpF,QAAS,gBAEXvM,EAAM6T,MAAMgL,EAAY,CAAElN,MAAO,SAAUpF,QAAS,eAIxD,IAAK,QACH,OAAOvM,EAAM6T,MAAMgL,EAAY,CAC7BlN,MAAO,SACPpF,QAAS,eAIb,QACE,OACEvM,EAAM6T,MAAMgL,EAAY,CAAElN,MAAO,OAAQpF,QAAS,gBAClDvM,EAAM6T,MAAMgL,EAAY,CACtBlN,MAAO,cACPpF,QAAS,gBAEXvM,EAAM6T,MAAMgL,EAAY,CAAElN,MAAO,SAAUpF,QAAS,eAG5D,GAAC,CAAA7M,IAAA,WAAAC,MAED,SAAS8M,EAAO9M,GACd,OAAOA,GAAS,GAAKA,GAAS,EAChC,GAAC,CAAAD,IAAA,MAAAC,MAED,SAAIuM,EAAM0U,EAAQjhB,GAGhB,OAFAuM,EAAK8U,SAASrhB,EAAO,GACrBuM,EAAKyB,SAAS,EAAG,EAAG,EAAG,GAChBzB,CACT,IAAC,EA9E8B0S,ICApBuC,YAAqB/B,GAAA,SAAA+B,IAAA,IAAAjb,EAAAtD,OAAAue,GAAA,IAAA,IAAA/R,EAAAnQ,UAAAC,OAAAwS,EAAAvP,IAAAA,MAAAiN,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAoC,EAAApC,GAAArQ,UAAAqQ,GA8E/B,OA9E+BsO,EAAA1X,EAAArD,EAAAzD,KAAA+hB,EAAAjf,GAAAA,OAAAwP,IAAA,WACrB,KAAGkM,EAAA1X,EA+DO,qBAAA,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACDA,CAAA,CAAA,OAAApD,EAAAqe,EAAA/B,GAAArc,EAAAoe,EAAA,CAAA,CAAAzhB,IAAA,QAAAC,MA3ED,SAAMkf,EAAY1W,EAAOnI,GACvB,IAAMsV,EAAgB,SAAC3V,GAAK,OAAKA,EAAQ,CAAC,EAE1C,OAAQwI,GAEN,IAAK,IACH,OAAOoX,GACLG,GAAoBL,GAAuBR,GAC3CvJ,GAGJ,IAAK,KACH,OAAOiK,GAASM,GAAa,EAAGhB,GAAavJ,GAE/C,IAAK,KACH,OAAOiK,GACLvf,EAAMkT,cAAc2L,EAAY,CAC9B7G,KAAM,UAER1C,GAGJ,IAAK,MACH,OACEtV,EAAM6T,MAAMgL,EAAY,CACtBlN,MAAO,cACPpF,QAAS,gBAEXvM,EAAM6T,MAAMgL,EAAY,CAAElN,MAAO,SAAUpF,QAAS,eAIxD,IAAK,QACH,OAAOvM,EAAM6T,MAAMgL,EAAY,CAC7BlN,MAAO,SACPpF,QAAS,eAIb,QACE,OACEvM,EAAM6T,MAAMgL,EAAY,CAAElN,MAAO,OAAQpF,QAAS,gBAClDvM,EAAM6T,MAAMgL,EAAY,CACtBlN,MAAO,cACPpF,QAAS,gBAEXvM,EAAM6T,MAAMgL,EAAY,CAAElN,MAAO,SAAUpF,QAAS,eAG5D,GAAC,CAAA7M,IAAA,WAAAC,MAED,SAAS8M,EAAO9M,GACd,OAAOA,GAAS,GAAKA,GAAS,EAChC,GAAC,CAAAD,IAAA,MAAAC,MAED,SAAIuM,EAAM0U,EAAQjhB,GAGhB,OAFAuM,EAAK8U,SAASrhB,EAAO,GACrBuM,EAAKyB,SAAS,EAAG,EAAG,EAAG,GAChBzB,CACT,IAAC,EA9DwC0S,ICG9BwC,IAAAA,YAAehC,GAAA,SAAAgC,IAAA,IAAAlb,EAAAtD,OAAAwe,GAAA,IAAA,IAAAhS,EAAAnQ,UAAAC,OAAAwS,EAAAvP,IAAAA,MAAAiN,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAoC,EAAApC,GAAArQ,UAAAqQ,GAoCzB,OApCyBsO,EAAA1X,EAAArD,EAAAzD,KAAAgiB,EAAAlf,GAAAA,OAAAwP,IAAA,WACf,KAAGkM,EAAA1X,EAqBO,qBAAA,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACDA,CAAA,CAAA,OAAApD,EAAAse,EAAAhC,GAAArc,EAAAqe,EAAA,CAAA,CAAA1hB,IAAA,QAAAC,MAjCD,SAAMkf,EAAY1W,EAAOnI,GACvB,OAAQmI,GACN,IAAK,IACH,OAAOuX,GAAoBL,GAAsBR,GACnD,IAAK,KACH,OAAO7e,EAAMkT,cAAc2L,EAAY,CAAE7G,KAAM,SACjD,QACE,OAAO6H,GAAa1X,EAAMjJ,OAAQ2f,GAExC,GAAC,CAAAnf,IAAA,WAAAC,MAED,SAAS8M,EAAO9M,GACd,OAAOA,GAAS,GAAKA,GAAS,EAChC,GAAC,CAAAD,IAAA,MAAAC,MAED,SAAIuM,EAAM0U,EAAQjhB,EAAOoF,GACvB,OAAOgI,GCkBJ,SAAiBb,EAAM0M,EAAM7T,GAClC,IAAMuR,EAAQjK,GAAOH,EAAMnH,aAAO,EAAPA,EAAO,IAC5B2I,EAAOqJ,GAAQT,EAAOvR,GAAW6T,EAEvC,OADAtC,EAAM3J,QAAQ2J,EAAM1J,UAAmB,EAAPc,GACzBrB,GAAOiK,EAAOvR,aAAO,EAAPA,EAAO,GAC9B,CDvBuBsc,CAAQnV,EAAMvM,EAAOoF,GAAUA,EACpD,IAAC,EApBkC6Z,IEAxB0C,IAAAA,YAAalC,GAAA,SAAAkC,IAAA,IAAApb,EAAAtD,OAAA0e,GAAA,IAAA,IAAAlS,EAAAnQ,UAAAC,OAAAwS,EAAAvP,IAAAA,MAAAiN,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAoC,EAAApC,GAAArQ,UAAAqQ,GAqCvB,OArCuBsO,EAAA1X,EAAArD,EAAAzD,KAAAkiB,EAAApf,GAAAA,OAAAwP,IAAA,WACb,KAAGkM,EAAA1X,EAqBO,qBAAA,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACDA,CAAA,CAAA,OAAApD,EAAAwe,EAAAlC,GAAArc,EAAAue,EAAA,CAAA,CAAA5hB,IAAA,QAAAC,MAlCD,SAAMkf,EAAY1W,EAAOnI,GACvB,OAAQmI,GACN,IAAK,IACH,OAAOuX,GAAoBL,GAAsBR,GACnD,IAAK,KACH,OAAO7e,EAAMkT,cAAc2L,EAAY,CAAE7G,KAAM,SACjD,QACE,OAAO6H,GAAa1X,EAAMjJ,OAAQ2f,GAExC,GAAC,CAAAnf,IAAA,WAAAC,MAED,SAAS8M,EAAO9M,GACd,OAAOA,GAAS,GAAKA,GAAS,EAChC,GAAC,CAAAD,IAAA,MAAAC,MAED,SAAIuM,EAAM0U,EAAQjhB,GAChB,OAAOiO,GCIJ,SAAoB1B,EAAM0M,GAC/B,IAAMnM,EAAQJ,GAAOH,OAAa,GAC5BwB,EAAO8I,GAAW/J,GAAkBmM,EAE1C,OADAnM,EAAME,QAAQF,EAAMG,UAAmB,EAAPc,GACzBjB,CACT,CDT0B8U,CAAWrV,EAAMvM,GACzC,IAAC,EApBgCif,IEC7B4C,GAAgB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAC7DC,GAA0B,CAC9B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAIjCC,YAAUtC,GAAA,SAAAsC,IAAA,IAAAxb,EAAAtD,OAAA8e,GAAA,IAAA,IAAAtS,EAAAnQ,UAAAC,OAAAwS,EAAAvP,IAAAA,MAAAiN,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAoC,EAAApC,GAAArQ,UAAAqQ,GA6CpB,OA7CoBsO,EAAA1X,EAAArD,EAAAzD,KAAAsiB,EAAAxf,GAAAA,OAAAwP,IAAA,WACV,IAAEkM,EAAA1X,EAAA,cACC,GAAC0X,EAAA1X,EAAA,qBA8BM,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACDA,CAAA,CAAA,OAAApD,EAAA4e,EAAAtC,GAAArc,EAAA2e,EAAA,CAAA,CAAAhiB,IAAA,QAAAC,MAzCD,SAAMkf,EAAY1W,EAAOnI,GACvB,OAAQmI,GACN,IAAK,IACH,OAAOuX,GAAoBL,GAAsBR,GACnD,IAAK,KACH,OAAO7e,EAAMkT,cAAc2L,EAAY,CAAE7G,KAAM,SACjD,QACE,OAAO6H,GAAa1X,EAAMjJ,OAAQ2f,GAExC,GAAC,CAAAnf,IAAA,WAAAC,MAED,SAASuM,EAAMvM,GACb,IACMgiB,EAAarB,GADNpU,EAAK6B,eAEZ8F,EAAQ3H,EAAKuC,WACnB,OAAIkT,EACKhiB,GAAS,GAAKA,GAAS8hB,GAAwB5N,GAE/ClU,GAAS,GAAKA,GAAS6hB,GAAc3N,EAEhD,GAAC,CAAAnU,IAAA,MAAAC,MAED,SAAIuM,EAAM0U,EAAQjhB,GAGhB,OAFAuM,EAAKS,QAAQhN,GACbuM,EAAKyB,SAAS,EAAG,EAAG,EAAG,GAChBzB,CACT,IAAC,EA9B6B0S,ICNnBgD,YAAexC,GAAA,SAAAwC,IAAA,IAAA1b,EAAAtD,OAAAgf,GAAA,IAAA,IAAAxS,EAAAnQ,UAAAC,OAAAwS,EAAAvP,IAAAA,MAAAiN,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAoC,EAAApC,GAAArQ,UAAAqQ,GAiDzB,OAjDyBsO,EAAA1X,EAAArD,EAAAzD,KAAAwiB,EAAA1f,GAAAA,OAAAwP,IAAA,WACf,IAAEkM,EAAA1X,EAAA,cAEC,GAAC0X,EAAA1X,EA8BM,qBAAA,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACDA,CAAA,CAAA,OAAApD,EAAA8e,EAAAxC,GAAArc,EAAA6e,EAAA,CAAA,CAAAliB,IAAA,QAAAC,MA5CD,SAAMkf,EAAY1W,EAAOnI,GACvB,OAAQmI,GACN,IAAK,IACL,IAAK,KACH,OAAOuX,GAAoBL,GAA2BR,GACxD,IAAK,KACH,OAAO7e,EAAMkT,cAAc2L,EAAY,CAAE7G,KAAM,SACjD,QACE,OAAO6H,GAAa1X,EAAMjJ,OAAQ2f,GAExC,GAAC,CAAAnf,IAAA,WAAAC,MAED,SAASuM,EAAMvM,GAGb,OADmB2gB,GADNpU,EAAK6B,eAGTpO,GAAS,GAAKA,GAAS,IAEvBA,GAAS,GAAKA,GAAS,GAElC,GAAC,CAAAD,IAAA,MAAAC,MAED,SAAIuM,EAAM0U,EAAQjhB,GAGhB,OAFAuM,EAAK8U,SAAS,EAAGrhB,GACjBuM,EAAKyB,SAAS,EAAG,EAAG,EAAG,GAChBzB,CACT,IAAC,EA/BkC0S,IC0B9B,SAASiD,GAAO3V,EAAMsB,EAAKzI,GAAS,IAAAiI,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACnCR,EAAiBC,KACjBQ,EAIwC,QAJ5BN,UAAAC,EAEsB,QAFtBC,EACKC,QADLA,EAChBpI,eAAAA,EAASuI,oBAAYH,IAAAA,EAAAA,EACrBpI,SAAe,QAARqI,EAAPrI,EAASwI,cAAMH,IAAAA,GAASA,QAATA,EAAfA,EAAiBrI,eAAjBqI,IAAwBA,OAAxBA,EAAAA,EAA0BE,oBAAY,IAAAJ,EAAAA,EACtCL,EAAeS,oBAAY,IAAAL,EAAAA,EACN,QADMI,EAC3BR,EAAeU,cAAMF,IAAAA,GAASA,QAATA,EAArBA,EAAuBtI,eAAvBsI,IAA8BA,OAA9BA,EAAAA,EAAgCC,oBAAYN,IAAAA,EAAAA,EAC5C,EAEIsJ,EAAQjK,GAAOH,EAAMnH,aAAO,EAAPA,EAAO,IAC5B+c,EAAaxL,EAAM7I,SAKnBsU,EAAQ,EAAIzU,EAKlB,OAAOd,GAAQ8J,EAHb9I,EAAM,GAAKA,EAAM,EACbA,GAAQsU,EAAaC,GAAS,IANlBvU,EAAM,EACM,GAAK,EAMhBuU,GAAS,GAAOD,EAAaC,GAAS,EAC7Bhd,EAC9B,CCpDaid,IAAAA,YAAS5C,GAAA,SAAA4C,IAAA,IAAA9b,EAAAtD,OAAAof,GAAA,IAAA,IAAA5S,EAAAnQ,UAAAC,OAAAwS,EAAAvP,IAAAA,MAAAiN,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAoC,EAAApC,GAAArQ,UAAAqQ,GAwD+B,OAxD/BsO,EAAA1X,EAAArD,EAAAzD,KAAA4iB,EAAA9f,GAAAA,OAAAwP,IAAA,WACT,IAAEkM,EAAA1X,EAuDQ,qBAAA,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,MAAIA,CAAA,CAAA,OAAApD,EAAAkf,EAAA5C,GAAArc,EAAAif,EAAA,CAAA,CAAAtiB,IAAA,QAAAC,MArDnD,SAAMkf,EAAY1W,EAAOnI,GACvB,OAAQmI,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OACEnI,EAAMwN,IAAIqR,EAAY,CACpBlN,MAAO,cACPpF,QAAS,gBAEXvM,EAAMwN,IAAIqR,EAAY,CAAElN,MAAO,QAASpF,QAAS,gBACjDvM,EAAMwN,IAAIqR,EAAY,CAAElN,MAAO,SAAUpF,QAAS,eAItD,IAAK,QACH,OAAOvM,EAAMwN,IAAIqR,EAAY,CAC3BlN,MAAO,SACPpF,QAAS,eAGb,IAAK,SACH,OACEvM,EAAMwN,IAAIqR,EAAY,CAAElN,MAAO,QAASpF,QAAS,gBACjDvM,EAAMwN,IAAIqR,EAAY,CAAElN,MAAO,SAAUpF,QAAS,eAKtD,QACE,OACEvM,EAAMwN,IAAIqR,EAAY,CAAElN,MAAO,OAAQpF,QAAS,gBAChDvM,EAAMwN,IAAIqR,EAAY,CACpBlN,MAAO,cACPpF,QAAS,gBAEXvM,EAAMwN,IAAIqR,EAAY,CAAElN,MAAO,QAASpF,QAAS,gBACjDvM,EAAMwN,IAAIqR,EAAY,CAAElN,MAAO,SAAUpF,QAAS,eAG1D,GAAC,CAAA7M,IAAA,WAAAC,MAED,SAAS8M,EAAO9M,GACd,OAAOA,GAAS,GAAKA,GAAS,CAChC,GAAC,CAAAD,IAAA,MAAAC,MAED,SAAIuM,EAAM0U,EAAQjhB,EAAOoF,GAGvB,OAFAmH,EAAO2V,GAAO3V,EAAMvM,EAAOoF,IACtB4I,SAAS,EAAG,EAAG,EAAG,GAChBzB,CACT,IAAC,EAtD4B0S,ICElBqD,YAAc7C,GAAA,SAAA6C,IAAA,IAAA/b,EAAAtD,OAAAqf,GAAA,IAAA,IAAA7S,EAAAnQ,UAAAC,OAAAwS,EAAAvP,IAAAA,MAAAiN,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAoC,EAAApC,GAAArQ,UAAAqQ,GAuFxB,OAvFwBsO,EAAA1X,EAAArD,EAAAzD,KAAA6iB,EAAA/f,GAAAA,OAAAwP,IAAA,WACd,IAAEkM,EAAA1X,EAsEQ,qBAAA,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACDA,CAAA,CAAA,OAAApD,EAAAmf,EAAA7C,GAAArc,EAAAkf,EAAA,CAAA,CAAAviB,IAAA,QAAAC,MArFD,SAAMkf,EAAY1W,EAAOnI,EAAO+E,GAC9B,IAAMuQ,EAAgB,SAAC3V,GAErB,IAAMuiB,EAA8C,EAA9BhS,KAAKiS,OAAOxiB,EAAQ,GAAK,GAC/C,OAASA,EAAQoF,EAAQuI,aAAe,GAAK,EAAK4U,CACnD,EAED,OAAQ/Z,GAEN,IAAK,IACL,IAAK,KACH,OAAOoX,GAASM,GAAa1X,EAAMjJ,OAAQ2f,GAAavJ,GAE1D,IAAK,KACH,OAAOiK,GACLvf,EAAMkT,cAAc2L,EAAY,CAC9B7G,KAAM,QAER1C,GAGJ,IAAK,MACH,OACEtV,EAAMwN,IAAIqR,EAAY,CACpBlN,MAAO,cACPpF,QAAS,gBAEXvM,EAAMwN,IAAIqR,EAAY,CAAElN,MAAO,QAASpF,QAAS,gBACjDvM,EAAMwN,IAAIqR,EAAY,CAAElN,MAAO,SAAUpF,QAAS,eAItD,IAAK,QACH,OAAOvM,EAAMwN,IAAIqR,EAAY,CAC3BlN,MAAO,SACPpF,QAAS,eAGb,IAAK,SACH,OACEvM,EAAMwN,IAAIqR,EAAY,CAAElN,MAAO,QAASpF,QAAS,gBACjDvM,EAAMwN,IAAIqR,EAAY,CAAElN,MAAO,SAAUpF,QAAS,eAKtD,QACE,OACEvM,EAAMwN,IAAIqR,EAAY,CAAElN,MAAO,OAAQpF,QAAS,gBAChDvM,EAAMwN,IAAIqR,EAAY,CACpBlN,MAAO,cACPpF,QAAS,gBAEXvM,EAAMwN,IAAIqR,EAAY,CAAElN,MAAO,QAASpF,QAAS,gBACjDvM,EAAMwN,IAAIqR,EAAY,CAAElN,MAAO,SAAUpF,QAAS,eAG1D,GAAC,CAAA7M,IAAA,WAAAC,MAED,SAAS8M,EAAO9M,GACd,OAAOA,GAAS,GAAKA,GAAS,CAChC,GAAC,CAAAD,IAAA,MAAAC,MAED,SAAIuM,EAAM0U,EAAQjhB,EAAOoF,GAGvB,OAFAmH,EAAO2V,GAAO3V,EAAMvM,EAAOoF,IACtB4I,SAAS,EAAG,EAAG,EAAG,GAChBzB,CACT,IAAC,EArEiC0S,ICAvBwD,YAAwBhD,GAAA,SAAAgD,IAAA,IAAAlc,EAAAtD,OAAAwf,GAAA,IAAA,IAAAhT,EAAAnQ,UAAAC,OAAAwS,EAAAvP,IAAAA,MAAAiN,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAoC,EAAApC,GAAArQ,UAAAqQ,GAwFlC,OAxFkCsO,EAAA1X,EAAArD,EAAAzD,KAAAgjB,EAAAlgB,GAAAA,OAAAwP,IAAA,WACxB,IAAEkM,EAAA1X,EAuEQ,qBAAA,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACDA,CAAA,CAAA,OAAApD,EAAAsf,EAAAhD,GAAArc,EAAAqf,EAAA,CAAA,CAAA1iB,IAAA,QAAAC,MArFD,SAAMkf,EAAY1W,EAAOnI,EAAO+E,GAC9B,IAAMuQ,EAAgB,SAAC3V,GAErB,IAAMuiB,EAA8C,EAA9BhS,KAAKiS,OAAOxiB,EAAQ,GAAK,GAC/C,OAASA,EAAQoF,EAAQuI,aAAe,GAAK,EAAK4U,CACnD,EAED,OAAQ/Z,GAEN,IAAK,IACL,IAAK,KACH,OAAOoX,GAASM,GAAa1X,EAAMjJ,OAAQ2f,GAAavJ,GAE1D,IAAK,KACH,OAAOiK,GACLvf,EAAMkT,cAAc2L,EAAY,CAC9B7G,KAAM,QAER1C,GAGJ,IAAK,MACH,OACEtV,EAAMwN,IAAIqR,EAAY,CACpBlN,MAAO,cACPpF,QAAS,gBAEXvM,EAAMwN,IAAIqR,EAAY,CAAElN,MAAO,QAASpF,QAAS,gBACjDvM,EAAMwN,IAAIqR,EAAY,CAAElN,MAAO,SAAUpF,QAAS,eAItD,IAAK,QACH,OAAOvM,EAAMwN,IAAIqR,EAAY,CAC3BlN,MAAO,SACPpF,QAAS,eAGb,IAAK,SACH,OACEvM,EAAMwN,IAAIqR,EAAY,CAAElN,MAAO,QAASpF,QAAS,gBACjDvM,EAAMwN,IAAIqR,EAAY,CAAElN,MAAO,SAAUpF,QAAS,eAKtD,QACE,OACEvM,EAAMwN,IAAIqR,EAAY,CAAElN,MAAO,OAAQpF,QAAS,gBAChDvM,EAAMwN,IAAIqR,EAAY,CACpBlN,MAAO,cACPpF,QAAS,gBAEXvM,EAAMwN,IAAIqR,EAAY,CAAElN,MAAO,QAASpF,QAAS,gBACjDvM,EAAMwN,IAAIqR,EAAY,CAAElN,MAAO,SAAUpF,QAAS,eAG1D,GAAC,CAAA7M,IAAA,WAAAC,MAED,SAAS8M,EAAO9M,GACd,OAAOA,GAAS,GAAKA,GAAS,CAChC,GAAC,CAAAD,IAAA,MAAAC,MAED,SAAIuM,EAAM0U,EAAQjhB,EAAOoF,GAGvB,OAFAmH,EAAO2V,GAAO3V,EAAMvM,EAAOoF,IACtB4I,SAAS,EAAG,EAAG,EAAG,GAChBzB,CACT,IAAC,EAtE2C0S,IC0BvC,SAASyD,GAAUnW,EAAMsB,EAAKzI,GACnC,IAAMuR,EAAQjK,GAAOH,OAAa,GAC5B4V,ECPD,SAAmB5V,GACxB,IAAMsB,EAAMnB,GAAOH,OAAa,GAAMuB,SACtC,OAAe,IAARD,EAAY,EAAIA,CACzB,CDIqB8U,CAAUhM,GAE7B,OAAO9J,GAAQ8J,EADF9I,EAAMsU,EACS/c,EAC9B,CE/Bawd,IAAAA,YAAYnD,GAAA,SAAAmD,IAAA,IAAArc,EAAAtD,OAAA2f,GAAA,IAAA,IAAAnT,EAAAnQ,UAAAC,OAAAwS,EAAAvP,IAAAA,MAAAiN,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAoC,EAAApC,GAAArQ,UAAAqQ,GA6GtB,OA7GsBsO,EAAA1X,EAAArD,EAAAzD,KAAAmjB,EAAArgB,GAAAA,OAAAwP,IAAA,WACZ,IAAEkM,EAAA1X,EA4FQ,qBAAA,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACDA,CAAA,CAAA,OAAApD,EAAAyf,EAAAnD,GAAArc,EAAAwf,EAAA,CAAA,CAAA7iB,IAAA,QAAAC,MA1GD,SAAMkf,EAAY1W,EAAOnI,GACvB,IAAMsV,EAAgB,SAAC3V,GACrB,OAAc,IAAVA,EACK,EAEFA,CACR,EAED,OAAQwI,GAEN,IAAK,IACL,IAAK,KACH,OAAO0X,GAAa1X,EAAMjJ,OAAQ2f,GAEpC,IAAK,KACH,OAAO7e,EAAMkT,cAAc2L,EAAY,CAAE7G,KAAM,QAEjD,IAAK,MACH,OAAOuH,GACLvf,EAAMwN,IAAIqR,EAAY,CACpBlN,MAAO,cACPpF,QAAS,gBAETvM,EAAMwN,IAAIqR,EAAY,CACpBlN,MAAO,QACPpF,QAAS,gBAEXvM,EAAMwN,IAAIqR,EAAY,CACpBlN,MAAO,SACPpF,QAAS,eAEb+I,GAGJ,IAAK,QACH,OAAOiK,GACLvf,EAAMwN,IAAIqR,EAAY,CACpBlN,MAAO,SACPpF,QAAS,eAEX+I,GAGJ,IAAK,SACH,OAAOiK,GACLvf,EAAMwN,IAAIqR,EAAY,CACpBlN,MAAO,QACPpF,QAAS,gBAETvM,EAAMwN,IAAIqR,EAAY,CACpBlN,MAAO,SACPpF,QAAS,eAEb+I,GAIJ,QACE,OAAOiK,GACLvf,EAAMwN,IAAIqR,EAAY,CACpBlN,MAAO,OACPpF,QAAS,gBAETvM,EAAMwN,IAAIqR,EAAY,CACpBlN,MAAO,cACPpF,QAAS,gBAEXvM,EAAMwN,IAAIqR,EAAY,CACpBlN,MAAO,QACPpF,QAAS,gBAEXvM,EAAMwN,IAAIqR,EAAY,CACpBlN,MAAO,SACPpF,QAAS,eAEb+I,GAGR,GAAC,CAAA5V,IAAA,WAAAC,MAED,SAAS8M,EAAO9M,GACd,OAAOA,GAAS,GAAKA,GAAS,CAChC,GAAC,CAAAD,IAAA,MAAAC,MAED,SAAIuM,EAAM0U,EAAQjhB,GAGhB,OAFAuM,EAAOmW,GAAUnW,EAAMvM,IAClBgO,SAAS,EAAG,EAAG,EAAG,GAChBzB,CACT,IAAC,EA3F+B0S,ICFrB4D,YAAUpD,GAAA,SAAAoD,IAAA,IAAAtc,EAAAtD,OAAA4f,GAAA,IAAA,IAAApT,EAAAnQ,UAAAC,OAAAwS,EAAAvP,IAAAA,MAAAiN,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAoC,EAAApC,GAAArQ,UAAAqQ,GAgD8B,OAhD9BsO,EAAA1X,EAAArD,EAAAzD,KAAAojB,EAAAtgB,GAAAA,OAAAwP,IAAA,WACV,IAAEkM,EAAA1X,EA+CQ,qBAAA,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,MAAIA,CAAA,CAAA,OAAApD,EAAA0f,EAAApD,GAAArc,EAAAyf,EAAA,CAAA,CAAA9iB,IAAA,QAAAC,MA7CnD,SAAMkf,EAAY1W,EAAOnI,GACvB,OAAQmI,GACN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OACEnI,EAAM8T,UAAU+K,EAAY,CAC1BlN,MAAO,cACPpF,QAAS,gBAEXvM,EAAM8T,UAAU+K,EAAY,CAC1BlN,MAAO,SACPpF,QAAS,eAIf,IAAK,QACH,OAAOvM,EAAM8T,UAAU+K,EAAY,CACjClN,MAAO,SACPpF,QAAS,eAGb,QACE,OACEvM,EAAM8T,UAAU+K,EAAY,CAC1BlN,MAAO,OACPpF,QAAS,gBAEXvM,EAAM8T,UAAU+K,EAAY,CAC1BlN,MAAO,cACPpF,QAAS,gBAEXvM,EAAM8T,UAAU+K,EAAY,CAC1BlN,MAAO,SACPpF,QAAS,eAInB,GAAC,CAAA7M,IAAA,MAAAC,MAED,SAAIuM,EAAM0U,EAAQjhB,GAEhB,OADAuM,EAAKyB,SAASoS,GAAqBpgB,GAAQ,EAAG,EAAG,GAC1CuM,CACT,IAAC,EA9C6B0S,ICAnB6D,YAAkBrD,GAAA,SAAAqD,IAAA,IAAAvc,EAAAtD,OAAA6f,GAAA,IAAA,IAAArT,EAAAnQ,UAAAC,OAAAwS,EAAAvP,IAAAA,MAAAiN,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAoC,EAAApC,GAAArQ,UAAAqQ,GAgDsB,OAhDtBsO,EAAA1X,EAAArD,EAAAzD,KAAAqjB,EAAAvgB,GAAAA,OAAAwP,IAAA,WAClB,IAAEkM,EAAA1X,EA+CQ,qBAAA,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,MAAIA,CAAA,CAAA,OAAApD,EAAA2f,EAAArD,GAAArc,EAAA0f,EAAA,CAAA,CAAA/iB,IAAA,QAAAC,MA7CnD,SAAMkf,EAAY1W,EAAOnI,GACvB,OAAQmI,GACN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OACEnI,EAAM8T,UAAU+K,EAAY,CAC1BlN,MAAO,cACPpF,QAAS,gBAEXvM,EAAM8T,UAAU+K,EAAY,CAC1BlN,MAAO,SACPpF,QAAS,eAIf,IAAK,QACH,OAAOvM,EAAM8T,UAAU+K,EAAY,CACjClN,MAAO,SACPpF,QAAS,eAGb,QACE,OACEvM,EAAM8T,UAAU+K,EAAY,CAC1BlN,MAAO,OACPpF,QAAS,gBAEXvM,EAAM8T,UAAU+K,EAAY,CAC1BlN,MAAO,cACPpF,QAAS,gBAEXvM,EAAM8T,UAAU+K,EAAY,CAC1BlN,MAAO,SACPpF,QAAS,eAInB,GAAC,CAAA7M,IAAA,MAAAC,MAED,SAAIuM,EAAM0U,EAAQjhB,GAEhB,OADAuM,EAAKyB,SAASoS,GAAqBpgB,GAAQ,EAAG,EAAG,GAC1CuM,CACT,IAAC,EA9CqC0S,ICC3B8D,YAAetD,GAAA,SAAAsD,IAAA,IAAAxc,EAAAtD,OAAA8f,GAAA,IAAA,IAAAtT,EAAAnQ,UAAAC,OAAAwS,EAAAvP,IAAAA,MAAAiN,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAoC,EAAApC,GAAArQ,UAAAqQ,GAgDe,OAhDfsO,EAAA1X,EAAArD,EAAAzD,KAAAsjB,EAAAxgB,GAAAA,OAAAwP,IAAA,WACf,IAAEkM,EAAA1X,EAAA,qBA+CQ,CAAC,IAAK,IAAK,IAAK,MAAIA,CAAA,CAAA,OAAApD,EAAA4f,EAAAtD,GAAArc,EAAA2f,EAAA,CAAA,CAAAhjB,IAAA,QAAAC,MA7CzC,SAAMkf,EAAY1W,EAAOnI,GACvB,OAAQmI,GACN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OACEnI,EAAM8T,UAAU+K,EAAY,CAC1BlN,MAAO,cACPpF,QAAS,gBAEXvM,EAAM8T,UAAU+K,EAAY,CAC1BlN,MAAO,SACPpF,QAAS,eAIf,IAAK,QACH,OAAOvM,EAAM8T,UAAU+K,EAAY,CACjClN,MAAO,SACPpF,QAAS,eAGb,QACE,OACEvM,EAAM8T,UAAU+K,EAAY,CAC1BlN,MAAO,OACPpF,QAAS,gBAEXvM,EAAM8T,UAAU+K,EAAY,CAC1BlN,MAAO,cACPpF,QAAS,gBAEXvM,EAAM8T,UAAU+K,EAAY,CAC1BlN,MAAO,SACPpF,QAAS,eAInB,GAAC,CAAA7M,IAAA,MAAAC,MAED,SAAIuM,EAAM0U,EAAQjhB,GAEhB,OADAuM,EAAKyB,SAASoS,GAAqBpgB,GAAQ,EAAG,EAAG,GAC1CuM,CACT,IAAC,EA9CkC0S,ICAxB+D,YAAevD,GAAA,SAAAuD,IAAA,IAAAzc,EAAAtD,OAAA+f,GAAA,IAAA,IAAAvT,EAAAnQ,UAAAC,OAAAwS,EAAAvP,IAAAA,MAAAiN,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAoC,EAAApC,GAAArQ,UAAAqQ,GA8BoB,OA9BpBsO,EAAA1X,EAAArD,EAAAzD,KAAAujB,EAAAzgB,GAAAA,OAAAwP,IAAA,WACf,IAAEkM,EAAA1X,EA6BQ,qBAAA,CAAC,IAAK,IAAK,IAAK,IAAK,MAAIA,CAAA,CAAA,OAAApD,EAAA6f,EAAAvD,GAAArc,EAAA4f,EAAA,CAAA,CAAAjjB,IAAA,QAAAC,MA3B9C,SAAMkf,EAAY1W,EAAOnI,GACvB,OAAQmI,GACN,IAAK,IACH,OAAOuX,GAAoBL,GAAyBR,GACtD,IAAK,KACH,OAAO7e,EAAMkT,cAAc2L,EAAY,CAAE7G,KAAM,SACjD,QACE,OAAO6H,GAAa1X,EAAMjJ,OAAQ2f,GAExC,GAAC,CAAAnf,IAAA,WAAAC,MAED,SAAS8M,EAAO9M,GACd,OAAOA,GAAS,GAAKA,GAAS,EAChC,GAAC,CAAAD,IAAA,MAAAC,MAED,SAAIuM,EAAM0U,EAAQjhB,GAChB,IAAMijB,EAAO1W,EAAKwC,YAAc,GAQhC,OAPIkU,GAAQjjB,EAAQ,GAClBuM,EAAKyB,SAAShO,EAAQ,GAAI,EAAG,EAAG,GACtBijB,GAAkB,KAAVjjB,EAGlBuM,EAAKyB,SAAShO,EAAO,EAAG,EAAG,GAF3BuM,EAAKyB,SAAS,EAAG,EAAG,EAAG,GAIlBzB,CACT,IAAC,EA5BkC0S,ICAxBiE,YAAezD,GAAA,SAAAyD,IAAA,IAAA3c,EAAAtD,OAAAigB,GAAA,IAAA,IAAAzT,EAAAnQ,UAAAC,OAAAwS,EAAAvP,IAAAA,MAAAiN,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAoC,EAAApC,GAAArQ,UAAAqQ,GAuB8B,OAvB9BsO,EAAA1X,EAAArD,EAAAzD,KAAAyjB,EAAA3gB,GAAAA,OAAAwP,IAAA,WACf,IAAEkM,EAAA1X,EAAA,qBAsBQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAIA,CAAA,CAAA,OAAApD,EAAA+f,EAAAzD,GAAArc,EAAA8f,EAAA,CAAA,CAAAnjB,IAAA,QAAAC,MApBxD,SAAMkf,EAAY1W,EAAOnI,GACvB,OAAQmI,GACN,IAAK,IACH,OAAOuX,GAAoBL,GAAyBR,GACtD,IAAK,KACH,OAAO7e,EAAMkT,cAAc2L,EAAY,CAAE7G,KAAM,SACjD,QACE,OAAO6H,GAAa1X,EAAMjJ,OAAQ2f,GAExC,GAAC,CAAAnf,IAAA,WAAAC,MAED,SAAS8M,EAAO9M,GACd,OAAOA,GAAS,GAAKA,GAAS,EAChC,GAAC,CAAAD,IAAA,MAAAC,MAED,SAAIuM,EAAM0U,EAAQjhB,GAEhB,OADAuM,EAAKyB,SAAShO,EAAO,EAAG,EAAG,GACpBuM,CACT,IAAC,EArBkC0S,ICAxBkE,YAAe1D,GAAA,SAAA0D,IAAA,IAAA5c,EAAAtD,OAAAkgB,GAAA,IAAA,IAAA1T,EAAAnQ,UAAAC,OAAAwS,EAAAvP,IAAAA,MAAAiN,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAoC,EAAApC,GAAArQ,UAAAqQ,GA4BoB,OA5BpBsO,EAAA1X,EAAArD,EAAAzD,KAAA0jB,EAAA5gB,GAAAA,OAAAwP,IAAA,WACf,IAAEkM,EAAA1X,EA2BQ,qBAAA,CAAC,IAAK,IAAK,IAAK,IAAK,MAAIA,CAAA,CAAA,OAAApD,EAAAggB,EAAA1D,GAAArc,EAAA+f,EAAA,CAAA,CAAApjB,IAAA,QAAAC,MAzB9C,SAAMkf,EAAY1W,EAAOnI,GACvB,OAAQmI,GACN,IAAK,IACH,OAAOuX,GAAoBL,GAAyBR,GACtD,IAAK,KACH,OAAO7e,EAAMkT,cAAc2L,EAAY,CAAE7G,KAAM,SACjD,QACE,OAAO6H,GAAa1X,EAAMjJ,OAAQ2f,GAExC,GAAC,CAAAnf,IAAA,WAAAC,MAED,SAAS8M,EAAO9M,GACd,OAAOA,GAAS,GAAKA,GAAS,EAChC,GAAC,CAAAD,IAAA,MAAAC,MAED,SAAIuM,EAAM0U,EAAQjhB,GAOhB,OANauM,EAAKwC,YAAc,IACpB/O,EAAQ,GAClBuM,EAAKyB,SAAShO,EAAQ,GAAI,EAAG,EAAG,GAEhCuM,EAAKyB,SAAShO,EAAO,EAAG,EAAG,GAEtBuM,CACT,IAAC,EA1BkC0S,ICAxBmE,YAAe3D,GAAA,SAAA2D,IAAA,IAAA7c,EAAAtD,OAAAmgB,GAAA,IAAA,IAAA3T,EAAAnQ,UAAAC,OAAAwS,EAAAvP,IAAAA,MAAAiN,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAoC,EAAApC,GAAArQ,UAAAqQ,GAwB8B,OAxB9BsO,EAAA1X,EAAArD,EAAAzD,KAAA2jB,EAAA7gB,GAAAA,OAAAwP,IAAA,WACf,IAAEkM,EAAA1X,EAAA,qBAuBQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAIA,CAAA,CAAA,OAAApD,EAAAigB,EAAA3D,GAAArc,EAAAggB,EAAA,CAAA,CAAArjB,IAAA,QAAAC,MArBxD,SAAMkf,EAAY1W,EAAOnI,GACvB,OAAQmI,GACN,IAAK,IACH,OAAOuX,GAAoBL,GAAyBR,GACtD,IAAK,KACH,OAAO7e,EAAMkT,cAAc2L,EAAY,CAAE7G,KAAM,SACjD,QACE,OAAO6H,GAAa1X,EAAMjJ,OAAQ2f,GAExC,GAAC,CAAAnf,IAAA,WAAAC,MAED,SAAS8M,EAAO9M,GACd,OAAOA,GAAS,GAAKA,GAAS,EAChC,GAAC,CAAAD,IAAA,MAAAC,MAED,SAAIuM,EAAM0U,EAAQjhB,GAChB,IAAM6Z,EAAQ7Z,GAAS,GAAKA,EAAQ,GAAKA,EAEzC,OADAuM,EAAKyB,SAAS6L,EAAO,EAAG,EAAG,GACpBtN,CACT,IAAC,EAtBkC0S,ICAxBoE,YAAY5D,GAAA,SAAA4D,IAAA,IAAA9c,EAAAtD,OAAAogB,GAAA,IAAA,IAAA5T,EAAAnQ,UAAAC,OAAAwS,EAAAvP,IAAAA,MAAAiN,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAoC,EAAApC,GAAArQ,UAAAqQ,GAuBQ,OAvBRsO,EAAA1X,EAAArD,EAAAzD,KAAA4jB,EAAA9gB,GAAAA,OAAAwP,IAAA,WACZ,IAAEkM,EAAA1X,EAAA,qBAsBQ,CAAC,IAAK,MAAIA,CAAA,CAAA,OAAApD,EAAAkgB,EAAA5D,GAAArc,EAAAigB,EAAA,CAAA,CAAAtjB,IAAA,QAAAC,MApB/B,SAAMkf,EAAY1W,EAAOnI,GACvB,OAAQmI,GACN,IAAK,IACH,OAAOuX,GAAoBL,GAAwBR,GACrD,IAAK,KACH,OAAO7e,EAAMkT,cAAc2L,EAAY,CAAE7G,KAAM,WACjD,QACE,OAAO6H,GAAa1X,EAAMjJ,OAAQ2f,GAExC,GAAC,CAAAnf,IAAA,WAAAC,MAED,SAAS8M,EAAO9M,GACd,OAAOA,GAAS,GAAKA,GAAS,EAChC,GAAC,CAAAD,IAAA,MAAAC,MAED,SAAIuM,EAAM0U,EAAQjhB,GAEhB,OADAuM,EAAK+W,WAAWtjB,EAAO,EAAG,GACnBuM,CACT,IAAC,EArB+B0S,ICArBsE,YAAY9D,GAAA,SAAA8D,IAAA,IAAAhd,EAAAtD,OAAAsgB,GAAA,IAAA,IAAA9T,EAAAnQ,UAAAC,OAAAwS,EAAAvP,IAAAA,MAAAiN,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAoC,EAAApC,GAAArQ,UAAAqQ,GAuBQ,OAvBRsO,EAAA1X,EAAArD,EAAAzD,KAAA8jB,EAAAhhB,GAAAA,OAAAwP,IAAA,WACZ,IAAEkM,EAAA1X,EAAA,qBAsBQ,CAAC,IAAK,MAAIA,CAAA,CAAA,OAAApD,EAAAogB,EAAA9D,GAAArc,EAAAmgB,EAAA,CAAA,CAAAxjB,IAAA,QAAAC,MApB/B,SAAMkf,EAAY1W,EAAOnI,GACvB,OAAQmI,GACN,IAAK,IACH,OAAOuX,GAAoBL,GAAwBR,GACrD,IAAK,KACH,OAAO7e,EAAMkT,cAAc2L,EAAY,CAAE7G,KAAM,WACjD,QACE,OAAO6H,GAAa1X,EAAMjJ,OAAQ2f,GAExC,GAAC,CAAAnf,IAAA,WAAAC,MAED,SAAS8M,EAAO9M,GACd,OAAOA,GAAS,GAAKA,GAAS,EAChC,GAAC,CAAAD,IAAA,MAAAC,MAED,SAAIuM,EAAM0U,EAAQjhB,GAEhB,OADAuM,EAAKiX,WAAWxjB,EAAO,GAChBuM,CACT,IAAC,EArB+B0S,ICDrBwE,YAAsBhE,GAAA,SAAAgE,IAAA,IAAAld,EAAAtD,OAAAwgB,GAAA,IAAA,IAAAhU,EAAAnQ,UAAAC,OAAAwS,EAAAvP,IAAAA,MAAAiN,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAoC,EAAApC,GAAArQ,UAAAqQ,GAcF,OAdEsO,EAAA1X,EAAArD,EAAAzD,KAAAgkB,EAAAlhB,GAAAA,OAAAwP,IAAA,WACtB,IAAEkM,EAAA1X,EAAA,qBAaQ,CAAC,IAAK,MAAIA,CAAA,CAAA,OAAApD,EAAAsgB,EAAAhE,GAAArc,EAAAqgB,EAAA,CAAA,CAAA1jB,IAAA,QAAAC,MAX/B,SAAMkf,EAAY1W,GAGhB,OAAOoX,GAASM,GAAa1X,EAAMjJ,OAAQ2f,IAFrB,SAAClf,GAAK,OAC1BuQ,KAAKwH,MAAM/X,EAAQuQ,KAAKyH,IAAI,GAAoB,EAAfxP,EAAMjJ,QAAY,GAEvD,GAAC,CAAAQ,IAAA,MAAAC,MAED,SAAIuM,EAAM0U,EAAQjhB,GAEhB,OADAuM,EAAKmX,gBAAgB1jB,GACduM,CACT,IAAC,EAZyC0S,ICI/B0E,YAAsBlE,GAAA,SAAAkE,IAAA,IAAApd,EAAAtD,OAAA0gB,GAAA,IAAA,IAAAlU,EAAAnQ,UAAAC,OAAAwS,EAAAvP,IAAAA,MAAAiN,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAoC,EAAApC,GAAArQ,UAAAqQ,GAoCG,OApCHsO,EAAA1X,EAAArD,EAAAzD,KAAAkkB,EAAAphB,GAAAA,OAAAwP,IAAA,WACtB,IAAEkM,EAAA1X,EAmCQ,qBAAA,CAAC,IAAK,IAAK,MAAIA,CAAA,CAAA,OAAApD,EAAAwgB,EAAAlE,GAAArc,EAAAugB,EAAA,CAAA,CAAA5jB,IAAA,QAAAC,MAjCpC,SAAMkf,EAAY1W,GAChB,OAAQA,GACN,IAAK,IACH,OAAOwX,GACLL,GACAT,GAEJ,IAAK,KACH,OAAOc,GAAqBL,GAAwBT,GACtD,IAAK,OACH,OAAOc,GACLL,GACAT,GAEJ,IAAK,QACH,OAAOc,GACLL,GACAT,GAGJ,QACE,OAAOc,GAAqBL,GAA2BT,GAE7D,GAAC,CAAAnf,IAAA,MAAAC,MAED,SAAIuM,EAAMkS,EAAOze,GACf,OAAIye,EAAMI,eAAuBtS,EAC1BD,GACLC,EACAA,EAAKmC,UAAYC,GAAgCpC,GAAQvM,EAE7D,IAAC,EAlCyCif,ICA/B2E,YAAiBnE,GAAA,SAAAmE,IAAA,IAAArd,EAAAtD,OAAA2gB,GAAA,IAAA,IAAAnU,EAAAnQ,UAAAC,OAAAwS,EAAAvP,IAAAA,MAAAiN,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAoC,EAAApC,GAAArQ,UAAAqQ,GAoCQ,OApCRsO,EAAA1X,EAAArD,EAAAzD,KAAAmkB,EAAArhB,GAAAA,OAAAwP,IAAA,WACjB,IAAEkM,EAAA1X,EAmCQ,qBAAA,CAAC,IAAK,IAAK,MAAIA,CAAA,CAAA,OAAApD,EAAAygB,EAAAnE,GAAArc,EAAAwgB,EAAA,CAAA,CAAA7jB,IAAA,QAAAC,MAjCpC,SAAMkf,EAAY1W,GAChB,OAAQA,GACN,IAAK,IACH,OAAOwX,GACLL,GACAT,GAEJ,IAAK,KACH,OAAOc,GAAqBL,GAAwBT,GACtD,IAAK,OACH,OAAOc,GACLL,GACAT,GAEJ,IAAK,QACH,OAAOc,GACLL,GACAT,GAGJ,QACE,OAAOc,GAAqBL,GAA2BT,GAE7D,GAAC,CAAAnf,IAAA,MAAAC,MAED,SAAIuM,EAAMkS,EAAOze,GACf,OAAIye,EAAMI,eAAuBtS,EAC1BD,GACLC,EACAA,EAAKmC,UAAYC,GAAgCpC,GAAQvM,EAE7D,IAAC,EAlCoCif,ICH1B4E,YAAsBpE,GAAA,SAAAoE,IAAA,IAAAtd,EAAAtD,OAAA4gB,GAAA,IAAA,IAAApU,EAAAnQ,UAAAC,OAAAwS,EAAAvP,IAAAA,MAAAiN,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAoC,EAAApC,GAAArQ,UAAAqQ,GAWT,OAXSsO,EAAA1X,EAAArD,EAAAzD,KAAAokB,EAAAthB,GAAAA,OAAAwP,IAAA,WACtB,IAAEkM,EAAA1X,EAAA,qBAUQ,KAAGA,CAAA,CAAA,OAAApD,EAAA0gB,EAAApE,GAAArc,EAAAygB,EAAA,CAAA,CAAA9jB,IAAA,QAAAC,MARxB,SAAMkf,GACJ,OAAOe,GAAqBf,EAC9B,GAAC,CAAAnf,IAAA,MAAAC,MAED,SAAIuM,EAAM0U,EAAQjhB,GAChB,MAAO,CAACsM,GAAcC,EAAc,IAARvM,GAAe,CAAE6e,gBAAgB,GAC/D,IAAC,EATyCI,ICA/B6E,YAA2BrE,GAAA,SAAAqE,IAAA,IAAAvd,EAAAtD,OAAA6gB,GAAA,IAAA,IAAArU,EAAAnQ,UAAAC,OAAAwS,EAAAvP,IAAAA,MAAAiN,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAAoC,EAAApC,GAAArQ,UAAAqQ,GAWd,OAXcsO,EAAA1X,EAAArD,EAAAzD,KAAAqkB,EAAAvhB,GAAAA,OAAAwP,IAAA,WAC3B,IAAEkM,EAAA1X,EAAA,qBAUQ,KAAGA,CAAA,CAAA,OAAApD,EAAA2gB,EAAArE,GAAArc,EAAA0gB,EAAA,CAAA,CAAA/jB,IAAA,QAAAC,MARxB,SAAMkf,GACJ,OAAOe,GAAqBf,EAC9B,GAAC,CAAAnf,IAAA,MAAAC,MAED,SAAIuM,EAAM0U,EAAQjhB,GAChB,MAAO,CAACsM,GAAcC,EAAMvM,GAAQ,CAAE6e,gBAAgB,GACxD,IAAC,EAT8CI,ICsEpC8E,GAAU,CACrB5L,EAAG,IAAIqH,GACPpH,EAAG,IAAIwI,GACPtI,EAAG,IAAIyI,GACPtI,EAAG,IAAIuI,GACPtI,EAAG,IAAIyI,GACPxI,EAAG,IAAIyI,GACPvI,EAAG,IAAIyI,GACPxI,EAAG,IAAIyI,GACPxI,EAAG,IAAIyI,GACPxI,EAAG,IAAIyI,GACPvI,EAAG,IAAIyI,GACPvI,EAAG,IAAI2I,GACPlf,EAAG,IAAIof,GACP3I,EAAG,IAAI+I,GACPjjB,EAAG,IAAIkjB,GACP7I,EAAG,IAAIgJ,GACPriB,EAAG,IAAIwiB,GACP3hB,EAAG,IAAI4hB,GACPjJ,EAAG,IAAIkJ,GACPhgB,EAAG,IAAIigB,GACPvjB,EAAG,IAAIwjB,GACPlJ,EAAG,IAAIoJ,GACPnJ,EAAG,IAAIoJ,GACPnJ,EAAG,IAAIoJ,GACPnJ,EAAG,IAAIoJ,GACPniB,EAAG,IAAIqiB,GACP3gB,EAAG,IAAI6gB,GACPvJ,EAAG,IAAIyJ,GACPnJ,EAAG,IAAIoJ,GACPzkB,EAAG,IAAI0kB,GACPjJ,EAAG,IAAIkJ,ICzEHvH,GACJ,wDAIIC,GAA6B,oCAE7BC,GAAsB,eACtBC,GAAoB,MAEpBsH,GAAsB,KACtBrH,GAAgC,WA4S/B,SAASwC,GAAM8E,EAASrH,EAAWsH,EAAe9e,GAASiI,IAAAA,EAAAC,EAAAC,EAAAsP,EAAAnP,EAAAoP,EAAAC,EAAAC,EAAAC,EAC1DkH,EAAc,WAAH,OAAS7X,GAA6B4X,EAAenX,IAAI,EACpEG,EC/TChL,OAAOkiB,OAAO,CAAE,EAAEC,MDgUnBzW,EAAiD,QAA3CP,EAAsBH,EAAeU,cAAM,IAAAP,EAAAA,EAAI6P,GAErDzG,EAIiD,QAJ5BnJ,UAAAC,EAEsB,QAFtBsP,OAEzBM,SAA+C,IAAAN,EAAAA,EAC/C3P,EAAeuJ,6BAAqB,IAAAlJ,EAAAA,EACf,QADeG,EACpCR,EAAeU,cAAMF,IAAAA,GAASA,QAATA,EAArBA,EAAuBtI,eAAvBsI,IAA8BA,OAA9BA,EAAAA,EAAgC+I,6BAAqBnJ,IAAAA,EAAAA,EACrD,EAEIK,EAIwC,QAJ5BmP,UAAAC,EAEsB,QAFtBC,OAEhBI,SAAsC,IAAAJ,EAAAA,EACtC9P,EAAeS,oBAAY,IAAAoP,EAAAA,EACN,QADME,EAC3B/P,EAAeU,cAAMqP,IAAAA,GAASA,QAATA,EAArBA,EAAuB7X,eAAvB6X,IAA8BA,OAA9BA,EAAAA,EAAgCtP,oBAAYmP,IAAAA,EAAAA,EAC5C,EAEF,IAAKF,EACH,OAAOqH,EAAUE,IAAgBzX,GAAOwX,OAAe9e,GAEzD,IAyBwBkf,EAzBlBC,EAAe,CACnB9N,sBAAAA,EACA9I,aAAAA,EACAC,OAAAA,GAKI4W,EAAU,CAAC,IAAI9F,UAAgCwF,IAE/CO,EAAS7H,EACZvc,MAAMmc,IACN5V,KAAI,SAAC7F,GACJ,IAAMwc,EAAiBxc,EAAU,GACjC,OAAIwc,KAAkBnC,IAEboC,EADepC,GAAemC,IAChBxc,EAAW6M,EAAOwE,YAElCrR,CACR,IACAC,KAAK,IACLX,MAAMkc,IAEHmI,EAAa,GAAGC,EAAAC,EAEJH,GAAM,IAAA,IA0EvBI,EA1EuBC,EAAAA,WAAE,IAAjBtc,EAAK8b,EAAAtkB,MAEToF,SAAAA,EAAS2f,8BACVjJ,GAAyBtT,IAEzBuT,GAA0BvT,EAAOoU,EAAWqH,GAG3C7e,SAAAA,EAAS4f,+BACVnJ,GAA0BrT,IAE1BuT,GAA0BvT,EAAOoU,EAAWqH,GAG9C,IAAM1G,EAAiB/U,EAAM,GACvByc,EAASlB,GAAQxG,GACvB,GAAI0H,EAAQ,CACV,IAAQC,EAAuBD,EAAvBC,mBACR,GAAI1iB,MAAMmC,QAAQugB,GAAqB,CACrC,IAAMC,EAAoBT,EAAW7U,MACnC,SAACuV,GAAS,OACRF,EAAmB7I,SAAS+I,EAAU5c,QACtC4c,EAAU5c,QAAU+U,CAAc,IAEtC,GAAI4H,EACF,MAAM,IAAI7I,WAAU/Z,sCAAAA,OACqB4iB,EAAkBE,UAAS9iB,WAAAA,OAAYiG,wBAGpF,MAAO,GAAkC,MAA9Byc,EAAOC,oBAA8BR,EAAWnlB,OAAS,EAClE,MAAM,IAAI+c,WAAU,sCAAA/Z,OACqBiG,6CAI3Ckc,EAAWY,KAAK,CAAE9c,MAAO+U,EAAgB8H,UAAW7c,IAEpD,IAAMsN,EAAcmP,EAAOM,IACzBtB,EACAzb,EACAoF,EAAOvN,MACPkkB,GAGF,IAAKzO,EAAa,MAAA,CAAAhW,EACTqkB,KAGTK,EAAQc,KAAKxP,EAAYsJ,QAEzB6E,EAAUnO,EAAYF,IACxB,KAAO,CACL,GAAI2H,EAAeld,MAAMsc,IACvB,MAAM,IAAIL,WACR,iEACEiB,EACA,KAYN,GAPc,OAAV/U,EACFA,EAAQ,IACoB,MAAnB+U,IACT/U,EAA2BA,EAqDpBnI,MAAMoc,IAAqB,GAAGnc,QAAQoc,GAAmB,MAjDnC,IAA3BuH,EAAQ/jB,QAAQsI,GAEb,MAAA,CAAA1I,EACEqkB,KAFPF,EAAUA,EAAQ9iB,MAAMqH,EAAMjJ,OAIlC,CACD,EA1ED,IAAAolB,EAAAzjB,MAAAojB,EAAAK,EAAAtlB,KAAAmmB,MAAA,GAAAX,EAAAC,IAAA,OAAAD,EAAA/kB,CA4EA,CAAA,MAAA2lB,GAAAd,EAAAvlB,EAAAqmB,EAAA,CAAA,QAAAd,EAAAe,GAAA,CACA,GAAIzB,EAAQ1kB,OAAS,GAAKykB,GAAoB5c,KAAK6c,GACjD,OAAOE,IAGT,IAAMwB,EAAwBnB,EAC3B5d,KAAI,SAACwY,GAAM,OAAKA,EAAOb,QAAQ,IAC/BqH,MAAK,SAAC3kB,EAAG2Y,GAAC,OAAKA,EAAI3Y,CAAE,IACrB4kB,QAAO,SAACtH,EAAUvI,EAAOX,GAAK,OAAKA,EAAMnV,QAAQqe,KAAcvI,CAAK,IACpEpP,KAAI,SAAC2X,GAAQ,OACZiG,EACGqB,QAAO,SAACzG,GAAM,OAAKA,EAAOb,WAAaA,CAAQ,IAC/CqH,MAAK,SAAC3kB,EAAG2Y,GAAC,OAAKA,EAAE4E,YAAcvd,EAAEud,cAAY,IAEjD5X,KAAI,SAACkf,GAAW,OAAKA,EAAY,MAEhCvZ,EAAOG,GAAOwX,OAAsB,GAExC,GAAIjiB,OAAOsK,GAAO,OAAO4X,IAEzB,IAC0C4B,EADpCtH,EAAQ,CAAE,EAACuH,EAAApB,EACIe,GAAqB,IAA1C,IAAAK,EAAA9kB,MAAA6kB,EAAAC,EAAA3mB,KAAAmmB,MAA4C,CAAA,IAAjCpG,EAAM2G,EAAA/lB,MACf,IAAKof,EAAOC,SAAS9S,EAAMgY,GACzB,OAAOJ,IAGT,IAAMhO,EAASiJ,EAAOE,IAAI/S,EAAMkS,EAAO8F,GAEnC/hB,MAAMmC,QAAQwR,IAChB5J,EAAO4J,EAAO,GACdjU,OAAOkiB,OAAO3F,EAAOtI,EAAO,KAG5B5J,EAAO4J,CAEX,CAAC,CAAA,MAAAsP,GAAAO,EAAA5mB,EAAAqmB,EAAA,CAAA,QAAAO,EAAAN,GAAA,CAED,OAAOnZ,CACT,CErfqB0Z,IAAAA,YAASphB,GAC1B,SAAAohB,IAAoD,IAAxClgB,EAAUzG,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAEqE,EAAOrE,UAAAC,OAAAD,EAAAA,kBAAAgE,EAAE8B,EAAO9F,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAA,OAAA2D,OAAAgjB,GAAA/iB,EAAA+iB,KAAAA,EACxClgB,CAAAA,EAAYpC,EAAS,aAAcyB,GAC7C,CAAC,OAAAjC,EAAA8iB,EAAAphB,GAAAzB,EAAA6iB,EAAA,CAAA,CAAAlmB,IAAA,MAAA6F,IAED,WACI,OAAOnG,KAAKwG,aAAa,MAC7B,GAAC,CAAAlG,IAAA,WAAA6F,IAED,WACI,OAAsC,OAA/BnG,KAAKwG,aAAa,UAAkD,OAA7BxG,KAAKwG,aAAa,MACpE,GAAC,CAAAlG,IAAA,YAAA6F,IAED,WACI,IAAMsgB,EAAQzmB,KAAK0mB,kBACbC,EAAM3mB,KAAK4mB,gBACXtY,EAAOwC,KAAKkH,IAAIyO,EAAQE,GAG9B,OAFc7V,KAAKiS,MAAMzU,EAAO,IAAO,IAAM,GAE9B,EACnB,GAAC,CAAAhO,IAAA,oBAAA6F,IAED,WACI,IAAKnG,KAAK6mB,aAAa,SACnB,OAAO,KAGX,IAAMJ,EAAQzmB,KAAKwG,aAAa,SAC1BsgB,EAA8C,IAA5BL,EAAMvlB,MAAM,KAAKpB,OAGzC,OAAO4f,GAAM+G,EAFEK,EAAkB,WAAa,QAElB,IAAI/Z,KACpC,GAAC,CAAAzM,IAAA,kBAAA6F,IAED,WACI,IAAKnG,KAAK6mB,aAAa,OACnB,OAAO,KAGX,IAAMF,EAAM3mB,KAAKwG,aAAa,OACxBsgB,EAA4C,IAA1BH,EAAIzlB,MAAM,KAAKpB,OAGvC,OAAO4f,GAAMiH,EAFEG,EAAkB,WAAa,QAEpB,IAAI/Z,KAClC,GAAC,CAAAzM,IAAA,0BAAA6F,IAED,WACI,OAAK6K,GAAQhR,KAAK0mB,oBAAuB1V,GAAQhR,KAAK4mB,iBAItD9jB,GAAAA,OAAU6B,GAAO3E,KAAK0mB,kBAAmB,YAAI5jB,OAAM6B,GAAO3E,KAAK4mB,gBAAiB,MAH5E9jB,GAAAA,OAAU9C,KAAKymB,aAAK3jB,OAAM9C,KAAK2mB,IAIvC,GAAC,CAAArmB,IAAA,qBAAA6F,IAED,WACI,OAAInG,KAAK+mB,SACE,SAGP/mB,KAAKgnB,UACE,WAGJhnB,KAAKinB,uBAChB,GAEA,CAAA3mB,IAAA,SAAAC,MACA,WACI,MAAM,IAAIwH,MAAM,8CACpB,GAEA,CAAAzH,IAAA,SAAAC,MACA,WACI,MAAM,IAAIwH,MAAM,8CACpB,GAEA,CAAAzH,IAAA,UAAAC,MACA,WACI,MAAM,IAAIwH,MAAM,+CACpB,GAEA,CAAAzH,IAAA,SAAAC,MACA,WACI,MAAM,IAAIwH,MAAM,8CACpB,IAAC,EApFkCnC,IAuFvCC,GAAS,WAAY,YAAa2gB,ICtFbU,IAAAA,YAAa9hB,GAC9B,SAAA8hB,IAAoD,IAAxC5gB,EAAUzG,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAEqE,EAAOrE,UAAAC,OAAAD,EAAAA,kBAAAgE,EAAE8B,EAAO9F,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAA,OAAA2D,OAAA0jB,GAAAzjB,EAAAyjB,KAAAA,EACxC5gB,CAAAA,EAAYpC,EAAS,iBAAkByB,GACjD,CAAC,OAAAjC,EAAAwjB,EAAA9hB,GAAAzB,EAAAujB,EAAA,CAAA,CAAA5mB,IAAA,WAAA6F,IAED,WACI,OAAOnG,KAAKwG,aAAa,+BAC7B,GAAC,CAAAlG,IAAA,YAAA6F,IAED,WACI,OAAOnG,KAAKwG,aAAa,+BAC7B,GAAC,CAAAlG,IAAA,QAAA6F,IAED,WACI,OAAO,IAAIe,GAAWlH,KAAKwG,aAAa,SAASW,KAAI,SAACb,GAAU,OAAK,IAAIkgB,GAAUlgB,EAAW,IAClG,GAAC,CAAAhG,IAAA,eAAA6F,IAED,WACI,OAAOnG,KAAKoa,MAAM+M,OAAM,SAACC,GAAI,OAAKA,aAAAA,EAAAA,EAAMJ,YAC5C,GAAC,CAAA1mB,IAAA,QAAA6F,IAED,WACI,IAAMkN,EAAQ1O,GAAO,IAAIoI,KAAQ,QAEjC,OAAO/M,KAAKqnB,SAAShU,EACzB,GAAC,CAAA/S,IAAA,WAAA6F,IAED,WAII,IAHA,IAAMkhB,EAAW,CAAE,EACb7N,EAAO,CAAC,SAAU,UAAW,YAAa,WAAY,SAAU,WAAY,UAEzE7Y,EAAI,EAAGA,EAAI6Y,EAAK1Z,OAAQa,IAAK,CAGlC0mB,EAFY7N,EAAK7Y,IAED,IAAIuG,EACxB,CAEA,IAAK,IAAIvG,EAAI,EAAGA,EAAIX,KAAKoa,MAAMta,OAAQa,IAAK,CACxC,IAAMymB,EAAOpnB,KAAKoa,MAAMkN,SAAS3mB,GAEjC0mB,EAASD,EAAKhZ,KAAKmZ,WAAWH,EAClC,CAEA,OAAOC,CACX,GAEA,CAAA/mB,IAAA,SAAAC,MACA,WACI,MAAM,IAAIwH,MAAM,8CACpB,GAEA,CAAAzH,IAAA,SAAAC,MACA,WACI,MAAM,IAAIwH,MAAM,8CACpB,GAEA,CAAAzH,IAAA,UAAAC,MACA,WACI,MAAM,IAAIwH,MAAM,+CACpB,IAAC,EA3DsCnC,IA8D3CC,GAAS,WAAY,gBAAiBqhB,IC7DjB/iB,IAAAA,YAAKiB,GACtB,SAAAjB,IAAoD,IAAxCmC,EAAUzG,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAEqE,EAAOrE,UAAAC,OAAAD,EAAAA,kBAAAgE,EAAE8B,EAAO9F,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAA,OAAA2D,OAAAW,GAAAV,EAAAU,KAAAA,EACxCmC,CAAAA,EAAYpC,EAAS,QAASyB,GACxC,CAAC,OAAAjC,EAAAS,EAAAiB,GAAAzB,EAAAQ,EAAA,CAAA,CAAA7D,IAAA,aAAAC,MAED,WAAwB,IAAAuG,EAAA9G,KAAbkG,EAAMrG,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAClB,OAAOG,KAAKkE,QAAQiC,IAAI,UAAS6B,EAAA,CAAI1C,MAAOtF,KAAK+G,IAAOb,IAAUc,MAAK,SAACC,GACpE,OAAO,IAAIC,GAAWD,EAAQE,KAAI,SAACb,GAAU,OAAK,IAAID,GAAOC,EAAYQ,EAAK5C,QAAQ,IAC1F,GACJ,GAAC,CAAA5D,IAAA,eAAAC,MAED,WAA0B,IAAAiK,EAAAxK,KAAbkG,EAAMrG,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EACpB,OAAOG,KAAKkE,QAAQiC,IAAI,YAAW6B,EAAA,CAAI1C,MAAOtF,KAAK+G,IAAOb,IAAUc,MAAK,SAACwgB,GACtE,OAAO,IAAItgB,GACPsgB,EAAergB,KAAI,SAACb,GAKhB,OAJIA,EAAWmhB,QACXnhB,EAAWmhB,MAAQ,IAAI9c,GAAMrE,EAAWmhB,QAGrC,IAAIP,GAAc5gB,EAAYkE,EAAKtG,QAC9C,IAER,GACJ,GAAC,CAAA5D,IAAA,cAAAC,MAED,SAAYwG,GAAI,IAAAgE,EAAA/K,KACZ,OAAOA,KAAKkE,QAAQiC,IAAGrD,aAAAA,OAAciE,GAAM,CAAEzB,MAAOtF,KAAK+G,KAAMC,MAAK,SAACV,GACjE,OAAO,IAAI4gB,GAAc5gB,EAAYyE,EAAK7G,QAC9C,GACJ,GAAC,CAAA5D,IAAA,qBAAAC,MAED,WAAgC,IAAAmnB,EAAA1nB,KAAbkG,EAAMrG,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAC1B,OAAOG,KAAKkE,QAAQiC,IAAI,WAAYD,GAAQc,MAAK,SAAC2gB,GAC9C,OAAO,IAAIzgB,GACPygB,EAASxgB,KAAI,SAACb,GACV,OAAO,IAAIkG,GAAelG,EAAYohB,EAAKxjB,QAC/C,IAER,GACJ,GAAC,CAAA5D,IAAA,oBAAAC,MAED,SAAkBwG,GAAI,IAAA6gB,EAAA5nB,KAClB,OAAOA,KAAKkE,QAAQiC,gBAAGrD,OAAaiE,IAAMC,MAAK,SAACV,GAC5C,OAAO,IAAIkG,GAAelG,EAAYshB,EAAK1jB,QAC/C,GACJ,IAAC,EA7C8B0B,IAgDnCC,GAAS,WAAY,QAAS1B,IChDT0jB,IAAAA,YAAOziB,GACxB,SAAAyiB,IAAoD,IAAxCvhB,EAAUzG,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAEqE,EAAOrE,UAAAC,OAAAD,EAAAA,kBAAAgE,EAAE8B,EAAO9F,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAA,OAAA2D,OAAAqkB,GAAApkB,EAAAokB,KAAAA,EACxCvhB,CAAAA,EAAYpC,EAAS,UAAWyB,GAC1C,CAAC,OAAAjC,EAAAmkB,EAAAziB,GAAAzB,EAAAkkB,EAAA,CAAA,CAAAvnB,IAAA,UAAAC,MAED,WAAqB,IAAb2F,EAAMrG,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EACf,OAAOG,KAAKkE,QAAQiC,IAAI,OAAQD,EACpC,GAAC,CAAA5F,IAAA,wBAAAC,OAAAunB,EAAAnf,EAAAC,IAAAC,MAED,SAAAC,EAA4BY,EAAUqe,GAAa,IAAA7hB,EAAA8hB,EAAAlhB,EAAA9G,KAAAioB,EAAApoB,UAAA,OAAA+I,IAAAI,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EAAa,OAAXjD,EAAM+hB,EAAAnoB,OAAAmoB,QAAApkB,IAAAokB,EAAApkB,GAAAokB,EAAG,GAAA,CAAE,EAAAhf,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEhCnJ,KAAKkE,QAAQiC,IAAIuD,EAAUxD,GAAO,KAAA,EAA3C,OAAT8hB,EAAS/e,EAAAe,KAAAf,EAAAG,OAAA,SACR,IAAIlC,GAAW8gB,EAAU7gB,KAAI,SAACb,GAAU,OAAK,IAAIyhB,EAAczhB,EAAYQ,EAAK5C,QAAQ,MAAE,KAAA,EAE7C,MAF6C+E,EAAAC,KAAA,EAAAD,EAAAgB,GAAAhB,EAAA,MAAA,GAEjGiB,QAAQC,MAAK,kBAAArH,OAAmB4G,EAAQT,KAAAA,EAAAgB,IAAYhB,EAAAgB,GAAA,KAAA,GAAA,IAAA,MAAA,OAAAhB,EAAAK,OAAA,GAAAR,EAAA9I,KAAA,CAAA,CAAA,EAAA,SAG3D,SAR0BuJ,EAAAa,GAAA,OAAA0d,EAAAllB,MAAA5C,KAAAH,UAAA,IAAA,CAAAS,IAAA,YAAAC,OAAA2nB,EAAAvf,EAAAC,IAAAC,MAU3B,SAAAY,IAAA,IAAAvD,EAAA4D,EAAAjK,UAAA,OAAA+I,IAAAI,MAAA,SAAAe,GAAA,cAAAA,EAAAb,KAAAa,EAAAZ,MAAA,KAAA,EAA2B,OAAXjD,EAAM4D,EAAAhK,OAAAgK,QAAAjG,IAAAiG,EAAAjG,GAAAiG,EAAG,GAAA,CAAE,EAAAC,EAAAX,OAAA,SAChBpJ,KAAKmoB,sBAAsB,SAAUhkB,GAAO+B,IAAO,KAAA,EAAA,IAAA,MAAA,OAAA6D,EAAAT,OAAA,GAAAG,EAAAzJ,UAC7D,WAFc,OAAAkoB,EAAAtlB,MAAA5C,KAAAH,UAAA,IAAA,CAAAS,IAAA,oBAAAC,OAAA6nB,EAAAzf,EAAAC,IAAAC,MAIf,SAAAyB,IAAA,IAAApE,EAAAmiB,EAAAxoB,UAAA,OAAA+I,IAAAI,MAAA,SAAAyB,GAAA,cAAAA,EAAAvB,KAAAuB,EAAAtB,MAAA,KAAA,EAAmC,OAAXjD,EAAMmiB,EAAAvoB,OAAAuoB,QAAAxkB,IAAAwkB,EAAAxkB,GAAAwkB,EAAG,GAAA,CAAE,EAAA5d,EAAArB,OAAA,SACxBpJ,KAAKmoB,sBAAsB,kBAAmBjB,GAAehhB,IAAO,KAAA,EAAA,IAAA,MAAA,OAAAuE,EAAAnB,OAAA,GAAAgB,EAAAtK,UAC9E,WAFsB,OAAAooB,EAAAxlB,MAAA5C,KAAAH,UAAA,IAAA,CAAAS,IAAA,qBAAAC,OAAA+nB,EAAA3f,EAAAC,IAAAC,MAIvB,SAAAgC,IAAA,OAAAjC,IAAAI,MAAA,SAAAiC,GAAA,cAAAA,EAAA/B,KAAA+B,EAAA9B,MAAA,KAAA,EAAA,OAAA8B,EAAA7B,OACW,SAAApJ,KAAKmoB,sBAAsB,WAAY3b,KAAe,KAAA,EAAA,IAAA,MAAA,OAAAvB,EAAA3B,OAAA,GAAAuB,EAAA7K,UAChE,WAFuB,OAAAsoB,EAAA1lB,MAAA5C,KAAAH,UAAA,MAJD,IAAAyoB,EAJRF,EAVYF,EAF1BJ,CAoBuB,EA3BSliB,IAgCrCC,GAAS,WAAY,UAAWgiB,IClCXU,IAAAA,YAAoBC,GACrC,SAAAD,IAAoD,IAAxCjiB,EAAUzG,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAEqE,EAAOrE,UAAAC,OAAAD,EAAAA,kBAAAgE,EAAE8B,EAAO9F,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAA2D,OAAA+kB,GAC9C,IAAIE,EAAkBniB,EAClBoiB,EAAexkB,EAQnB,OALIoC,aAAsBqiB,KACtBF,EAAkB,CAAE,EACpBC,EAAepiB,GAGnB7C,EAAA8kB,KAAAA,EACME,CAAAA,EAAiBC,EAAc,gBAAiB/iB,GAC1D,CAEA,OAAAjC,EAAA6kB,EAAAC,GAAA7kB,EAAA4kB,EAAA,CAAA,CAAAjoB,IAAA,aAAAC,MAMA,SAAW2D,GAAS,IAAAmB,EAOhB,OANArF,KAAKkE,QAAUA,EACflE,KAAKsF,MAAQ,IAAIhC,GAAgBtD,KAAKiE,SAAUC,EAAS,CACrDqB,aAAcvF,KAAKwF,eAAeC,KAAKzF,MACvC0F,QAAqBL,QAAdA,EAAErF,KAAK2F,eAALN,IAAYA,OAAZA,EAAAA,EAAcK,UAGpB1F,IACX,GAAC,CAAAM,IAAA,kBAAA6F,IAED,WACI,IAAAM,EAA6BzG,KAAK0G,cAAc,CAAC,SAAU,aAAnDrC,EAAMoC,EAANpC,OAAQC,EAAQmC,EAARnC,SAEhB,OAAIM,GAAQP,IAAWO,GAAQN,GACpB,KAGJF,GAAeC,EAAS,IAAKC,EACxC,GAAC,CAAAhE,IAAA,6BAAAC,OAAAqoB,EAAAjgB,EAAAC,IAAAC,MAED,SAAAC,EAAiC+f,EAAQC,EAAaC,GAAI,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAviB,EAAA9G,KAAAioB,EAAApoB,UAAA,OAAA+I,IAAAI,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EASrD,OATuDggB,EAAMlB,EAAAnoB,OAAA,QAAA+D,IAAAokB,EAAA,GAAAA,EAAA,GAAG,aAAcmB,EAAGnB,EAAAnoB,OAAA,QAAA+D,IAAAokB,EAAA,IAAAA,EAAA,GACxE,QAAVe,EAAIH,SAAAG,IAAMA,GAANA,EAAQjiB,KACR8hB,EAASA,EAAO9hB,IAEL,QAAfkiB,EAAIH,SAAAG,IAAWA,GAAXA,EAAaliB,KACb+hB,EAAcA,EAAY/hB,IAEtB,QAARmiB,EAAIH,SAAAG,IAAIA,GAAJA,EAAMniB,KACNgiB,EAAOA,EAAKhiB,IACfkC,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAG+BnJ,KAAKkE,QAAQiC,IAAI,2BAA4B,CACrE0iB,OAAAA,EACAC,YAAAA,EACAC,KAAAA,EACAI,OAAAA,EACAC,IAAAA,IACF,KAAA,EANiB,GAAbC,EAAapgB,EAAAe,MAQf9E,GAAQmkB,GAAc,CAAApgB,EAAAE,KAAA,GAAA,KAAA,CAAA,OAAAF,EAAAG,OAAA,SACf,IAAIlC,GAAWmiB,EAAcliB,KAAI,SAACmiB,GAAY,OAAK,IAAIf,EAAqBe,EAAcxiB,EAAK5C,QAAQ,MAAE,KAAA,GAAA,OAAA+E,EAAAG,OAAA,SAG7G,IAAImf,EAAqBc,EAAerpB,KAAKkE,UAAQ,KAAA,GAEL,MAFK+E,EAAAC,KAAA,GAAAD,EAAAgB,GAAAhB,EAAA,MAAA,GAE5DiB,QAAQC,MAAM,iCAAgClB,EAAAgB,IAAShB,EAAAgB,GAAA,KAAA,GAAA,IAAA,MAAA,OAAAhB,EAAAK,OAAA,GAAAR,EAAA9I,KAAA,CAAA,CAAA,EAAA,UAG9D,SA7B+BuJ,EAAAa,EAAAmf,GAAA,OAAAX,EAAAhmB,MAAA5C,KAAAH,UAAA,KAAA,CAAA,CAAAS,IAAA,cAAAC,OAAAipB,EAAA7gB,EAAAC,IAAAC,MA+BhC,SAAAY,EAAyBvF,EAAS2kB,EAAQC,EAAaC,GAAI,IAAAI,EAAAC,EAAAK,EAAA3f,EAAAjK,UAAA,OAAA+I,IAAAI,MAAA,SAAAe,GAAA,cAAAA,EAAAb,KAAAa,EAAAZ,MAAA,KAAA,EACR,OADUggB,EAAMrf,EAAAhK,OAAA,QAAA+D,IAAAiG,EAAA,GAAAA,EAAA,GAAG,aAAcsf,EAAGtf,EAAAhK,OAAA,QAAA+D,IAAAiG,EAAA,IAAAA,EAAA,GAC7E2f,EAAQ,IAAIlB,EAAqBrkB,GAAQ6F,EAAAX,OACxCqgB,SAAAA,EAAMC,2BAA2Bb,EAAQC,EAAaC,EAAMI,EAAQC,IAAI,KAAA,EAAA,IAAA,MAAA,OAAArf,EAAAT,OAAA,GAAAG,OAClF,SAHuBkgB,EAAAC,EAAAC,EAAAC,GAAA,OAAAN,EAAA5mB,MAAA5C,KAAAH,UAAA,MA/BQ,IAAA2pB,EAF/BZ,CAiCuB,EAxEsBmB,IA8ElDlkB,GAAS,WAAY,uBAAwB0iB,IC/EtC,IAAMyB,GAAkB,IAAIjkB,GAAa,CAC5CuC,YAAQzE,EACRuH,aAASvH,EACTwH,WAAOxH,EACPyH,iBAAazH,EAEbomB,WAAY,SAAUC,EAAUnB,EAAMO,EAAca,GAA0C,IAAjCC,EAAYvqB,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAE8F,EAAO9F,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAiBxF,OAhBIwqB,GAAWH,KACXA,EAAWA,EAASnjB,IAGpBsjB,GAAWtB,KACXA,EAAOA,EAAKhiB,IAGZsjB,GAAWf,KACXA,EAAeA,EAAaviB,IAG5BsjB,GAAWF,KACXA,EAAUA,EAAQ3jB,aAAa,SAG5BxG,KAAKkE,QAAQiC,OAAGrD,OAAI9C,KAAKoG,UAAS4B,WAAAA,EAAAA,KAAgBoiB,GAAY,CAAA,EAAA,CAAEF,SAAAA,EAAUnB,KAAAA,EAAMO,aAAAA,EAAca,QAAAA,IAAWxkB,EACnH,EAED2kB,aAAc,SAAUvhB,GAA8C,IAAvCwhB,EAAkB1qB,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAE8F,EAAO9F,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAChE,OAAOG,KAAKkE,QAAQ2D,KAAI/E,GAAAA,OAAI9C,KAAKoG,UAAqB,YAAA,CAAE2C,MAAAA,EAAOwhB,mBAAAA,GAAsB5kB,GAASqB,MAAK,SAACwjB,GAAS,OAAK,IAAItf,GAAMsf,KAC/H,EAEDC,wBAAyB,SAAUP,GAAwB,IAAdvkB,EAAO9F,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAKrD,OAJIwqB,GAAWH,KACXA,EAAWA,EAASnjB,IAGjB/G,KAAKkE,QAAQ2D,KAAI/E,GAAAA,OAAI9C,KAAKoG,UAAiC,wBAAA,CAAE8jB,SAAAA,GAAYvkB,EACnF,EAED+kB,0BAA2B,SAAUC,EAAeT,EAAUnB,EAAMO,GAA+C,IAAjCc,EAAYvqB,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAE8F,EAAO9F,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAa7G,OAZIwqB,GAAWH,KACXA,EAAWA,EAASnjB,IAGpBsjB,GAAWtB,KACXA,EAAOA,EAAKhiB,IAGZsjB,GAAWf,KACXA,EAAeA,EAAaviB,IAGzB/G,KAAKkE,QAAQ2H,IAAG,GAAA/I,OAAI9C,KAAKoG,UAAS,iCAAA4B,EAAA,CAAmC2iB,cAAAA,EAAeT,SAAAA,EAAUnB,KAAAA,EAAMO,aAAAA,GAAiBc,GAAgBzkB,EAChJ,IAGiBilB,YAAQxlB,GACzB,SAAAwlB,IAAoD,IAAxCtkB,EAAUzG,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAEqE,EAAOrE,UAAAC,OAAAD,EAAAA,kBAAAgE,EAAE8B,EAAO9F,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAA,OAAA2D,OAAAonB,GAAAnnB,EAAAmnB,KAAAA,EACxCtkB,CAAAA,EAAYpC,EAAS,WAAU8D,EAAA,CAAItC,QAASskB,IAAoBrkB,IAC1E,CAAC,OAAAjC,EAAAknB,EAAAxlB,GAAAzB,EAAAinB,EAAA,CAAA,CAAAtqB,IAAA,aAAAC,MAED,WAAa,IAAAsqB,EACT,OAAOA,EAAI7qB,KAACsF,OAAM2kB,WAAUrnB,MAAAioB,EAAIhrB,UACpC,GAAC,CAAAS,IAAA,eAAAC,MAED,WAAe,IAAAuqB,EACX,OAAOA,EAAI9qB,KAACsF,OAAMglB,aAAY1nB,MAAAkoB,EAAIjrB,UACtC,IAAC,EAXiC+F,IActCC,GAAS,WAAY,WAAY+kB,IC1DZG,IAAAA,GAAU,WAS3B,SAAAA,EAAYC,GAAsC,ICvB3B1qB,EDuBD6oB,EAAMtpB,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EAAEorB,EAAKprB,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,IAAAA,UAAA,GAUpC,GAV4C2D,OAAAunB,GAC5C/qB,KAAKkrB,QAAU/B,EAAO+B,SAAW,KACjClrB,KAAK2F,QAAU,CACXulB,QAASlrB,KAAKkrB,QACdC,KAAMhC,EAAOgC,MAAQ,2BACrB/kB,UAAW+iB,EAAO/iB,WAAS,cAAAtD,OAAkB9C,KAAKkrB,SAClDE,UAAWJ,EACXC,MAAAA,KC7Bc,iBADC3qB,EDiCH0qB,IChCc1qB,EAAIR,OAAS,KAAOQ,EAAI+qB,WAAW,WAAa/qB,EAAI+qB,WAAW,cDiCzF,MAAM,IAAItjB,MAAM,qDAGpB/H,KAAKkE,QAAUilB,EAAOjlB,SAAWonB,GAActrB,KAAK2F,SAEpD3F,KAAKsH,SAAW,IAAIhE,GAAgB,UAAWtD,KAAKkE,SACpDlE,KAAKurB,WAAa,IAAIjoB,GAAgB,WAAYtD,KAAKkE,SACvDlE,KAAKiH,QAAU,IAAI3D,GAAgB,SAAUtD,KAAKkE,SAASsnB,cAAc1lB,IACzE9F,KAAKyrB,UAAY,IAAInoB,GAAgB,WAAYtD,KAAKkE,SAASsnB,cAAcjkB,IAC7EvH,KAAK+oB,KAAO,IAAIzlB,GAAgB,OAAQtD,KAAKkE,SAASsnB,cAAcrgB,IACpEnL,KAAK0rB,SAAW,IAAIpoB,GAAgB,WAAYtD,KAAKkE,SAASsnB,cAAcxB,GAChF,CAEA,OAAArmB,EAAAonB,EAAA,CAAA,CAAAzqB,IAAA,QAAAC,MACA,WACI,OAAOP,KAAKkE,QAAQiC,IAAI,QAC5B,GAEA,CAAA7F,IAAA,SAAAC,MACA,SAAOwG,GACH,OAAO/G,KAAKkE,QAAQiC,cAAGrD,OAAWiE,GACtC,GAEA,CAAAzG,IAAA,SAAAC,MACA,SAAO8K,GAAqB,IAAd1F,EAAO9F,UAAAC,OAAA,QAAA+D,IAAAhE,UAAA,GAAAA,UAAA,GAAG,CAAE,EACtB,OAAOG,KAAKkE,QAAQiC,IAAI,SAAQ6B,EAAA,CAAIqD,MAAAA,GAAU1F,IAAWqB,MAAK,SAACM,GAC3D,OAAO,IAAIJ,GAAWI,EAASH,KAAI,SAACwkB,GAAO,OAAK,IAAIplB,GAAQolB,EAAQ,IACxE,GACJ,GAAC,CAAArrB,IAAA,aAAAC,MAMD,SAAW2D,GACPlE,KAAKkE,QAAUA,CACnB,GAAC,CAAA5D,IAAA,aAAAC,MAED,WACI,OAAOP,KAAKkE,OAChB,IAAC,CAAA,CAAA5D,IAAA,cAAAC,MAVD,WACI,0IAAAqrB,CAAWb,EAAUhoB,MAAAC,UAAAtB,MAAAuB,KAAIpD,WAC7B,IAAC,CApD0B","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..0698959 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:C(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)||D(t,e)||x()}function R(t){return function(t){if(Array.isArray(t))return r(t)}(t)||k(t)||D(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 D(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 C(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 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-rate",n])}return w(t,dt),g(t)}();z("resource","ServiceRate",Dt);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-quote",n])}return w(t,dt),g(t,[{key:"fromPreliminary",value:function(){}},{key:"fromPayload",value:function(){}}])}();z("resource","ServiceQuote",Ct);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 De(t){return Te.isPlainObject(t)||Te.isArray(t)}function Ce(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=Ce(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(De)}(t)||(Te.isFileList(t)||Te.endsWith(r,"[]"))&&(s=Te.toArray(t)))return r=Ce(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!!De(t)||(e.append(Le(i,r,o),u(t)),!1)}var h=[],l=Object.assign(Fe,{defaultVisitor:c,convertValue:u,isVisitable:De});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(){super(...arguments)}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"number"==typeof t.size?!t.size:"number"==typeof t.length&&"function"!==r&&!t.length}const{isArray:tn}=Array;class en 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",en);const rn=new ht({count:function(t,e={}){const r={};return t&&(r.store=t),this.adapter.get(`${this.namespace}/count`,r,e)}});class nn extends en{constructor(t={},e=void 0,r={}){super(t,e,"review",r)}getMedia(){return this.getPhotos()}getPhotos(){return this.getAttribute("photos")??[]}getVideos(){return this.getMedia().filter((t=>t?.type?.startsWith("video/")))}}z("resource","Review",nn);const on=6048e5,an=Symbol.for("constructDateFrom");function sn(t,e){return"function"==typeof t?t(e):t&&"object"==typeof t&&an in t?t[an](e):t instanceof Date?new t.constructor(e):new Date(e)}function un(t,e){return sn(e||t,t)}function cn(t,e,r){const n=un(t,r?.in);return isNaN(e)?sn(r?.in||t,NaN):e?(n.setDate(n.getDate()+e),n):n}let hn={};function ln(){return hn}function dn(t,e){const r=ln(),n=e?.weekStartsOn??e?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,i=un(t,e?.in),o=i.getDay(),a=(o=o.getTime()?n+1:r.getTime()>=s.getTime()?n:n-1}function gn(t){const e=un(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 vn(t,e){const r=un(t,e?.in);return r.setHours(0,0,0,0),r}function yn(t,e,r){const[n,i]=function(t,...e){const r=sn.bind(null,e.find((t=>"object"==typeof t)));return e.map(r)}(0,t,e),o=vn(n),a=vn(i),s=+o-gn(o),u=+a-gn(a);return Math.round((s-u)/864e5)}function mn(t){return!(!((e=t)instanceof Date||"object"==typeof e&&"[object Date]"===Object.prototype.toString.call(e))&&"number"!=typeof t||isNaN(+un(t)));var e}const wn={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 bn(t){return(e={})=>{const r=e.width?String(e.width):t.defaultWidth;return t.formats[r]||t.formats[t.defaultWidth]}}const kn={date:bn({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:bn({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:bn({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},xn={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function An(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 En(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 Sn;const On={code:"en-US",formatDistance:(t,e,r)=>{let n;const i=wn[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:kn,formatRelative:(t,e,r,n)=>xn[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:An({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:An({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:An({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:An({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:An({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:(Sn={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:t=>parseInt(t,10)},(t,e={})=>{const r=t.match(Sn.matchPattern);if(!r)return null;const n=r[0],i=t.match(Sn.parsePattern);if(!i)return null;let o=Sn.valueCallback?Sn.valueCallback(i[0]):i[0];return o=e.valueCallback?e.valueCallback(o):o,{value:o,rest:t.slice(n.length)}}),era:En({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:En({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:En({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:En({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:En({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 Tn(t,e){const r=un(t,e?.in),n=yn(r,function(t,e){const r=un(t,e?.in);return r.setFullYear(r.getFullYear(),0,1),r.setHours(0,0,0,0),r}(r));return n+1}function Rn(t,e){const r=un(t,e?.in),n=+fn(r)-+function(t,e){const r=pn(t,e),n=sn(t,0);return n.setFullYear(r,0,4),n.setHours(0,0,0,0),fn(n)}(r);return Math.round(n/on)+1}function Pn(t,e){const r=un(t,e?.in),n=r.getFullYear(),i=ln(),o=e?.firstWeekContainsDate??e?.locale?.options?.firstWeekContainsDate??i.firstWeekContainsDate??i.locale?.options?.firstWeekContainsDate??1,a=sn(e?.in||t,0);a.setFullYear(n+1,0,o),a.setHours(0,0,0,0);const s=dn(a,e),u=sn(e?.in||t,0);u.setFullYear(n,0,o),u.setHours(0,0,0,0);const c=dn(u,e);return+r>=+s?n+1:+r>=+c?n:n-1}function jn(t,e){const r=un(t,e?.in),n=+dn(r,e)-+function(t,e){const r=ln(),n=e?.firstWeekContainsDate??e?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,i=Pn(t,e),o=sn(e?.in||t,0);return o.setFullYear(i,0,n),o.setHours(0,0,0,0),dn(o,e)}(r,e);return Math.round(n/on)+1}function Dn(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 Dn("yy"===e?n%100:n,e.length)},M(t,e){const r=t.getMonth();return"M"===e?String(r+1):Dn(r+1,2)},d:(t,e)=>Dn(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)=>Dn(t.getHours()%12||12,e.length),H:(t,e)=>Dn(t.getHours(),e.length),m:(t,e)=>Dn(t.getMinutes(),e.length),s:(t,e)=>Dn(t.getSeconds(),e.length),S(t,e){const r=e.length,n=t.getMilliseconds();return Dn(Math.trunc(n*Math.pow(10,r-3)),e.length)}},Ln="midnight",Fn="noon",Nn="morning",qn="afternoon",_n="evening",Mn="night",$n={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=Pn(t,n),o=i>0?i:1-i;if("YY"===e){return Dn(o%100,2)}return"Yo"===e?r.ordinalNumber(o,{unit:"year"}):Dn(o,e.length)},R:function(t,e){return Dn(pn(t),e.length)},u:function(t,e){return Dn(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 Dn(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 Dn(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 Dn(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=jn(t,n);return"wo"===e?r.ordinalNumber(i,{unit:"week"}):Dn(i,e.length)},I:function(t,e,r){const n=Rn(t);return"Io"===e?r.ordinalNumber(n,{unit:"week"}):Dn(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=Tn(t);return"Do"===e?r.ordinalNumber(n,{unit:"dayOfYear"}):Dn(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 Dn(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 Dn(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 Dn(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?Fn:0===n?Ln: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?_n:n>=12?qn:n>=4?Nn:Mn,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"}):Dn(n,e.length)},k:function(t,e,r){let n=t.getHours();return 0===n&&(n=24),"ko"===e?r.ordinalNumber(n,{unit:"hour"}):Dn(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 Hn(n);case"XXXX":case"XX":return In(n);default:return In(n,":")}},x:function(t,e,r){const n=t.getTimezoneOffset();switch(e){case"x":return Hn(n);case"xxxx":case"xx":return In(n);default:return In(n,":")}},O:function(t,e,r){const n=t.getTimezoneOffset();switch(e){case"O":case"OO":case"OOO":return"GMT"+zn(n,":");default:return"GMT"+In(n,":")}},z:function(t,e,r){const n=t.getTimezoneOffset();switch(e){case"z":case"zz":case"zzz":return"GMT"+zn(n,":");default:return"GMT"+In(n,":")}},t:function(t,e,r){return Dn(Math.trunc(+t/1e3),e.length)},T:function(t,e,r){return Dn(+t,e.length)}};function zn(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+Dn(o,2)}function Hn(t,e){if(t%60==0){return(t>0?"-":"+")+Dn(Math.abs(t)/60,2)}return In(t,e)}function In(t,e=""){const r=t>0?"-":"+",n=Math.abs(t);return r+Dn(Math.trunc(n/60),2)+e+Dn(n%60,2)}const Bn=(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"})}},Un=(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"})}},Wn={p:Un,P:(t,e)=>{const r=t.match(/(P+)(p+)?/)||[],n=r[1],i=r[2];if(!i)return Bn(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}}",Bn(n,e)).replace("{{time}}",Un(i,e))}},Yn=/^D+$/,Qn=/^Y+$/,Gn=["D","DD","YY","YYYY"];function Jn(t){return Yn.test(t)}function Xn(t){return Qn.test(t)}function Kn(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),Gn.includes(t))throw new RangeError(n)}const Vn=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Zn=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,ti=/^'([^]*?)'?$/,ei=/''/g,ri=/[a-zA-Z]/;function ni(t,e,r){const n=ln(),i=n.locale??On,o=n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,a=n.weekStartsOn??n.locale?.options?.weekStartsOn??0,s=un(t,r?.in);if(!mn(s))throw new RangeError("Invalid time value");let u=e.match(Zn).map((t=>{const e=t[0];if("p"===e||"P"===e){return(0,Wn[e])(t,i.formatLong)}return t})).join("").match(Vn).map((t=>{if("''"===t)return{isToken:!1,value:"'"};const e=t[0];if("'"===e)return{isToken:!1,value:ii(t)};if($n[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}}));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;(Xn(n)||Jn(n))&&Kn(n,e,String(t));return(0,$n[n[0]])(s,n,i.localize,c)})).join("")}function ii(t){const e=t.match(ti);return e?e[1].replace(ei,"'"):t}class oi{subPriority=0;validate(t,e){return!0}}class ai extends oi{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 si extends oi{priority=10;subPriority=-1;constructor(t,e){super(),this.context=t||(t=>sn(e,t))}set(t,e){return e.timestampIsSet?t:sn(t,function(t,e){const r=function(t){return"function"==typeof t&&t.prototype?.constructor===t}(e)?new e(0):sn(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 ui{run(t,e,r,n){const i=this.parse(t,e,r,n);return i?{setter:new ai(i.value,this.validate,this.set,this.priority,this.subPriority),rest:i.rest}:null}validate(t,e,r){return!0}}const ci=/^(1[0-2]|0?\d)/,hi=/^(3[0-1]|[0-2]?\d)/,li=/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,di=/^(5[0-3]|[0-4]?\d)/,fi=/^(2[0-3]|[0-1]?\d)/,pi=/^(2[0-4]|[0-1]?\d)/,gi=/^(1[0-1]|0?\d)/,vi=/^(1[0-2]|0?\d)/,yi=/^[0-5]?\d/,mi=/^[0-5]?\d/,wi=/^\d/,bi=/^\d{1,2}/,ki=/^\d{1,3}/,xi=/^\d{1,4}/,Ai=/^-?\d+/,Ei=/^-?\d/,Si=/^-?\d{1,2}/,Oi=/^-?\d{1,3}/,Ti=/^-?\d{1,4}/,Ri=/^([+-])(\d{2})(\d{2})?|Z/,Pi=/^([+-])(\d{2})(\d{2})|Z/,ji=/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,Di=/^([+-])(\d{2}):(\d{2})|Z/,Ci=/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/;function Li(t,e){return t?{value:e(t.value),rest:t.rest}:t}function Fi(t,e){const r=e.match(t);return r?{value:parseInt(r[0],10),rest:e.slice(r[0].length)}:null}function Ni(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 qi(t){return Fi(Ai,t)}function _i(t,e){switch(t){case 1:return Fi(wi,e);case 2:return Fi(bi,e);case 3:return Fi(ki,e);case 4:return Fi(xi,e);default:return Fi(new RegExp("^\\d{1,"+t+"}"),e)}}function Mi(t,e){switch(t){case 1:return Fi(Ei,e);case 2:return Fi(Si,e);case 3:return Fi(Oi,e);case 4:return Fi(Ti,e);default:return Fi(new RegExp("^-?\\d{1,"+t+"}"),e)}}function $i(t){switch(t){case"morning":return 4;case"evening":return 17;case"pm":case"noon":case"afternoon":return 12;default:return 0}}function zi(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 Hi(t){return t%400==0||t%4==0&&t%100!=0}const Ii=[31,28,31,30,31,30,31,31,30,31,30,31],Bi=[31,29,31,30,31,30,31,31,30,31,30,31];function Ui(t,e,r){const n=ln(),i=r?.weekStartsOn??r?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,o=un(t,r?.in),a=o.getDay(),s=7-i;return cn(o,e<0||e>6?e-(a+s)%7:((e%7+7)%7+s)%7-(a+s)%7,r)}function Wi(t,e,r){const n=un(t,r?.in),i=function(t,e){const r=un(t,e?.in).getDay();return 0===r?7:r}(n,r);return cn(n,e-i,r)}const Yi={G:new class extends ui{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 ui{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 Li(_i(4,t),n);case"yo":return Li(r.ordinalNumber(t,{unit:"year"}),n);default:return Li(_i(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=zi(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 ui{priority=130;parse(t,e,r){const n=t=>({year:t,isTwoDigitYear:"YY"===e});switch(e){case"Y":return Li(_i(4,t),n);case"Yo":return Li(r.ordinalNumber(t,{unit:"year"}),n);default:return Li(_i(e.length,t),n)}}validate(t,e){return e.isTwoDigitYear||e.year>0}set(t,e,r,n){const i=Pn(t,n);if(r.isTwoDigitYear){const e=zi(r.year,i);return t.setFullYear(e,0,n.firstWeekContainsDate),t.setHours(0,0,0,0),dn(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),dn(t,n)}incompatibleTokens=["y","R","u","Q","q","M","L","I","d","D","i","t","T"]},R:new class extends ui{priority=130;parse(t,e){return Mi("R"===e?4:e.length,t)}set(t,e,r){const n=sn(t,0);return n.setFullYear(r,0,4),n.setHours(0,0,0,0),fn(n)}incompatibleTokens=["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"]},u:new class extends ui{priority=130;parse(t,e){return Mi("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 ui{priority=120;parse(t,e,r){switch(e){case"Q":case"QQ":return _i(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 ui{priority=120;parse(t,e,r){switch(e){case"q":case"qq":return _i(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 ui{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 Li(Fi(ci,t),n);case"MM":return Li(_i(2,t),n);case"Mo":return Li(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 ui{priority=110;parse(t,e,r){const n=t=>t-1;switch(e){case"L":return Li(Fi(ci,t),n);case"LL":return Li(_i(2,t),n);case"Lo":return Li(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 ui{priority=100;parse(t,e,r){switch(e){case"w":return Fi(di,t);case"wo":return r.ordinalNumber(t,{unit:"week"});default:return _i(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,e,r,n){return dn(function(t,e,r){const n=un(t,r?.in),i=jn(n,r)-e;return n.setDate(n.getDate()-7*i),un(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 ui{priority=100;parse(t,e,r){switch(e){case"I":return Fi(di,t);case"Io":return r.ordinalNumber(t,{unit:"week"});default:return _i(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,e,r){return fn(function(t,e,r){const n=un(t,r?.in),i=Rn(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 ui{priority=90;subPriority=1;parse(t,e,r){switch(e){case"d":return Fi(hi,t);case"do":return r.ordinalNumber(t,{unit:"date"});default:return _i(e.length,t)}}validate(t,e){const r=Hi(t.getFullYear()),n=t.getMonth();return r?e>=1&&e<=Bi[n]:e>=1&&e<=Ii[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 ui{priority=90;subpriority=1;parse(t,e,r){switch(e){case"D":case"DD":return Fi(li,t);case"Do":return r.ordinalNumber(t,{unit:"date"});default:return _i(e.length,t)}}validate(t,e){return Hi(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 ui{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=Ui(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["D","i","e","c","t","T"]},e:new class extends ui{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 Li(_i(e.length,t),i);case"eo":return Li(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=Ui(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 ui{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 Li(_i(e.length,t),i);case"co":return Li(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=Ui(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 ui{priority=90;parse(t,e,r){const n=t=>0===t?7:t;switch(e){case"i":case"ii":return _i(e.length,t);case"io":return r.ordinalNumber(t,{unit:"day"});case"iii":return Li(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 Li(r.day(t,{width:"narrow",context:"formatting"}),n);case"iiiiii":return Li(r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n);default:return Li(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=Wi(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 ui{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($i(r),0,0,0),t}incompatibleTokens=["b","B","H","k","t","T"]},b:new class extends ui{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($i(r),0,0,0),t}incompatibleTokens=["a","B","H","k","t","T"]},B:new class extends ui{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($i(r),0,0,0),t}incompatibleTokens=["a","b","t","T"]},h:new class extends ui{priority=70;parse(t,e,r){switch(e){case"h":return Fi(vi,t);case"ho":return r.ordinalNumber(t,{unit:"hour"});default:return _i(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 ui{priority=70;parse(t,e,r){switch(e){case"H":return Fi(fi,t);case"Ho":return r.ordinalNumber(t,{unit:"hour"});default:return _i(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 ui{priority=70;parse(t,e,r){switch(e){case"K":return Fi(gi,t);case"Ko":return r.ordinalNumber(t,{unit:"hour"});default:return _i(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 ui{priority=70;parse(t,e,r){switch(e){case"k":return Fi(pi,t);case"ko":return r.ordinalNumber(t,{unit:"hour"});default:return _i(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 ui{priority=60;parse(t,e,r){switch(e){case"m":return Fi(yi,t);case"mo":return r.ordinalNumber(t,{unit:"minute"});default:return _i(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 ui{priority=50;parse(t,e,r){switch(e){case"s":return Fi(mi,t);case"so":return r.ordinalNumber(t,{unit:"second"});default:return _i(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 ui{priority=30;parse(t,e){return Li(_i(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 ui{priority=10;parse(t,e){switch(e){case"X":return Ni(Ri,t);case"XX":return Ni(Pi,t);case"XXXX":return Ni(ji,t);case"XXXXX":return Ni(Ci,t);default:return Ni(Di,t)}}set(t,e,r){return e.timestampIsSet?t:sn(t,t.getTime()-gn(t)-r)}incompatibleTokens=["t","T","x"]},x:new class extends ui{priority=10;parse(t,e){switch(e){case"x":return Ni(Ri,t);case"xx":return Ni(Pi,t);case"xxxx":return Ni(ji,t);case"xxxxx":return Ni(Ci,t);default:return Ni(Di,t)}}set(t,e,r){return e.timestampIsSet?t:sn(t,t.getTime()-gn(t)-r)}incompatibleTokens=["t","T","X"]},t:new class extends ui{priority=40;parse(t){return qi(t)}set(t,e,r){return[sn(t,1e3*r),{timestampIsSet:!0}]}incompatibleTokens="*"},T:new class extends ui{priority=20;parse(t){return qi(t)}set(t,e,r){return[sn(t,r),{timestampIsSet:!0}]}incompatibleTokens="*"}},Qi=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Gi=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Ji=/^'([^]*?)'?$/,Xi=/''/g,Ki=/\S/,Vi=/[a-zA-Z]/;function Zi(t,e,r,n){const i=()=>sn(r,NaN),o=Object.assign({},ln()),a=o.locale??On,s=o.firstWeekContainsDate??o.locale?.options?.firstWeekContainsDate??1,u=o.weekStartsOn??o.locale?.options?.weekStartsOn??0;if(!e)return t?i():un(r,n?.in);const c={firstWeekContainsDate:s,weekStartsOn:u,locale:a},h=[new si(n?.in,r)],l=e.match(Gi).map((t=>{const e=t[0];if(e in Wn){return(0,Wn[e])(t,a.formatLong)}return t})).join("").match(Qi),d=[];for(let r of l){Xn(r)&&Kn(r,e,t),Jn(r)&&Kn(r,e,t);const n=r[0],o=Yi[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(Vi))throw new RangeError("Format string contains an unescaped latin alphabet character `"+n+"`");if("''"===r?r="'":"'"===n&&(r=r.match(Ji)[1].replace(Xi,"'")),0!==t.indexOf(r))return i();t=t.slice(r.length)}}if(t.length>0&&Ki.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=un(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 to extends en{constructor(t={},e=void 0,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(!mn(t)||!mn(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 Zi(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 Zi(t,e?"HH:mm:ss":"HH:mm",new Date)}get humanReadableHoursRange(){return mn(this.startDateInstance)&&mn(this.endDateInstance)?`${ni(this.startDateInstance,"p")} - ${ni(this.endDateInstance,"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",to);class eo extends en{constructor(t={},e=void 0,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(){return new et((this.getAttribute("hours")||[]).map((t=>new to(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");return"string"==typeof t?t:this.storeData?.id||this.storeData?.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=ni(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 nn(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 eo(t,this.adapter)))))))}getLocation(t){return this.adapter.get(`locations/${t}`,{store:this.id}).then((t=>new eo(t,this.adapter)))}getPaymentGateways(t={}){return this.adapter.get("gateways",t).then((t=>new et(t.map((t=>new ro(t,this.adapter))))))}getPaymentGateway(t){return this.adapter.get(`gateways/${t}`).then((t=>new ro(t,this.adapter)))}}z("resource","Store",no);class io extends en{constructor(t={},e=void 0,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 no(t,this.adapter):null}getReviews(){return this.adapter.get("reviews",{store:this.id}).then((t=>new et(t.map((t=>new nn(t,this.adapter))))))}}z("resource","Product",io);class oo extends en{constructor(t={},e=void 0,r={}){super(t,e,"category",r)}getProducts(){return this.adapter.get("products",{category:this.id}).then((t=>new et(t.map((t=>new io(t,this.adapter))))))}}z("resource","Category",oo);const ao=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 so extends en{constructor(t={},e=void 0,r={}){super(t,e,"customer",{actions:ao,...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(){return this.getAttribute("token")}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",so);const{isArray:uo}=Array,co=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 ho extends en{constructor(t={},e=void 0,r={}){super(t,e,"cart",{actions:co,...r})}add(t,e=1,r={},n={}){return t instanceof io&&(t=t.id),this.store.add(this.id,t,e,r,n)}update(t,e,r={},n={}){return this.store.update(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 uo(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",ho);class lo extends en{constructor(t={},e=void 0,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",no,t)}async getStoreLocations(t={}){return this.getResourceCollection("store-locations",eo,t)}async getCategories(t={}){return this.getResourceCollection("categories",oo,t)}async search(t,e={}){return this.getResourceCollection("search",io,{query:t,with_store:!0,...e})}async lookupStore(t){const e=await this.adapter.get(`lookup/${t}`);return new no(e,this.adapter)}async getReviews(t,e={}){return this.getResourceCollection("reviews",nn,{store:t,...e})}async getPaymentGateways(t={}){return this.getResourceCollection("gateways",ro,t)}}z("resource","Network",lo);class fo extends Ct{constructor(t={},e=void 0,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(){return this.fetchServiceQuotesFromCart(...arguments)}async fetchServiceQuotesFromCart(t,e,r,n="storefront",i=!1){t?.id&&(t=t.id),e?.id&&(e=e.id),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 tn(o)?new et(o.map((t=>new fo(t,this.adapter)))):new fo(o,this.adapter)}static async getFromCart(t,e,r,n,i="storefront",o=!1){return new fo(t).fetchServiceQuotesFromCart(e,r,n,i,o)}}z("resource","DeliveryServiceQuote",fo);class po extends gt{constructor(t={},e=void 0,r={}){super(t,e,r)}}z("resource","Order",po);const go=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 po(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 vo extends en{constructor(t={},e=void 0,r={}){super(t,e,"checkout",{actions:go,...r})}initialize(){return this.store.initialize(...arguments)}captureOrder(){return this.store.captureOrder(...arguments)}createStripeSetupIntent(){return this.store.createStripeSetupIntent(...arguments)}updateStripePaymentIntent(){return this.store.updateStripePaymentIntent(...arguments)}getStatus(){return this.store.getStatus(...arguments)}captureQPay(){return this.store.captureQPay(...arguments)}captureQPayCallback(){return this.store.captureQPayCallback(...arguments)}}z("resource","Checkout",vo);class yo extends en{constructor(t={},e=void 0,r={}){super(t,e,"food-truck",r)}}function mo(t){return lt(t)?t.id:t}z("resource","FoodTruck",yo);const wo=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:mo(t),...e},r)},getReceipt:function(t,e={},r={}){return this.adapter.post(`${this.namespace}/receipt`,{order:mo(t),...e},r)}});class bo{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(rn),this.customers=new Kr("customer",this.adapter).extendActions(ao),this.cart=new Kr("cart",this.adapter).extendActions(co),this.checkout=new Kr("checkout",this.adapter).extendActions(go),this.orders=new Kr("order",this.adapter).extendActions(wo),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 io(t,this.adapter))))))}hydrateOwner(t={}){return!0===t?.is_network?new lo(t,this.adapter):new no(t,this.adapter)}static newInstance(){return new bo(...arguments)}setAdapter(t){return this.adapter=t,this.initializeStores()}getAdapter(){return this.adapter}}t.Cart=ho,t.Category=oo,t.Checkout=vo,t.Customer=so,t.DeliveryServiceQuote=fo,t.FoodTruck=yo,t.Network=lo,t.Order=po,t.PaymentGateway=ro,t.Product=io,t.Review=nn,t.Store=no,t.StoreHour=to,t.StoreLocation=eo,t.default=bo,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..59282bd 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.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.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.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/order.js","../src/resources/checkout.js","../src/resources/food-truck.js","../src/resources/order-actions.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 const objectType = typeof obj;\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\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 {import('@fleetbase/sdk').Adapter} adapter\n * @return {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 = undefined, options = {}) {\n super(attributes, adapter, 'review', options);\n }\n\n getMedia() {\n return this.getPhotos();\n }\n\n getPhotos() {\n return this.getAttribute('photos') ?? [];\n }\n\n getVideos() {\n return this.getMedia().filter((media) => media?.type?.startsWith('video/'));\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 * **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","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 = undefined, 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\n if (!isValid(start) || !isValid(end)) {\n return false;\n }\n\n const diff = Math.abs(start.getTime() - end.getTime());\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 if (typeof start !== 'string') {\n return null;\n }\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 if (typeof end !== 'string') {\n return null;\n }\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.getAttribute('start')} - ${this.getAttribute('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 = undefined, 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.length > 0 && 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 if (schedule[hour.day]) {\n schedule[hour.day].pushObject(hour);\n }\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 = undefined, 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 get isQPayGateway() {\n return this.type === 'qpay' || this.code === 'qpay';\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 = undefined, 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 getTags(params = {}) {\n return this.adapter.get('tags', params);\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, this.adapter);\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 = undefined, 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 images() {\n return this.getAttribute('images') ?? [];\n }\n\n videos() {\n return this.getAttribute('videos') ?? [];\n }\n\n hours() {\n return this.getAttribute('hours') ?? [];\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 = undefined, 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 = undefined, 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 {import('@fleetbase/sdk').Adapter} adapter\n * @return {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 return this.performAuthorizedRequest('customers/register-device', { token, platform }, 'POST');\n }\n\n performAuthorizedRequest(endpoint, params = {}, method = 'GET', options = {}) {\n const requestOptions = {\n ...options,\n headers: {\n ...options.headers,\n 'Customer-Token': this.token,\n },\n };\n\n return this.adapter[method.toLowerCase()](endpoint, params, requestOptions);\n }\n\n async getSavedPlaces() {\n const places = await this.performAuthorizedRequest('customers/places');\n return new Collection(places.map((attributes) => new Place(attributes, this.adapter)));\n }\n\n async getOrderHistory(params = {}) {\n const orders = await this.performAuthorizedRequest('customers/orders', params);\n return new Collection(orders.map((attributes) => new Order(attributes, this.adapter)));\n }\n\n getStripeEphemeralKey(params = {}) {\n return this.performAuthorizedRequest('customers/stripe-ephemeral-key', params, 'POST');\n }\n\n getStripeSetupIntent(params = {}) {\n return this.performAuthorizedRequest('customers/stripe-setup-intent', params, 'POST');\n }\n\n startAccountClosure(params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/account-closure', params, 'POST', options);\n }\n\n confirmAccountClosure(code, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/confirm-account-closure', { code, ...params }, 'POST', options);\n }\n\n requestPhoneVerification(phone, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/request-phone-verification', { phone, ...params }, 'POST', options);\n }\n\n verifyPhoneNumber(code, phone, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/verify-phone-number', { code, phone, ...params }, 'POST', options);\n }\n\n updateContactAlias(attributes = {}, options = {}) {\n return this.performAuthorizedRequest(`contacts/${this.id}`, attributes, 'PUT', options).then((response) => {\n this.syncAttributes(response);\n return this;\n });\n }\n}\n\nregister('resource', 'Customer', Customer);\n","export function isPhone(phone = '') {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/.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 = undefined, 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 return this.contents().reduce((subtotal, cartItem) => subtotal + Number(cartItem?.subtotal || 0), 0);\n }\n\n contents() {\n const items = this.getAttribute('items', []);\n return isArray(items) ? items : [];\n }\n\n hasProduct(productId) {\n return this.contents().findIndex((cartItem) => cartItem.product_id === productId) !== -1;\n }\n\n get isEmpty() {\n return this.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 = undefined, 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 = undefined, 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 || (attributes && typeof attributes.get === 'function' && typeof attributes.post === 'function')) {\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 {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 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 }\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 { Order as FleetbaseOrder, register } from '@fleetbase/sdk';\n\nexport default class Order extends FleetbaseOrder {\n constructor(attributes = {}, adapter = undefined, options = {}) {\n super(attributes, adapter, options);\n }\n}\n\nregister('resource', 'Order', Order);\n","import Resource from '../resource.js';\nimport Order from './order.js';\nimport { 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, this.adapter));\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 getStatus: function (checkout, token, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.get(`${this.namespace}/status`, { checkout, token }, options);\n },\n\n captureQPay: function (checkout, params = {}, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.post(`${this.namespace}/capture-qpay`, { checkout, ...params }, options);\n },\n\n captureQPayCallback: function (checkout, params = {}, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.get(`${this.namespace}/capture-qpay`, { checkout, ...params }, options);\n },\n});\n\nexport default class Checkout extends Resource {\n constructor(attributes = {}, adapter = undefined, 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 createStripeSetupIntent() {\n return this.store.createStripeSetupIntent(...arguments);\n }\n\n updateStripePaymentIntent() {\n return this.store.updateStripePaymentIntent(...arguments);\n }\n\n getStatus() {\n return this.store.getStatus(...arguments);\n }\n\n captureQPay() {\n return this.store.captureQPay(...arguments);\n }\n\n captureQPayCallback() {\n return this.store.captureQPayCallback(...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 = undefined, options = {}) {\n super(attributes, adapter, 'food-truck', options);\n }\n}\n\nregister('resource', 'FoodTruck', FoodTruck);\n","import { StoreActions, isResource } from '@fleetbase/sdk';\n\nfunction idFor(value) {\n return isResource(value) ? value.id : value;\n}\n\nexport const orderActions = new StoreActions({\n create: undefined,\n update: undefined,\n findAll: undefined,\n query: undefined,\n queryRecord: undefined,\n\n completePickup: function (order, params = {}, options = {}) {\n return this.adapter.put(`${this.namespace}/picked-up`, { order: idFor(order), ...params }, options);\n },\n\n getReceipt: function (order, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/receipt`, { order: idFor(order), ...params }, options);\n },\n});\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, Order } 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 { orderActions } from './resources/order-actions.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 this.orders = new StorefrontStore('order', this.adapter).extendActions(orderActions);\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, Order, 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":["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","undefined","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","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","storeKey","detectAdapter","initializeStores","categories","foodTrucks","customers","about","hydrateOwner","getOwner","lookupResource","is_network","newInstance"],"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/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..da2a286 --- /dev/null +++ b/dist/cjs/storefront.cjs @@ -0,0 +1,6579 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +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() { + super(...arguments); + } + + 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.size === 'number') { + return !obj.size; + } + + if (typeof obj.length === 'number' && objectType !== 'function') { + return !obj.length; + } + + return false; +} + +const { isArray: isArray$1 } = Array; + +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 = undefined, options = {}) { + super(attributes, adapter, 'review', options); + } + + getMedia() { + return this.getPhotos(); + } + + getPhotos() { + return this.getAttribute('photos') ?? []; + } + + getVideos() { + return this.getMedia().filter((media) => media?.type?.startsWith('video/')); + } +} + +q('resource', 'Review', Review); + +/** + * @module constants + * @summary Useful constants + * @description + * Collection of useful date constants. + * + * The constants could be imported from `date-fns/constants`: + * + * ```ts + * import { maxTime, minTime } from "./constants/date-fns/constants"; + * + * function isAllowedTime(time) { + * return time <= maxTime && time >= minTime; + * } + * ``` + */ + + +/** + * @constant + * @name millisecondsInWeek + * @summary Milliseconds in 1 week. + */ +const millisecondsInWeek = 604800000; + +/** + * @constant + * @name millisecondsInDay + * @summary Milliseconds in 1 day. + */ +const millisecondsInDay = 86400000; + +/** + * @constant + * @name millisecondsInMinute + * @summary Milliseconds in 1 minute + */ +const millisecondsInMinute = 60000; + +/** + * @constant + * @name millisecondsInHour + * @summary Milliseconds in 1 hour + */ +const millisecondsInHour = 3600000; + +/** + * @constant + * @name millisecondsInSecond + * @summary Milliseconds in 1 second + */ +const millisecondsInSecond = 1000; + +/** + * @constant + * @name constructFromSymbol + * @summary Symbol enabling Date extensions to inherit properties from the reference date. + * + * The symbol is used to enable the `constructFrom` function to construct a date + * using a reference date and a value. It allows to transfer extra properties + * from the reference date to the new date. It's useful for extensions like + * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as + * a constructor argument. + */ +const constructFromSymbol = Symbol.for("constructDateFrom"); + +/** + * @name constructFrom + * @category Generic Helpers + * @summary Constructs a date using the reference date and the value + * + * @description + * The function constructs a new date using the constructor from the reference + * date and the given value. It helps to build generic functions that accept + * date extensions. + * + * It defaults to `Date` if the passed reference date is a number or a string. + * + * Starting from v3.7.0, it allows to construct a date using `[Symbol.for("constructDateFrom")]` + * enabling to transfer extra properties from the reference date to the new date. + * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz) + * that accept a time zone as a constructor argument. + * + * @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). + * + * @param date - The reference date to take constructor from + * @param value - The value to create the date + * + * @returns Date initialized using the given date and value + * + * @example + * import { constructFrom } from "./constructFrom/date-fns"; + * + * // A function that clones a date preserving the original type + * function cloneDate(date: DateType): DateType { + * return constructFrom( + * date, // Use constructor from the given date + * date.getTime() // Use the date value to create a new date + * ); + * } + */ +function constructFrom(date, value) { + if (typeof date === "function") return date(value); + + if (date && typeof date === "object" && constructFromSymbol in date) + return date[constructFromSymbol](value); + + if (date instanceof Date) return new date.constructor(value); + + return new Date(value); +} + +/** + * @name toDate + * @category Common Helpers + * @summary Convert the given argument to an instance of Date. + * + * @description + * Convert the given argument to an instance of Date. + * + * If the argument is an instance of Date, the function returns its clone. + * + * If the argument is a number, it is treated as a timestamp. + * + * If the argument is none of the above, the function returns Invalid Date. + * + * Starting from v3.7.0, it clones a date using `[Symbol.for("constructDateFrom")]` + * enabling to transfer extra properties from the reference date to the new date. + * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz) + * that accept a time zone as a constructor argument. + * + * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`. + * + * @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). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. + * + * @param argument - The value to convert + * + * @returns The parsed date in the local time zone + * + * @example + * // Clone the date: + * const result = toDate(new Date(2014, 1, 11, 11, 30, 30)) + * //=> Tue Feb 11 2014 11:30:30 + * + * @example + * // Convert the timestamp to date: + * const result = toDate(1392098430000) + * //=> Tue Feb 11 2014 11:30:30 + */ +function toDate(argument, context) { + // [TODO] Get rid of `toDate` or `constructFrom`? + return constructFrom(context || argument, argument); +} + +/** + * The {@link addDays} function options. + */ + +/** + * @name addDays + * @category Day Helpers + * @summary Add the specified number of days to the given date. + * + * @description + * Add the specified number of days to the given date. + * + * **You don't need date-fns\***: + * + * Temporal has a built-in `add` method on all its classes: + * + * - [`Temporal.Instant.prototype.add()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/Instant/add) + * - [`Temporal.PlainDate.prototype.add()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainDate/add) + * - [`Temporal.PlainDateTime.prototype.add()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainDateTime/add) + * - [`Temporal.PlainTime.prototype.add()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/add) + * - [`Temporal.PlainYearMonth.prototype.add()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/add) + * - [`Temporal.ZonedDateTime.prototype.add()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/add) + * + * \* **Not really**, see: https://date-fns.org/you-dont-need-date-fns + * + * @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). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. + * + * @param date - The date to be changed + * @param amount - The amount of days to be added. + * @param options - An object with options + * + * @returns The new date with the days added + * + * @example + * // Add 10 days to 1 September 2014: + * const result = addDays(new Date(2014, 8, 1), 10) + * //=> Thu Sep 11 2014 00:00:00 + * + * @example + * // Using Temporal: + * // Add 10 days to 1 September 2014: + * Temporal.PlainDate.from("2014-09-01").add({ days: 10 }).toString(); + * //=> "2014-09-11" + */ +function addDays(date, amount, options) { + const _date = toDate(date, options?.in); + if (isNaN(amount)) return constructFrom(options?.in || date, NaN); + + // If 0 days, no-op to avoid changing times in the hour before end of DST + if (!amount) return _date; + + _date.setDate(_date.getDate() + amount); + return _date; +} + +let defaultOptions = {}; + +function getDefaultOptions$1() { + return defaultOptions; +} + +/** + * The {@link startOfWeek} function options. + */ + +/** + * @name startOfWeek + * @category Week Helpers + * @summary Return the start of a week for the given date. + * + * @description + * Return the start of a week for the given date. + * The result will be in the local timezone. + * + * @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). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. + * + * @param date - The original date + * @param options - An object with options + * + * @returns The start of a week + * + * @example + * // The start of a week for 2 September 2014 11:55:00: + * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0)) + * //=> Sun Aug 31 2014 00:00:00 + * + * @example + * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00: + * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 }) + * //=> Mon Sep 01 2014 00:00:00 + */ +function startOfWeek(date, options) { + const defaultOptions = getDefaultOptions$1(); + const weekStartsOn = + options?.weekStartsOn ?? + options?.locale?.options?.weekStartsOn ?? + defaultOptions.weekStartsOn ?? + defaultOptions.locale?.options?.weekStartsOn ?? + 0; + + const _date = toDate(date, options?.in); + const day = _date.getDay(); + const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn; + + _date.setDate(_date.getDate() - diff); + _date.setHours(0, 0, 0, 0); + return _date; +} + +/** + * The {@link startOfISOWeek} function options. + */ + +/** + * @name startOfISOWeek + * @category ISO Week Helpers + * @summary Return the start of an ISO week for the given date. + * + * @description + * Return the start of an ISO week for the given date. + * The result will be in the local timezone. + * + * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date + * + * @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). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. + * + * @param date - The original date + * @param options - An object with options + * + * @returns The start of an ISO week + * + * @example + * // The start of an ISO week for 2 September 2014 11:55:00: + * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0)) + * //=> Mon Sep 01 2014 00:00:00 + */ +function startOfISOWeek(date, options) { + return startOfWeek(date, { ...options, weekStartsOn: 1 }); +} + +/** + * The {@link getISOWeekYear} function options. + */ + +/** + * @name getISOWeekYear + * @category ISO Week-Numbering Year Helpers + * @summary Get the ISO week-numbering year of the given date. + * + * @description + * Get the ISO week-numbering year of the given date, + * which always starts 3 days before the year's first Thursday. + * + * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date + * + * @param date - The given date + * + * @returns The ISO week-numbering year + * + * @example + * // Which ISO-week numbering year is 2 January 2005? + * const result = getISOWeekYear(new Date(2005, 0, 2)) + * //=> 2004 + */ +function getISOWeekYear(date, options) { + const _date = toDate(date, options?.in); + const year = _date.getFullYear(); + + const fourthOfJanuaryOfNextYear = constructFrom(_date, 0); + fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4); + fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0); + const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear); + + const fourthOfJanuaryOfThisYear = constructFrom(_date, 0); + fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4); + fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0); + const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear); + + if (_date.getTime() >= startOfNextYear.getTime()) { + return year + 1; + } else if (_date.getTime() >= startOfThisYear.getTime()) { + return year; + } else { + return year - 1; + } +} + +/** + * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds. + * They usually appear for dates that denote time before the timezones were introduced + * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891 + * and GMT+01:00:00 after that date) + * + * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above, + * which would lead to incorrect calculations. + * + * This function returns the timezone offset in milliseconds that takes seconds in account. + */ +function getTimezoneOffsetInMilliseconds(date) { + const _date = toDate(date); + const utcDate = new Date( + Date.UTC( + _date.getFullYear(), + _date.getMonth(), + _date.getDate(), + _date.getHours(), + _date.getMinutes(), + _date.getSeconds(), + _date.getMilliseconds(), + ), + ); + utcDate.setUTCFullYear(_date.getFullYear()); + return +date - +utcDate; +} + +function normalizeDates(context, ...dates) { + const normalize = constructFrom.bind( + null, + dates.find((date) => typeof date === "object"), + ); + return dates.map(normalize); +} + +/** + * The {@link startOfDay} function options. + */ + +/** + * @name startOfDay + * @category Day Helpers + * @summary Return the start of a day for the given date. + * + * @description + * Return the start of a day for the given date. + * The result will be in the local timezone. + * + * @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). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. + * + * @param date - The original date + * @param options - The options + * + * @returns The start of a day + * + * @example + * // The start of a day for 2 September 2014 11:55:00: + * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0)) + * //=> Tue Sep 02 2014 00:00:00 + */ +function startOfDay(date, options) { + const _date = toDate(date, options?.in); + _date.setHours(0, 0, 0, 0); + return _date; +} + +/** + * The {@link differenceInCalendarDays} function options. + */ + +/** + * @name differenceInCalendarDays + * @category Day Helpers + * @summary Get the number of calendar days between the given dates. + * + * @description + * Get the number of calendar days between the given dates. This means that the times are removed + * from the dates and then the difference in days is calculated. + * + * @param laterDate - The later date + * @param earlierDate - The earlier date + * @param options - The options object + * + * @returns The number of calendar days + * + * @example + * // How many calendar days are between + * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00? + * const result = differenceInCalendarDays( + * new Date(2012, 6, 2, 0, 0), + * new Date(2011, 6, 2, 23, 0) + * ) + * //=> 366 + * // How many calendar days are between + * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00? + * const result = differenceInCalendarDays( + * new Date(2011, 6, 3, 0, 1), + * new Date(2011, 6, 2, 23, 59) + * ) + * //=> 1 + */ +function differenceInCalendarDays(laterDate, earlierDate, options) { + const [laterDate_, earlierDate_] = normalizeDates( + options?.in, + laterDate, + earlierDate, + ); + + const laterStartOfDay = startOfDay(laterDate_); + const earlierStartOfDay = startOfDay(earlierDate_); + + const laterTimestamp = + +laterStartOfDay - getTimezoneOffsetInMilliseconds(laterStartOfDay); + const earlierTimestamp = + +earlierStartOfDay - getTimezoneOffsetInMilliseconds(earlierStartOfDay); + + // Round the number of days to the nearest integer because the number of + // milliseconds in a day is not constant (e.g. it's different in the week of + // the daylight saving time clock shift). + return Math.round((laterTimestamp - earlierTimestamp) / millisecondsInDay); +} + +/** + * The {@link startOfISOWeekYear} function options. + */ + +/** + * @name startOfISOWeekYear + * @category ISO Week-Numbering Year Helpers + * @summary Return the start of an ISO week-numbering year for the given date. + * + * @description + * Return the start of an ISO week-numbering year, + * which always starts 3 days before the year's first Thursday. + * The result will be in the local timezone. + * + * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date + * + * @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). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. + * + * @param date - The original date + * @param options - An object with options + * + * @returns The start of an ISO week-numbering year + * + * @example + * // The start of an ISO week-numbering year for 2 July 2005: + * const result = startOfISOWeekYear(new Date(2005, 6, 2)) + * //=> Mon Jan 03 2005 00:00:00 + */ +function startOfISOWeekYear(date, options) { + const year = getISOWeekYear(date, options); + const fourthOfJanuary = constructFrom(date, 0); + fourthOfJanuary.setFullYear(year, 0, 4); + fourthOfJanuary.setHours(0, 0, 0, 0); + return startOfISOWeek(fourthOfJanuary); +} + +/** + * @name isDate + * @category Common Helpers + * @summary Is the given value a date? + * + * @description + * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes. + * + * @param value - The value to check + * + * @returns True if the given value is a date + * + * @example + * // For a valid date: + * const result = isDate(new Date()) + * //=> true + * + * @example + * // For an invalid date: + * const result = isDate(new Date(NaN)) + * //=> true + * + * @example + * // For some value: + * const result = isDate('2014-02-31') + * //=> false + * + * @example + * // For an object: + * const result = isDate({}) + * //=> false + */ +function isDate(value) { + return ( + value instanceof Date || + (typeof value === "object" && + Object.prototype.toString.call(value) === "[object Date]") + ); +} + +/** + * @name isValid + * @category Common Helpers + * @summary Is the given date valid? + * + * @description + * Returns false if argument is Invalid Date and true otherwise. + * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate) + * Invalid Date is a Date, whose time value is NaN. + * + * Time value of Date: http://es5.github.io/#x15.9.1.1 + * + * @param date - The date to check + * + * @returns The date is valid + * + * @example + * // For the valid date: + * const result = isValid(new Date(2014, 1, 31)) + * //=> true + * + * @example + * // For the value, convertible into a date: + * const result = isValid(1393804800000) + * //=> true + * + * @example + * // For the invalid date: + * const result = isValid(new Date('')) + * //=> false + */ +function isValid(date) { + return !((!isDate(date) && typeof date !== "number") || isNaN(+toDate(date))); +} + +/** + * The {@link startOfYear} function options. + */ + +/** + * @name startOfYear + * @category Year Helpers + * @summary Return the start of a year for the given date. + * + * @description + * Return the start of a year for the given date. + * The result will be in the local timezone. + * + * @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). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. + * + * @param date - The original date + * @param options - The options + * + * @returns The start of a year + * + * @example + * // The start of a year for 2 September 2014 11:55:00: + * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00)) + * //=> Wed Jan 01 2014 00:00:00 + */ +function startOfYear(date, options) { + const date_ = toDate(date, options?.in); + date_.setFullYear(date_.getFullYear(), 0, 1); + date_.setHours(0, 0, 0, 0); + return date_; +} + +const formatDistanceLocale = { + 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", + }, +}; + +const formatDistance = (token, count, options) => { + let result; + + const tokenValue = formatDistanceLocale[token]; + if (typeof tokenValue === "string") { + result = tokenValue; + } else if (count === 1) { + result = tokenValue.one; + } else { + result = tokenValue.other.replace("{{count}}", count.toString()); + } + + if (options?.addSuffix) { + if (options.comparison && options.comparison > 0) { + return "in " + result; + } else { + return result + " ago"; + } + } + + return result; +}; + +function buildFormatLongFn(args) { + return (options = {}) => { + // TODO: Remove String() + const width = options.width ? String(options.width) : args.defaultWidth; + const format = args.formats[width] || args.formats[args.defaultWidth]; + return format; + }; +} + +const dateFormats = { + full: "EEEE, MMMM do, y", + long: "MMMM do, y", + medium: "MMM d, y", + short: "MM/dd/yyyy", +}; + +const timeFormats = { + full: "h:mm:ss a zzzz", + long: "h:mm:ss a z", + medium: "h:mm:ss a", + short: "h:mm a", +}; + +const dateTimeFormats = { + full: "{{date}} 'at' {{time}}", + long: "{{date}} 'at' {{time}}", + medium: "{{date}}, {{time}}", + short: "{{date}}, {{time}}", +}; + +const formatLong = { + date: buildFormatLongFn({ + formats: dateFormats, + defaultWidth: "full", + }), + + time: buildFormatLongFn({ + formats: timeFormats, + defaultWidth: "full", + }), + + dateTime: buildFormatLongFn({ + formats: dateTimeFormats, + defaultWidth: "full", + }), +}; + +const formatRelativeLocale = { + lastWeek: "'last' eeee 'at' p", + yesterday: "'yesterday at' p", + today: "'today at' p", + tomorrow: "'tomorrow at' p", + nextWeek: "eeee 'at' p", + other: "P", +}; + +const formatRelative = (token, _date, _baseDate, _options) => + formatRelativeLocale[token]; + +/** + * The localize function argument callback which allows to convert raw value to + * the actual type. + * + * @param value - The value to convert + * + * @returns The converted value + */ + +/** + * The map of localized values for each width. + */ + +/** + * The index type of the locale unit value. It types conversion of units of + * values that don't start at 0 (i.e. quarters). + */ + +/** + * Converts the unit value to the tuple of values. + */ + +/** + * The tuple of localized era values. The first element represents BC, + * the second element represents AD. + */ + +/** + * The tuple of localized quarter values. The first element represents Q1. + */ + +/** + * The tuple of localized day values. The first element represents Sunday. + */ + +/** + * The tuple of localized month values. The first element represents January. + */ + +function buildLocalizeFn(args) { + return (value, options) => { + const context = options?.context ? String(options.context) : "standalone"; + + let valuesArray; + if (context === "formatting" && args.formattingValues) { + const defaultWidth = args.defaultFormattingWidth || args.defaultWidth; + const width = options?.width ? String(options.width) : defaultWidth; + + valuesArray = + args.formattingValues[width] || args.formattingValues[defaultWidth]; + } else { + const defaultWidth = args.defaultWidth; + const width = options?.width ? String(options.width) : args.defaultWidth; + + valuesArray = args.values[width] || args.values[defaultWidth]; + } + const index = args.argumentCallback ? args.argumentCallback(value) : value; + + // @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! + return valuesArray[index]; + }; +} + +const eraValues = { + narrow: ["B", "A"], + abbreviated: ["BC", "AD"], + wide: ["Before Christ", "Anno Domini"], +}; + +const quarterValues = { + narrow: ["1", "2", "3", "4"], + abbreviated: ["Q1", "Q2", "Q3", "Q4"], + wide: ["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"], +}; + +// Note: in English, the names of days of the week and months are capitalized. +// If you are making a new locale based on this one, check if the same is true for the language you're working on. +// Generally, formatted dates should look like they are in the middle of a sentence, +// e.g. in Spanish language the weekdays and months should be in the lowercase. +const monthValues = { + 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", + ], +}; + +const dayValues = { + 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", + ], +}; + +const dayPeriodValues = { + 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", + }, +}; + +const formattingDayPeriodValues = { + 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", + }, +}; + +const ordinalNumber = (dirtyNumber, _options) => { + const number = Number(dirtyNumber); + + // If ordinal numbers depend on context, for example, + // if they are different for different grammatical genders, + // use `options.unit`. + // + // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear', + // 'day', 'hour', 'minute', 'second'. + + const rem100 = number % 100; + if (rem100 > 20 || rem100 < 10) { + switch (rem100 % 10) { + case 1: + return number + "st"; + case 2: + return number + "nd"; + case 3: + return number + "rd"; + } + } + return number + "th"; +}; + +const localize = { + ordinalNumber, + + era: buildLocalizeFn({ + values: eraValues, + defaultWidth: "wide", + }), + + quarter: buildLocalizeFn({ + values: quarterValues, + defaultWidth: "wide", + argumentCallback: (quarter) => quarter - 1, + }), + + month: buildLocalizeFn({ + values: monthValues, + defaultWidth: "wide", + }), + + day: buildLocalizeFn({ + values: dayValues, + defaultWidth: "wide", + }), + + dayPeriod: buildLocalizeFn({ + values: dayPeriodValues, + defaultWidth: "wide", + formattingValues: formattingDayPeriodValues, + defaultFormattingWidth: "wide", + }), +}; + +function buildMatchFn(args) { + return (string, options = {}) => { + const width = options.width; + + const matchPattern = + (width && args.matchPatterns[width]) || + args.matchPatterns[args.defaultMatchWidth]; + const matchResult = string.match(matchPattern); + + if (!matchResult) { + return null; + } + const matchedString = matchResult[0]; + + const parsePatterns = + (width && args.parsePatterns[width]) || + args.parsePatterns[args.defaultParseWidth]; + + const key = Array.isArray(parsePatterns) + ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString)) + : // [TODO] -- I challenge you to fix the type + findKey(parsePatterns, (pattern) => pattern.test(matchedString)); + + let value; + + value = args.valueCallback ? args.valueCallback(key) : key; + value = options.valueCallback + ? // [TODO] -- I challenge you to fix the type + options.valueCallback(value) + : value; + + const rest = string.slice(matchedString.length); + + return { value, rest }; + }; +} + +function findKey(object, predicate) { + for (const key in object) { + if ( + Object.prototype.hasOwnProperty.call(object, key) && + predicate(object[key]) + ) { + return key; + } + } + return undefined; +} + +function findIndex(array, predicate) { + for (let key = 0; key < array.length; key++) { + if (predicate(array[key])) { + return key; + } + } + return undefined; +} + +function buildMatchPatternFn(args) { + return (string, options = {}) => { + const matchResult = string.match(args.matchPattern); + if (!matchResult) return null; + const matchedString = matchResult[0]; + + const parseResult = string.match(args.parsePattern); + if (!parseResult) return null; + let value = args.valueCallback + ? args.valueCallback(parseResult[0]) + : parseResult[0]; + + // [TODO] I challenge you to fix the type + value = options.valueCallback ? options.valueCallback(value) : value; + + const rest = string.slice(matchedString.length); + + return { value, rest }; + }; +} + +const matchOrdinalNumberPattern = /^(\d+)(th|st|nd|rd)?/i; +const parseOrdinalNumberPattern = /\d+/i; + +const matchEraPatterns = { + 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, +}; +const parseEraPatterns = { + any: [/^b/i, /^(a|c)/i], +}; + +const matchQuarterPatterns = { + narrow: /^[1234]/i, + abbreviated: /^q[1234]/i, + wide: /^[1234](th|st|nd|rd)? quarter/i, +}; +const parseQuarterPatterns = { + any: [/1/i, /2/i, /3/i, /4/i], +}; + +const matchMonthPatterns = { + 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, +}; +const parseMonthPatterns = { + 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, + ], +}; + +const matchDayPatterns = { + 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, +}; +const parseDayPatterns = { + 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], +}; + +const matchDayPeriodPatterns = { + 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, +}; +const parseDayPeriodPatterns = { + 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, + }, +}; + +const match = { + ordinalNumber: buildMatchPatternFn({ + matchPattern: matchOrdinalNumberPattern, + parsePattern: parseOrdinalNumberPattern, + valueCallback: (value) => parseInt(value, 10), + }), + + era: buildMatchFn({ + matchPatterns: matchEraPatterns, + defaultMatchWidth: "wide", + parsePatterns: parseEraPatterns, + defaultParseWidth: "any", + }), + + quarter: buildMatchFn({ + matchPatterns: matchQuarterPatterns, + defaultMatchWidth: "wide", + parsePatterns: parseQuarterPatterns, + defaultParseWidth: "any", + valueCallback: (index) => index + 1, + }), + + month: buildMatchFn({ + matchPatterns: matchMonthPatterns, + defaultMatchWidth: "wide", + parsePatterns: parseMonthPatterns, + defaultParseWidth: "any", + }), + + day: buildMatchFn({ + matchPatterns: matchDayPatterns, + defaultMatchWidth: "wide", + parsePatterns: parseDayPatterns, + defaultParseWidth: "any", + }), + + dayPeriod: buildMatchFn({ + matchPatterns: matchDayPeriodPatterns, + defaultMatchWidth: "any", + parsePatterns: parseDayPeriodPatterns, + defaultParseWidth: "any", + }), +}; + +/** + * @category Locales + * @summary English locale (United States). + * @language English + * @iso-639-2 eng + * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp) + * @author Lesha Koss [@leshakoss](https://github.com/leshakoss) + */ +const enUS = { + code: "en-US", + formatDistance: formatDistance, + formatLong: formatLong, + formatRelative: formatRelative, + localize: localize, + match: match, + options: { + weekStartsOn: 0 /* Sunday */, + firstWeekContainsDate: 1, + }, +}; + +/** + * The {@link getDayOfYear} function options. + */ + +/** + * @name getDayOfYear + * @category Day Helpers + * @summary Get the day of the year of the given date. + * + * @description + * Get the day of the year of the given date. + * + * @param date - The given date + * @param options - The options + * + * @returns The day of year + * + * @example + * // Which day of the year is 2 July 2014? + * const result = getDayOfYear(new Date(2014, 6, 2)) + * //=> 183 + */ +function getDayOfYear(date, options) { + const _date = toDate(date, options?.in); + const diff = differenceInCalendarDays(_date, startOfYear(_date)); + const dayOfYear = diff + 1; + return dayOfYear; +} + +/** + * The {@link getISOWeek} function options. + */ + +/** + * @name getISOWeek + * @category ISO Week Helpers + * @summary Get the ISO week of the given date. + * + * @description + * Get the ISO week of the given date. + * + * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date + * + * @param date - The given date + * @param options - The options + * + * @returns The ISO week + * + * @example + * // Which week of the ISO-week numbering year is 2 January 2005? + * const result = getISOWeek(new Date(2005, 0, 2)) + * //=> 53 + */ +function getISOWeek(date, options) { + const _date = toDate(date, options?.in); + const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date); + + // Round the number of weeks to the nearest integer because the number of + // milliseconds in a week is not constant (e.g. it's different in the week of + // the daylight saving time clock shift). + return Math.round(diff / millisecondsInWeek) + 1; +} + +/** + * The {@link getWeekYear} function options. + */ + +/** + * @name getWeekYear + * @category Week-Numbering Year Helpers + * @summary Get the local week-numbering year of the given date. + * + * @description + * Get the local week-numbering year of the given date. + * The exact calculation depends on the values of + * `options.weekStartsOn` (which is the index of the first day of the week) + * and `options.firstWeekContainsDate` (which is the day of January, which is always in + * the first week of the week-numbering year) + * + * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system + * + * @param date - The given date + * @param options - An object with options. + * + * @returns The local week-numbering year + * + * @example + * // Which week numbering year is 26 December 2004 with the default settings? + * const result = getWeekYear(new Date(2004, 11, 26)) + * //=> 2005 + * + * @example + * // Which week numbering year is 26 December 2004 if week starts on Saturday? + * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 }) + * //=> 2004 + * + * @example + * // Which week numbering year is 26 December 2004 if the first week contains 4 January? + * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 }) + * //=> 2004 + */ +function getWeekYear(date, options) { + const _date = toDate(date, options?.in); + const year = _date.getFullYear(); + + const defaultOptions = getDefaultOptions$1(); + const firstWeekContainsDate = + options?.firstWeekContainsDate ?? + options?.locale?.options?.firstWeekContainsDate ?? + defaultOptions.firstWeekContainsDate ?? + defaultOptions.locale?.options?.firstWeekContainsDate ?? + 1; + + const firstWeekOfNextYear = constructFrom(options?.in || date, 0); + firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate); + firstWeekOfNextYear.setHours(0, 0, 0, 0); + const startOfNextYear = startOfWeek(firstWeekOfNextYear, options); + + const firstWeekOfThisYear = constructFrom(options?.in || date, 0); + firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate); + firstWeekOfThisYear.setHours(0, 0, 0, 0); + const startOfThisYear = startOfWeek(firstWeekOfThisYear, options); + + if (+_date >= +startOfNextYear) { + return year + 1; + } else if (+_date >= +startOfThisYear) { + return year; + } else { + return year - 1; + } +} + +/** + * The {@link startOfWeekYear} function options. + */ + +/** + * @name startOfWeekYear + * @category Week-Numbering Year Helpers + * @summary Return the start of a local week-numbering year for the given date. + * + * @description + * Return the start of a local week-numbering year. + * The exact calculation depends on the values of + * `options.weekStartsOn` (which is the index of the first day of the week) + * and `options.firstWeekContainsDate` (which is the day of January, which is always in + * the first week of the week-numbering year) + * + * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system + * + * @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). + * @typeParam ResultDate - The result `Date` type. + * + * @param date - The original date + * @param options - An object with options + * + * @returns The start of a week-numbering year + * + * @example + * // The start of an a week-numbering year for 2 July 2005 with default settings: + * const result = startOfWeekYear(new Date(2005, 6, 2)) + * //=> Sun Dec 26 2004 00:00:00 + * + * @example + * // The start of a week-numbering year for 2 July 2005 + * // if Monday is the first day of week + * // and 4 January is always in the first week of the year: + * const result = startOfWeekYear(new Date(2005, 6, 2), { + * weekStartsOn: 1, + * firstWeekContainsDate: 4 + * }) + * //=> Mon Jan 03 2005 00:00:00 + */ +function startOfWeekYear(date, options) { + const defaultOptions = getDefaultOptions$1(); + const firstWeekContainsDate = + options?.firstWeekContainsDate ?? + options?.locale?.options?.firstWeekContainsDate ?? + defaultOptions.firstWeekContainsDate ?? + defaultOptions.locale?.options?.firstWeekContainsDate ?? + 1; + + const year = getWeekYear(date, options); + const firstWeek = constructFrom(options?.in || date, 0); + firstWeek.setFullYear(year, 0, firstWeekContainsDate); + firstWeek.setHours(0, 0, 0, 0); + const _date = startOfWeek(firstWeek, options); + return _date; +} + +/** + * The {@link getWeek} function options. + */ + +/** + * @name getWeek + * @category Week Helpers + * @summary Get the local week index of the given date. + * + * @description + * Get the local week index of the given date. + * The exact calculation depends on the values of + * `options.weekStartsOn` (which is the index of the first day of the week) + * and `options.firstWeekContainsDate` (which is the day of January, which is always in + * the first week of the week-numbering year) + * + * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system + * + * @param date - The given date + * @param options - An object with options + * + * @returns The week + * + * @example + * // Which week of the local week numbering year is 2 January 2005 with default options? + * const result = getWeek(new Date(2005, 0, 2)) + * //=> 2 + * + * @example + * // Which week of the local week numbering year is 2 January 2005, + * // if Monday is the first day of the week, + * // and the first week of the year always contains 4 January? + * const result = getWeek(new Date(2005, 0, 2), { + * weekStartsOn: 1, + * firstWeekContainsDate: 4 + * }) + * //=> 53 + */ +function getWeek(date, options) { + const _date = toDate(date, options?.in); + const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options); + + // Round the number of weeks to the nearest integer because the number of + // milliseconds in a week is not constant (e.g. it's different in the week of + // the daylight saving time clock shift). + return Math.round(diff / millisecondsInWeek) + 1; +} + +function addLeadingZeros(number, targetLength) { + const sign = number < 0 ? "-" : ""; + const output = Math.abs(number).toString().padStart(targetLength, "0"); + return sign + output; +} + +/* + * | | Unit | | Unit | + * |-----|--------------------------------|-----|--------------------------------| + * | a | AM, PM | A* | | + * | d | Day of month | D | | + * | h | Hour [1-12] | H | Hour [0-23] | + * | m | Minute | M | Month | + * | s | Second | S | Fraction of second | + * | y | Year (abs) | Y | | + * + * Letters marked by * are not implemented but reserved by Unicode standard. + */ + +const lightFormatters = { + // Year + y(date, token) { + // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens + // | Year | y | yy | yyy | yyyy | yyyyy | + // |----------|-------|----|-------|-------|-------| + // | AD 1 | 1 | 01 | 001 | 0001 | 00001 | + // | AD 12 | 12 | 12 | 012 | 0012 | 00012 | + // | AD 123 | 123 | 23 | 123 | 0123 | 00123 | + // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 | + // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 | + + const signedYear = date.getFullYear(); + // Returns 1 for 1 BC (which is year 0 in JavaScript) + const year = signedYear > 0 ? signedYear : 1 - signedYear; + return addLeadingZeros(token === "yy" ? year % 100 : year, token.length); + }, + + // Month + M(date, token) { + const month = date.getMonth(); + return token === "M" ? String(month + 1) : addLeadingZeros(month + 1, 2); + }, + + // Day of the month + d(date, token) { + return addLeadingZeros(date.getDate(), token.length); + }, + + // AM or PM + a(date, token) { + const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? "pm" : "am"; + + switch (token) { + case "a": + case "aa": + return dayPeriodEnumValue.toUpperCase(); + case "aaa": + return dayPeriodEnumValue; + case "aaaaa": + return dayPeriodEnumValue[0]; + case "aaaa": + default: + return dayPeriodEnumValue === "am" ? "a.m." : "p.m."; + } + }, + + // Hour [1-12] + h(date, token) { + return addLeadingZeros(date.getHours() % 12 || 12, token.length); + }, + + // Hour [0-23] + H(date, token) { + return addLeadingZeros(date.getHours(), token.length); + }, + + // Minute + m(date, token) { + return addLeadingZeros(date.getMinutes(), token.length); + }, + + // Second + s(date, token) { + return addLeadingZeros(date.getSeconds(), token.length); + }, + + // Fraction of second + S(date, token) { + const numberOfDigits = token.length; + const milliseconds = date.getMilliseconds(); + const fractionalSeconds = Math.trunc( + milliseconds * Math.pow(10, numberOfDigits - 3), + ); + return addLeadingZeros(fractionalSeconds, token.length); + }, +}; + +const dayPeriodEnum = { + midnight: "midnight", + noon: "noon", + morning: "morning", + afternoon: "afternoon", + evening: "evening", + night: "night", +}; + +/* + * | | Unit | | Unit | + * |-----|--------------------------------|-----|--------------------------------| + * | a | AM, PM | A* | Milliseconds in day | + * | b | AM, PM, noon, midnight | B | Flexible day period | + * | c | Stand-alone local day of week | C* | Localized hour w/ day period | + * | d | Day of month | D | Day of year | + * | e | Local day of week | E | Day of week | + * | f | | F* | Day of week in month | + * | g* | Modified Julian day | G | Era | + * | h | Hour [1-12] | H | Hour [0-23] | + * | i! | ISO day of week | I! | ISO week of year | + * | j* | Localized hour w/ day period | J* | Localized hour w/o day period | + * | k | Hour [1-24] | K | Hour [0-11] | + * | l* | (deprecated) | L | Stand-alone month | + * | m | Minute | M | Month | + * | n | | N | | + * | o! | Ordinal number modifier | O | Timezone (GMT) | + * | p! | Long localized time | P! | Long localized date | + * | q | Stand-alone quarter | Q | Quarter | + * | r* | Related Gregorian year | R! | ISO week-numbering year | + * | s | Second | S | Fraction of second | + * | t! | Seconds timestamp | T! | Milliseconds timestamp | + * | u | Extended year | U* | Cyclic year | + * | v* | Timezone (generic non-locat.) | V* | Timezone (location) | + * | w | Local week of year | W* | Week of month | + * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) | + * | y | Year (abs) | Y | Local week-numbering year | + * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) | + * + * Letters marked by * are not implemented but reserved by Unicode standard. + * + * Letters marked by ! are non-standard, but implemented by date-fns: + * - `o` modifies the previous token to turn it into an ordinal (see `format` docs) + * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days, + * i.e. 7 for Sunday, 1 for Monday, etc. + * - `I` is ISO week of year, as opposed to `w` which is local week of year. + * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year. + * `R` is supposed to be used in conjunction with `I` and `i` + * for universal ISO week-numbering date, whereas + * `Y` is supposed to be used in conjunction with `w` and `e` + * for week-numbering date specific to the locale. + * - `P` is long localized date format + * - `p` is long localized time format + */ + +const formatters = { + // Era + G: function (date, token, localize) { + const era = date.getFullYear() > 0 ? 1 : 0; + switch (token) { + // AD, BC + case "G": + case "GG": + case "GGG": + return localize.era(era, { width: "abbreviated" }); + // A, B + case "GGGGG": + return localize.era(era, { width: "narrow" }); + // Anno Domini, Before Christ + case "GGGG": + default: + return localize.era(era, { width: "wide" }); + } + }, + + // Year + y: function (date, token, localize) { + // Ordinal number + if (token === "yo") { + const signedYear = date.getFullYear(); + // Returns 1 for 1 BC (which is year 0 in JavaScript) + const year = signedYear > 0 ? signedYear : 1 - signedYear; + return localize.ordinalNumber(year, { unit: "year" }); + } + + return lightFormatters.y(date, token); + }, + + // Local week-numbering year + Y: function (date, token, localize, options) { + const signedWeekYear = getWeekYear(date, options); + // Returns 1 for 1 BC (which is year 0 in JavaScript) + const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; + + // Two digit year + if (token === "YY") { + const twoDigitYear = weekYear % 100; + return addLeadingZeros(twoDigitYear, 2); + } + + // Ordinal number + if (token === "Yo") { + return localize.ordinalNumber(weekYear, { unit: "year" }); + } + + // Padding + return addLeadingZeros(weekYear, token.length); + }, + + // ISO week-numbering year + R: function (date, token) { + const isoWeekYear = getISOWeekYear(date); + + // Padding + return addLeadingZeros(isoWeekYear, token.length); + }, + + // Extended year. This is a single number designating the year of this calendar system. + // The main difference between `y` and `u` localizers are B.C. years: + // | Year | `y` | `u` | + // |------|-----|-----| + // | AC 1 | 1 | 1 | + // | BC 1 | 1 | 0 | + // | BC 2 | 2 | -1 | + // Also `yy` always returns the last two digits of a year, + // while `uu` pads single digit years to 2 characters and returns other years unchanged. + u: function (date, token) { + const year = date.getFullYear(); + return addLeadingZeros(year, token.length); + }, + + // Quarter + Q: function (date, token, localize) { + const quarter = Math.ceil((date.getMonth() + 1) / 3); + switch (token) { + // 1, 2, 3, 4 + case "Q": + return String(quarter); + // 01, 02, 03, 04 + case "QQ": + return addLeadingZeros(quarter, 2); + // 1st, 2nd, 3rd, 4th + case "Qo": + return localize.ordinalNumber(quarter, { unit: "quarter" }); + // Q1, Q2, Q3, Q4 + case "QQQ": + return localize.quarter(quarter, { + width: "abbreviated", + context: "formatting", + }); + // 1, 2, 3, 4 (narrow quarter; could be not numerical) + case "QQQQQ": + return localize.quarter(quarter, { + width: "narrow", + context: "formatting", + }); + // 1st quarter, 2nd quarter, ... + case "QQQQ": + default: + return localize.quarter(quarter, { + width: "wide", + context: "formatting", + }); + } + }, + + // Stand-alone quarter + q: function (date, token, localize) { + const quarter = Math.ceil((date.getMonth() + 1) / 3); + switch (token) { + // 1, 2, 3, 4 + case "q": + return String(quarter); + // 01, 02, 03, 04 + case "qq": + return addLeadingZeros(quarter, 2); + // 1st, 2nd, 3rd, 4th + case "qo": + return localize.ordinalNumber(quarter, { unit: "quarter" }); + // Q1, Q2, Q3, Q4 + case "qqq": + return localize.quarter(quarter, { + width: "abbreviated", + context: "standalone", + }); + // 1, 2, 3, 4 (narrow quarter; could be not numerical) + case "qqqqq": + return localize.quarter(quarter, { + width: "narrow", + context: "standalone", + }); + // 1st quarter, 2nd quarter, ... + case "qqqq": + default: + return localize.quarter(quarter, { + width: "wide", + context: "standalone", + }); + } + }, + + // Month + M: function (date, token, localize) { + const month = date.getMonth(); + switch (token) { + case "M": + case "MM": + return lightFormatters.M(date, token); + // 1st, 2nd, ..., 12th + case "Mo": + return localize.ordinalNumber(month + 1, { unit: "month" }); + // Jan, Feb, ..., Dec + case "MMM": + return localize.month(month, { + width: "abbreviated", + context: "formatting", + }); + // J, F, ..., D + case "MMMMM": + return localize.month(month, { + width: "narrow", + context: "formatting", + }); + // January, February, ..., December + case "MMMM": + default: + return localize.month(month, { width: "wide", context: "formatting" }); + } + }, + + // Stand-alone month + L: function (date, token, localize) { + const month = date.getMonth(); + switch (token) { + // 1, 2, ..., 12 + case "L": + return String(month + 1); + // 01, 02, ..., 12 + case "LL": + return addLeadingZeros(month + 1, 2); + // 1st, 2nd, ..., 12th + case "Lo": + return localize.ordinalNumber(month + 1, { unit: "month" }); + // Jan, Feb, ..., Dec + case "LLL": + return localize.month(month, { + width: "abbreviated", + context: "standalone", + }); + // J, F, ..., D + case "LLLLL": + return localize.month(month, { + width: "narrow", + context: "standalone", + }); + // January, February, ..., December + case "LLLL": + default: + return localize.month(month, { width: "wide", context: "standalone" }); + } + }, + + // Local week of year + w: function (date, token, localize, options) { + const week = getWeek(date, options); + + if (token === "wo") { + return localize.ordinalNumber(week, { unit: "week" }); + } + + return addLeadingZeros(week, token.length); + }, + + // ISO week of year + I: function (date, token, localize) { + const isoWeek = getISOWeek(date); + + if (token === "Io") { + return localize.ordinalNumber(isoWeek, { unit: "week" }); + } + + return addLeadingZeros(isoWeek, token.length); + }, + + // Day of the month + d: function (date, token, localize) { + if (token === "do") { + return localize.ordinalNumber(date.getDate(), { unit: "date" }); + } + + return lightFormatters.d(date, token); + }, + + // Day of year + D: function (date, token, localize) { + const dayOfYear = getDayOfYear(date); + + if (token === "Do") { + return localize.ordinalNumber(dayOfYear, { unit: "dayOfYear" }); + } + + return addLeadingZeros(dayOfYear, token.length); + }, + + // Day of week + E: function (date, token, localize) { + const dayOfWeek = date.getDay(); + switch (token) { + // Tue + case "E": + case "EE": + case "EEE": + return localize.day(dayOfWeek, { + width: "abbreviated", + context: "formatting", + }); + // T + case "EEEEE": + return localize.day(dayOfWeek, { + width: "narrow", + context: "formatting", + }); + // Tu + case "EEEEEE": + return localize.day(dayOfWeek, { + width: "short", + context: "formatting", + }); + // Tuesday + case "EEEE": + default: + return localize.day(dayOfWeek, { + width: "wide", + context: "formatting", + }); + } + }, + + // Local day of week + e: function (date, token, localize, options) { + const dayOfWeek = date.getDay(); + const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7; + switch (token) { + // Numerical value (Nth day of week with current locale or weekStartsOn) + case "e": + return String(localDayOfWeek); + // Padded numerical value + case "ee": + return addLeadingZeros(localDayOfWeek, 2); + // 1st, 2nd, ..., 7th + case "eo": + return localize.ordinalNumber(localDayOfWeek, { unit: "day" }); + case "eee": + return localize.day(dayOfWeek, { + width: "abbreviated", + context: "formatting", + }); + // T + case "eeeee": + return localize.day(dayOfWeek, { + width: "narrow", + context: "formatting", + }); + // Tu + case "eeeeee": + return localize.day(dayOfWeek, { + width: "short", + context: "formatting", + }); + // Tuesday + case "eeee": + default: + return localize.day(dayOfWeek, { + width: "wide", + context: "formatting", + }); + } + }, + + // Stand-alone local day of week + c: function (date, token, localize, options) { + const dayOfWeek = date.getDay(); + const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7; + switch (token) { + // Numerical value (same as in `e`) + case "c": + return String(localDayOfWeek); + // Padded numerical value + case "cc": + return addLeadingZeros(localDayOfWeek, token.length); + // 1st, 2nd, ..., 7th + case "co": + return localize.ordinalNumber(localDayOfWeek, { unit: "day" }); + case "ccc": + return localize.day(dayOfWeek, { + width: "abbreviated", + context: "standalone", + }); + // T + case "ccccc": + return localize.day(dayOfWeek, { + width: "narrow", + context: "standalone", + }); + // Tu + case "cccccc": + return localize.day(dayOfWeek, { + width: "short", + context: "standalone", + }); + // Tuesday + case "cccc": + default: + return localize.day(dayOfWeek, { + width: "wide", + context: "standalone", + }); + } + }, + + // ISO day of week + i: function (date, token, localize) { + const dayOfWeek = date.getDay(); + const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek; + switch (token) { + // 2 + case "i": + return String(isoDayOfWeek); + // 02 + case "ii": + return addLeadingZeros(isoDayOfWeek, token.length); + // 2nd + case "io": + return localize.ordinalNumber(isoDayOfWeek, { unit: "day" }); + // Tue + case "iii": + return localize.day(dayOfWeek, { + width: "abbreviated", + context: "formatting", + }); + // T + case "iiiii": + return localize.day(dayOfWeek, { + width: "narrow", + context: "formatting", + }); + // Tu + case "iiiiii": + return localize.day(dayOfWeek, { + width: "short", + context: "formatting", + }); + // Tuesday + case "iiii": + default: + return localize.day(dayOfWeek, { + width: "wide", + context: "formatting", + }); + } + }, + + // AM or PM + a: function (date, token, localize) { + const hours = date.getHours(); + const dayPeriodEnumValue = hours / 12 >= 1 ? "pm" : "am"; + + switch (token) { + case "a": + case "aa": + return localize.dayPeriod(dayPeriodEnumValue, { + width: "abbreviated", + context: "formatting", + }); + case "aaa": + return localize + .dayPeriod(dayPeriodEnumValue, { + width: "abbreviated", + context: "formatting", + }) + .toLowerCase(); + case "aaaaa": + return localize.dayPeriod(dayPeriodEnumValue, { + width: "narrow", + context: "formatting", + }); + case "aaaa": + default: + return localize.dayPeriod(dayPeriodEnumValue, { + width: "wide", + context: "formatting", + }); + } + }, + + // AM, PM, midnight, noon + b: function (date, token, localize) { + const hours = date.getHours(); + let dayPeriodEnumValue; + if (hours === 12) { + dayPeriodEnumValue = dayPeriodEnum.noon; + } else if (hours === 0) { + dayPeriodEnumValue = dayPeriodEnum.midnight; + } else { + dayPeriodEnumValue = hours / 12 >= 1 ? "pm" : "am"; + } + + switch (token) { + case "b": + case "bb": + return localize.dayPeriod(dayPeriodEnumValue, { + width: "abbreviated", + context: "formatting", + }); + case "bbb": + return localize + .dayPeriod(dayPeriodEnumValue, { + width: "abbreviated", + context: "formatting", + }) + .toLowerCase(); + case "bbbbb": + return localize.dayPeriod(dayPeriodEnumValue, { + width: "narrow", + context: "formatting", + }); + case "bbbb": + default: + return localize.dayPeriod(dayPeriodEnumValue, { + width: "wide", + context: "formatting", + }); + } + }, + + // in the morning, in the afternoon, in the evening, at night + B: function (date, token, localize) { + const hours = date.getHours(); + let dayPeriodEnumValue; + if (hours >= 17) { + dayPeriodEnumValue = dayPeriodEnum.evening; + } else if (hours >= 12) { + dayPeriodEnumValue = dayPeriodEnum.afternoon; + } else if (hours >= 4) { + dayPeriodEnumValue = dayPeriodEnum.morning; + } else { + dayPeriodEnumValue = dayPeriodEnum.night; + } + + switch (token) { + case "B": + case "BB": + case "BBB": + return localize.dayPeriod(dayPeriodEnumValue, { + width: "abbreviated", + context: "formatting", + }); + case "BBBBB": + return localize.dayPeriod(dayPeriodEnumValue, { + width: "narrow", + context: "formatting", + }); + case "BBBB": + default: + return localize.dayPeriod(dayPeriodEnumValue, { + width: "wide", + context: "formatting", + }); + } + }, + + // Hour [1-12] + h: function (date, token, localize) { + if (token === "ho") { + let hours = date.getHours() % 12; + if (hours === 0) hours = 12; + return localize.ordinalNumber(hours, { unit: "hour" }); + } + + return lightFormatters.h(date, token); + }, + + // Hour [0-23] + H: function (date, token, localize) { + if (token === "Ho") { + return localize.ordinalNumber(date.getHours(), { unit: "hour" }); + } + + return lightFormatters.H(date, token); + }, + + // Hour [0-11] + K: function (date, token, localize) { + const hours = date.getHours() % 12; + + if (token === "Ko") { + return localize.ordinalNumber(hours, { unit: "hour" }); + } + + return addLeadingZeros(hours, token.length); + }, + + // Hour [1-24] + k: function (date, token, localize) { + let hours = date.getHours(); + if (hours === 0) hours = 24; + + if (token === "ko") { + return localize.ordinalNumber(hours, { unit: "hour" }); + } + + return addLeadingZeros(hours, token.length); + }, + + // Minute + m: function (date, token, localize) { + if (token === "mo") { + return localize.ordinalNumber(date.getMinutes(), { unit: "minute" }); + } + + return lightFormatters.m(date, token); + }, + + // Second + s: function (date, token, localize) { + if (token === "so") { + return localize.ordinalNumber(date.getSeconds(), { unit: "second" }); + } + + return lightFormatters.s(date, token); + }, + + // Fraction of second + S: function (date, token) { + return lightFormatters.S(date, token); + }, + + // Timezone (ISO-8601. If offset is 0, output is always `'Z'`) + X: function (date, token, _localize) { + const timezoneOffset = date.getTimezoneOffset(); + + if (timezoneOffset === 0) { + return "Z"; + } + + switch (token) { + // Hours and optional minutes + case "X": + return formatTimezoneWithOptionalMinutes(timezoneOffset); + + // Hours, minutes and optional seconds without `:` delimiter + // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets + // so this token always has the same output as `XX` + case "XXXX": + case "XX": // Hours and minutes without `:` delimiter + return formatTimezone(timezoneOffset); + + // Hours, minutes and optional seconds with `:` delimiter + // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets + // so this token always has the same output as `XXX` + case "XXXXX": + case "XXX": // Hours and minutes with `:` delimiter + default: + return formatTimezone(timezoneOffset, ":"); + } + }, + + // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent) + x: function (date, token, _localize) { + const timezoneOffset = date.getTimezoneOffset(); + + switch (token) { + // Hours and optional minutes + case "x": + return formatTimezoneWithOptionalMinutes(timezoneOffset); + + // Hours, minutes and optional seconds without `:` delimiter + // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets + // so this token always has the same output as `xx` + case "xxxx": + case "xx": // Hours and minutes without `:` delimiter + return formatTimezone(timezoneOffset); + + // Hours, minutes and optional seconds with `:` delimiter + // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets + // so this token always has the same output as `xxx` + case "xxxxx": + case "xxx": // Hours and minutes with `:` delimiter + default: + return formatTimezone(timezoneOffset, ":"); + } + }, + + // Timezone (GMT) + O: function (date, token, _localize) { + const timezoneOffset = date.getTimezoneOffset(); + + switch (token) { + // Short + case "O": + case "OO": + case "OOO": + return "GMT" + formatTimezoneShort(timezoneOffset, ":"); + // Long + case "OOOO": + default: + return "GMT" + formatTimezone(timezoneOffset, ":"); + } + }, + + // Timezone (specific non-location) + z: function (date, token, _localize) { + const timezoneOffset = date.getTimezoneOffset(); + + switch (token) { + // Short + case "z": + case "zz": + case "zzz": + return "GMT" + formatTimezoneShort(timezoneOffset, ":"); + // Long + case "zzzz": + default: + return "GMT" + formatTimezone(timezoneOffset, ":"); + } + }, + + // Seconds timestamp + t: function (date, token, _localize) { + const timestamp = Math.trunc(+date / 1000); + return addLeadingZeros(timestamp, token.length); + }, + + // Milliseconds timestamp + T: function (date, token, _localize) { + return addLeadingZeros(+date, token.length); + }, +}; + +function formatTimezoneShort(offset, delimiter = "") { + const sign = offset > 0 ? "-" : "+"; + const absOffset = Math.abs(offset); + const hours = Math.trunc(absOffset / 60); + const minutes = absOffset % 60; + if (minutes === 0) { + return sign + String(hours); + } + return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2); +} + +function formatTimezoneWithOptionalMinutes(offset, delimiter) { + if (offset % 60 === 0) { + const sign = offset > 0 ? "-" : "+"; + return sign + addLeadingZeros(Math.abs(offset) / 60, 2); + } + return formatTimezone(offset, delimiter); +} + +function formatTimezone(offset, delimiter = "") { + const sign = offset > 0 ? "-" : "+"; + const absOffset = Math.abs(offset); + const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2); + const minutes = addLeadingZeros(absOffset % 60, 2); + return sign + hours + delimiter + minutes; +} + +const dateLongFormatter = (pattern, formatLong) => { + switch (pattern) { + case "P": + return formatLong.date({ width: "short" }); + case "PP": + return formatLong.date({ width: "medium" }); + case "PPP": + return formatLong.date({ width: "long" }); + case "PPPP": + default: + return formatLong.date({ width: "full" }); + } +}; + +const timeLongFormatter = (pattern, formatLong) => { + switch (pattern) { + case "p": + return formatLong.time({ width: "short" }); + case "pp": + return formatLong.time({ width: "medium" }); + case "ppp": + return formatLong.time({ width: "long" }); + case "pppp": + default: + return formatLong.time({ width: "full" }); + } +}; + +const dateTimeLongFormatter = (pattern, formatLong) => { + const matchResult = pattern.match(/(P+)(p+)?/) || []; + const datePattern = matchResult[1]; + const timePattern = matchResult[2]; + + if (!timePattern) { + return dateLongFormatter(pattern, formatLong); + } + + let dateTimeFormat; + + switch (datePattern) { + case "P": + dateTimeFormat = formatLong.dateTime({ width: "short" }); + break; + case "PP": + dateTimeFormat = formatLong.dateTime({ width: "medium" }); + break; + case "PPP": + dateTimeFormat = formatLong.dateTime({ width: "long" }); + break; + case "PPPP": + default: + dateTimeFormat = formatLong.dateTime({ width: "full" }); + break; + } + + return dateTimeFormat + .replace("{{date}}", dateLongFormatter(datePattern, formatLong)) + .replace("{{time}}", timeLongFormatter(timePattern, formatLong)); +}; + +const longFormatters = { + p: timeLongFormatter, + P: dateTimeLongFormatter, +}; + +const dayOfYearTokenRE = /^D+$/; +const weekYearTokenRE = /^Y+$/; + +const throwTokens = ["D", "DD", "YY", "YYYY"]; + +function isProtectedDayOfYearToken(token) { + return dayOfYearTokenRE.test(token); +} + +function isProtectedWeekYearToken(token) { + return weekYearTokenRE.test(token); +} + +function warnOrThrowProtectedError(token, format, input) { + const _message = message(token, format, input); + console.warn(_message); + if (throwTokens.includes(token)) throw new RangeError(_message); +} + +function message(token, format, input) { + const subject = token[0] === "Y" ? "years" : "days of the month"; + 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`; +} + +// This RegExp consists of three parts separated by `|`: +// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token +// (one of the certain letters followed by `o`) +// - (\w)\1* matches any sequences of the same letter +// - '' matches two quote characters in a row +// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('), +// except a single quote symbol, which ends the sequence. +// Two quote characters do not end the sequence. +// If there is no matching single quote +// then the sequence will continue until the end of the string. +// - . matches any single character unmatched by previous parts of the RegExps +const formattingTokensRegExp$1 = + /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g; + +// This RegExp catches symbols escaped by quotes, and also +// sequences of symbols P, p, and the combinations like `PPPPPPPppppp` +const longFormattingTokensRegExp$1 = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g; + +const escapedStringRegExp$1 = /^'([^]*?)'?$/; +const doubleQuoteRegExp$1 = /''/g; +const unescapedLatinCharacterRegExp$1 = /[a-zA-Z]/; + +/** + * The {@link format} function options. + */ + +/** + * @name format + * @alias formatDate + * @category Common Helpers + * @summary Format the date. + * + * @description + * Return the formatted date string in the given format. The result may vary by locale. + * + * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries. + * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md + * + * The characters wrapped between two single quotes characters (') are escaped. + * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote. + * (see the last example) + * + * Format of the string is based on Unicode Technical Standard #35: + * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table + * with a few additions (see note 7 below the table). + * + * Accepted patterns: + * | Unit | Pattern | Result examples | Notes | + * |---------------------------------|---------|-----------------------------------|-------| + * | Era | G..GGG | AD, BC | | + * | | GGGG | Anno Domini, Before Christ | 2 | + * | | GGGGG | A, B | | + * | Calendar year | y | 44, 1, 1900, 2017 | 5 | + * | | yo | 44th, 1st, 0th, 17th | 5,7 | + * | | yy | 44, 01, 00, 17 | 5 | + * | | yyy | 044, 001, 1900, 2017 | 5 | + * | | yyyy | 0044, 0001, 1900, 2017 | 5 | + * | | yyyyy | ... | 3,5 | + * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 | + * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 | + * | | YY | 44, 01, 00, 17 | 5,8 | + * | | YYY | 044, 001, 1900, 2017 | 5 | + * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 | + * | | YYYYY | ... | 3,5 | + * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 | + * | | RR | -43, 00, 01, 1900, 2017 | 5,7 | + * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 | + * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 | + * | | RRRRR | ... | 3,5,7 | + * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 | + * | | uu | -43, 01, 1900, 2017 | 5 | + * | | uuu | -043, 001, 1900, 2017 | 5 | + * | | uuuu | -0043, 0001, 1900, 2017 | 5 | + * | | uuuuu | ... | 3,5 | + * | Quarter (formatting) | Q | 1, 2, 3, 4 | | + * | | Qo | 1st, 2nd, 3rd, 4th | 7 | + * | | QQ | 01, 02, 03, 04 | | + * | | QQQ | Q1, Q2, Q3, Q4 | | + * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 | + * | | QQQQQ | 1, 2, 3, 4 | 4 | + * | Quarter (stand-alone) | q | 1, 2, 3, 4 | | + * | | qo | 1st, 2nd, 3rd, 4th | 7 | + * | | qq | 01, 02, 03, 04 | | + * | | qqq | Q1, Q2, Q3, Q4 | | + * | | qqqq | 1st quarter, 2nd quarter, ... | 2 | + * | | qqqqq | 1, 2, 3, 4 | 4 | + * | Month (formatting) | M | 1, 2, ..., 12 | | + * | | Mo | 1st, 2nd, ..., 12th | 7 | + * | | MM | 01, 02, ..., 12 | | + * | | MMM | Jan, Feb, ..., Dec | | + * | | MMMM | January, February, ..., December | 2 | + * | | MMMMM | J, F, ..., D | | + * | Month (stand-alone) | L | 1, 2, ..., 12 | | + * | | Lo | 1st, 2nd, ..., 12th | 7 | + * | | LL | 01, 02, ..., 12 | | + * | | LLL | Jan, Feb, ..., Dec | | + * | | LLLL | January, February, ..., December | 2 | + * | | LLLLL | J, F, ..., D | | + * | Local week of year | w | 1, 2, ..., 53 | | + * | | wo | 1st, 2nd, ..., 53th | 7 | + * | | ww | 01, 02, ..., 53 | | + * | ISO week of year | I | 1, 2, ..., 53 | 7 | + * | | Io | 1st, 2nd, ..., 53th | 7 | + * | | II | 01, 02, ..., 53 | 7 | + * | Day of month | d | 1, 2, ..., 31 | | + * | | do | 1st, 2nd, ..., 31st | 7 | + * | | dd | 01, 02, ..., 31 | | + * | Day of year | D | 1, 2, ..., 365, 366 | 9 | + * | | Do | 1st, 2nd, ..., 365th, 366th | 7 | + * | | DD | 01, 02, ..., 365, 366 | 9 | + * | | DDD | 001, 002, ..., 365, 366 | | + * | | DDDD | ... | 3 | + * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | | + * | | EEEE | Monday, Tuesday, ..., Sunday | 2 | + * | | EEEEE | M, T, W, T, F, S, S | | + * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | | + * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 | + * | | io | 1st, 2nd, ..., 7th | 7 | + * | | ii | 01, 02, ..., 07 | 7 | + * | | iii | Mon, Tue, Wed, ..., Sun | 7 | + * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 | + * | | iiiii | M, T, W, T, F, S, S | 7 | + * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 | + * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | | + * | | eo | 2nd, 3rd, ..., 1st | 7 | + * | | ee | 02, 03, ..., 01 | | + * | | eee | Mon, Tue, Wed, ..., Sun | | + * | | eeee | Monday, Tuesday, ..., Sunday | 2 | + * | | eeeee | M, T, W, T, F, S, S | | + * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | | + * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | | + * | | co | 2nd, 3rd, ..., 1st | 7 | + * | | cc | 02, 03, ..., 01 | | + * | | ccc | Mon, Tue, Wed, ..., Sun | | + * | | cccc | Monday, Tuesday, ..., Sunday | 2 | + * | | ccccc | M, T, W, T, F, S, S | | + * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | | + * | AM, PM | a..aa | AM, PM | | + * | | aaa | am, pm | | + * | | aaaa | a.m., p.m. | 2 | + * | | aaaaa | a, p | | + * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | | + * | | bbb | am, pm, noon, midnight | | + * | | bbbb | a.m., p.m., noon, midnight | 2 | + * | | bbbbb | a, p, n, mi | | + * | Flexible day period | B..BBB | at night, in the morning, ... | | + * | | BBBB | at night, in the morning, ... | 2 | + * | | BBBBB | at night, in the morning, ... | | + * | Hour [1-12] | h | 1, 2, ..., 11, 12 | | + * | | ho | 1st, 2nd, ..., 11th, 12th | 7 | + * | | hh | 01, 02, ..., 11, 12 | | + * | Hour [0-23] | H | 0, 1, 2, ..., 23 | | + * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 | + * | | HH | 00, 01, 02, ..., 23 | | + * | Hour [0-11] | K | 1, 2, ..., 11, 0 | | + * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 | + * | | KK | 01, 02, ..., 11, 00 | | + * | Hour [1-24] | k | 24, 1, 2, ..., 23 | | + * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 | + * | | kk | 24, 01, 02, ..., 23 | | + * | Minute | m | 0, 1, ..., 59 | | + * | | mo | 0th, 1st, ..., 59th | 7 | + * | | mm | 00, 01, ..., 59 | | + * | Second | s | 0, 1, ..., 59 | | + * | | so | 0th, 1st, ..., 59th | 7 | + * | | ss | 00, 01, ..., 59 | | + * | Fraction of second | S | 0, 1, ..., 9 | | + * | | SS | 00, 01, ..., 99 | | + * | | SSS | 000, 001, ..., 999 | | + * | | SSSS | ... | 3 | + * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | | + * | | XX | -0800, +0530, Z | | + * | | XXX | -08:00, +05:30, Z | | + * | | XXXX | -0800, +0530, Z, +123456 | 2 | + * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | | + * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | | + * | | xx | -0800, +0530, +0000 | | + * | | xxx | -08:00, +05:30, +00:00 | 2 | + * | | xxxx | -0800, +0530, +0000, +123456 | | + * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | | + * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | | + * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 | + * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 | + * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 | + * | Seconds timestamp | t | 512969520 | 7 | + * | | tt | ... | 3,7 | + * | Milliseconds timestamp | T | 512969520900 | 7 | + * | | TT | ... | 3,7 | + * | Long localized date | P | 04/29/1453 | 7 | + * | | PP | Apr 29, 1453 | 7 | + * | | PPP | April 29th, 1453 | 7 | + * | | PPPP | Friday, April 29th, 1453 | 2,7 | + * | Long localized time | p | 12:00 AM | 7 | + * | | pp | 12:00:00 AM | 7 | + * | | ppp | 12:00:00 AM GMT+2 | 7 | + * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 | + * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 | + * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 | + * | | PPPppp | April 29th, 1453 at ... | 7 | + * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 | + * Notes: + * 1. "Formatting" units (e.g. formatting quarter) in the default en-US locale + * are the same as "stand-alone" units, but are different in some languages. + * "Formatting" units are declined according to the rules of the language + * in the context of a date. "Stand-alone" units are always nominative singular: + * + * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'` + * + * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'` + * + * 2. Any sequence of the identical letters is a pattern, unless it is escaped by + * the single quote characters (see below). + * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`) + * the output will be the same as default pattern for this unit, usually + * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units + * are marked with "2" in the last column of the table. + * + * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'` + * + * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'` + * + * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'` + * + * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'` + * + * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'` + * + * 3. Some patterns could be unlimited length (such as `yyyyyyyy`). + * The output will be padded with zeros to match the length of the pattern. + * + * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'` + * + * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales. + * These tokens represent the shortest form of the quarter. + * + * 5. The main difference between `y` and `u` patterns are B.C. years: + * + * | Year | `y` | `u` | + * |------|-----|-----| + * | AC 1 | 1 | 1 | + * | BC 1 | 1 | 0 | + * | BC 2 | 2 | -1 | + * + * Also `yy` always returns the last two digits of a year, + * while `uu` pads single digit years to 2 characters and returns other years unchanged: + * + * | Year | `yy` | `uu` | + * |------|------|------| + * | 1 | 01 | 01 | + * | 14 | 14 | 14 | + * | 376 | 76 | 376 | + * | 1453 | 53 | 1453 | + * + * The same difference is true for local and ISO week-numbering years (`Y` and `R`), + * except local week-numbering years are dependent on `options.weekStartsOn` + * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear) + * and [getWeekYear](https://date-fns.org/docs/getWeekYear)). + * + * 6. Specific non-location timezones are currently unavailable in `date-fns`, + * so right now these tokens fall back to GMT timezones. + * + * 7. These patterns are not in the Unicode Technical Standard #35: + * - `i`: ISO day of week + * - `I`: ISO week of year + * - `R`: ISO week-numbering year + * - `t`: seconds timestamp + * - `T`: milliseconds timestamp + * - `o`: ordinal number modifier + * - `P`: long localized date + * - `p`: long localized time + * + * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years. + * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md + * + * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month. + * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md + * + * @param date - The original date + * @param format - The string of tokens + * @param options - An object with options + * + * @returns The formatted date string + * + * @throws `date` must not be Invalid Date + * @throws `options.locale` must contain `localize` property + * @throws `options.locale` must contain `formatLong` property + * @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 + * @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 + * @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 + * @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 + * @throws format string contains an unescaped latin alphabet character + * + * @example + * // Represent 11 February 2014 in middle-endian format: + * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy') + * //=> '02/11/2014' + * + * @example + * // Represent 2 July 2014 in Esperanto: + * import { eoLocale } from 'date-fns/locale/eo' + * const result = format(new Date(2014, 6, 2), "do 'de' MMMM yyyy", { + * locale: eoLocale + * }) + * //=> '2-a de julio 2014' + * + * @example + * // Escape string by single quote characters: + * const result = format(new Date(2014, 6, 2, 15), "h 'o''clock'") + * //=> "3 o'clock" + */ +function format(date, formatStr, options) { + const defaultOptions = getDefaultOptions$1(); + const locale = defaultOptions.locale ?? enUS; + + const firstWeekContainsDate = + defaultOptions.firstWeekContainsDate ?? + defaultOptions.locale?.options?.firstWeekContainsDate ?? + 1; + + const weekStartsOn = + defaultOptions.weekStartsOn ?? + defaultOptions.locale?.options?.weekStartsOn ?? + 0; + + const originalDate = toDate(date, options?.in); + + if (!isValid(originalDate)) { + throw new RangeError("Invalid time value"); + } + + let parts = formatStr + .match(longFormattingTokensRegExp$1) + .map((substring) => { + const firstCharacter = substring[0]; + if (firstCharacter === "p" || firstCharacter === "P") { + const longFormatter = longFormatters[firstCharacter]; + return longFormatter(substring, locale.formatLong); + } + return substring; + }) + .join("") + .match(formattingTokensRegExp$1) + .map((substring) => { + // Replace two single quote characters with one single quote character + if (substring === "''") { + return { isToken: false, value: "'" }; + } + + const firstCharacter = substring[0]; + if (firstCharacter === "'") { + return { isToken: false, value: cleanEscapedString$1(substring) }; + } + + if (formatters[firstCharacter]) { + return { isToken: true, value: substring }; + } + + if (firstCharacter.match(unescapedLatinCharacterRegExp$1)) { + throw new RangeError( + "Format string contains an unescaped latin alphabet character `" + + firstCharacter + + "`", + ); + } + + return { isToken: false, value: substring }; + }); + + // invoke localize preprocessor (only for french locales at the moment) + if (locale.localize.preprocessor) { + parts = locale.localize.preprocessor(originalDate, parts); + } + + const formatterOptions = { + firstWeekContainsDate, + weekStartsOn, + locale, + }; + + return parts + .map((part) => { + if (!part.isToken) return part.value; + + const token = part.value; + + if ( + (isProtectedWeekYearToken(token)) || + (isProtectedDayOfYearToken(token)) + ) { + warnOrThrowProtectedError(token, formatStr, String(date)); + } + + const formatter = formatters[token[0]]; + return formatter(originalDate, token, locale.localize, formatterOptions); + }) + .join(""); +} + +function cleanEscapedString$1(input) { + const matched = input.match(escapedStringRegExp$1); + + if (!matched) { + return input; + } + + return matched[1].replace(doubleQuoteRegExp$1, "'"); +} + +/** + * @name getDefaultOptions + * @category Common Helpers + * @summary Get default options. + * @pure false + * + * @description + * Returns an object that contains defaults for + * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate` + * arguments for all functions. + * + * You can change these with [setDefaultOptions](https://date-fns.org/docs/setDefaultOptions). + * + * @returns The default options + * + * @example + * const result = getDefaultOptions() + * //=> {} + * + * @example + * setDefaultOptions({ weekStarsOn: 1, firstWeekContainsDate: 4 }) + * const result = getDefaultOptions() + * //=> { weekStarsOn: 1, firstWeekContainsDate: 4 } + */ +function getDefaultOptions() { + return Object.assign({}, getDefaultOptions$1()); +} + +/** + * The {@link getISODay} function options. + */ + +/** + * @name getISODay + * @category Weekday Helpers + * @summary Get the day of the ISO week of the given date. + * + * @description + * Get the day of the ISO week of the given date, + * which is 7 for Sunday, 1 for Monday etc. + * + * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date + * + * @param date - The given date + * @param options - An object with options + * + * @returns The day of ISO week + * + * @example + * // Which day of the ISO week is 26 February 2012? + * const result = getISODay(new Date(2012, 1, 26)) + * //=> 7 + */ +function getISODay(date, options) { + const day = toDate(date, options?.in).getDay(); + return day === 0 ? 7 : day; +} + +/** + * @name transpose + * @category Generic Helpers + * @summary Transpose the date to the given constructor. + * + * @description + * The function transposes the date to the given constructor. It helps you + * to transpose the date in the system time zone to say `UTCDate` or any other + * date extension. + * + * @typeParam InputDate - The input `Date` type derived from the passed argument. + * @typeParam ResultDate - The result `Date` type derived from the passed constructor. + * + * @param date - The date to use values from + * @param constructor - The date constructor to use + * + * @returns Date transposed to the given constructor + * + * @example + * // Create July 10, 2022 00:00 in locale time zone + * const date = new Date(2022, 6, 10) + * //=> 'Sun Jul 10 2022 00:00:00 GMT+0800 (Singapore Standard Time)' + * + * @example + * // Transpose the date to July 10, 2022 00:00 in UTC + * transpose(date, UTCDate) + * //=> 'Sun Jul 10 2022 00:00:00 GMT+0000 (Coordinated Universal Time)' + */ +function transpose(date, constructor) { + const date_ = isConstructor(constructor) + ? new constructor(0) + : constructFrom(constructor, 0); + date_.setFullYear(date.getFullYear(), date.getMonth(), date.getDate()); + date_.setHours( + date.getHours(), + date.getMinutes(), + date.getSeconds(), + date.getMilliseconds(), + ); + return date_; +} + +function isConstructor(constructor) { + return ( + typeof constructor === "function" && + constructor.prototype?.constructor === constructor + ); +} + +const TIMEZONE_UNIT_PRIORITY = 10; + +class Setter { + subPriority = 0; + + validate(_utcDate, _options) { + return true; + } +} + +class ValueSetter extends Setter { + constructor( + value, + validateValue, + + setValue, + + priority, + subPriority, + ) { + super(); + this.value = value; + this.validateValue = validateValue; + this.setValue = setValue; + this.priority = priority; + if (subPriority) { + this.subPriority = subPriority; + } + } + + validate(date, options) { + return this.validateValue(date, this.value, options); + } + + set(date, flags, options) { + return this.setValue(date, flags, this.value, options); + } +} + +class DateTimezoneSetter extends Setter { + priority = TIMEZONE_UNIT_PRIORITY; + subPriority = -1; + + constructor(context, reference) { + super(); + this.context = context || ((date) => constructFrom(reference, date)); + } + + set(date, flags) { + if (flags.timestampIsSet) return date; + return constructFrom(date, transpose(date, this.context)); + } +} + +class Parser { + run(dateString, token, match, options) { + const result = this.parse(dateString, token, match, options); + if (!result) { + return null; + } + + return { + setter: new ValueSetter( + result.value, + this.validate, + this.set, + this.priority, + this.subPriority, + ), + rest: result.rest, + }; + } + + validate(_utcDate, _value, _options) { + return true; + } +} + +class EraParser extends Parser { + priority = 140; + + parse(dateString, token, match) { + switch (token) { + // AD, BC + case "G": + case "GG": + case "GGG": + return ( + match.era(dateString, { width: "abbreviated" }) || + match.era(dateString, { width: "narrow" }) + ); + + // A, B + case "GGGGG": + return match.era(dateString, { width: "narrow" }); + // Anno Domini, Before Christ + case "GGGG": + default: + return ( + match.era(dateString, { width: "wide" }) || + match.era(dateString, { width: "abbreviated" }) || + match.era(dateString, { width: "narrow" }) + ); + } + } + + set(date, flags, value) { + flags.era = value; + date.setFullYear(value, 0, 1); + date.setHours(0, 0, 0, 0); + return date; + } + + incompatibleTokens = ["R", "u", "t", "T"]; +} + +const numericPatterns = { + month: /^(1[0-2]|0?\d)/, // 0 to 12 + date: /^(3[0-1]|[0-2]?\d)/, // 0 to 31 + dayOfYear: /^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/, // 0 to 366 + week: /^(5[0-3]|[0-4]?\d)/, // 0 to 53 + hour23h: /^(2[0-3]|[0-1]?\d)/, // 0 to 23 + hour24h: /^(2[0-4]|[0-1]?\d)/, // 0 to 24 + hour11h: /^(1[0-1]|0?\d)/, // 0 to 11 + hour12h: /^(1[0-2]|0?\d)/, // 0 to 12 + minute: /^[0-5]?\d/, // 0 to 59 + second: /^[0-5]?\d/, // 0 to 59 + + singleDigit: /^\d/, // 0 to 9 + twoDigits: /^\d{1,2}/, // 0 to 99 + threeDigits: /^\d{1,3}/, // 0 to 999 + fourDigits: /^\d{1,4}/, // 0 to 9999 + + anyDigitsSigned: /^-?\d+/, + singleDigitSigned: /^-?\d/, // 0 to 9, -0 to -9 + twoDigitsSigned: /^-?\d{1,2}/, // 0 to 99, -0 to -99 + threeDigitsSigned: /^-?\d{1,3}/, // 0 to 999, -0 to -999 + fourDigitsSigned: /^-?\d{1,4}/, // 0 to 9999, -0 to -9999 +}; + +const timezonePatterns = { + basicOptionalMinutes: /^([+-])(\d{2})(\d{2})?|Z/, + basic: /^([+-])(\d{2})(\d{2})|Z/, + basicOptionalSeconds: /^([+-])(\d{2})(\d{2})((\d{2}))?|Z/, + extended: /^([+-])(\d{2}):(\d{2})|Z/, + extendedOptionalSeconds: /^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/, +}; + +function mapValue(parseFnResult, mapFn) { + if (!parseFnResult) { + return parseFnResult; + } + + return { + value: mapFn(parseFnResult.value), + rest: parseFnResult.rest, + }; +} + +function parseNumericPattern(pattern, dateString) { + const matchResult = dateString.match(pattern); + + if (!matchResult) { + return null; + } + + return { + value: parseInt(matchResult[0], 10), + rest: dateString.slice(matchResult[0].length), + }; +} + +function parseTimezonePattern(pattern, dateString) { + const matchResult = dateString.match(pattern); + + if (!matchResult) { + return null; + } + + // Input is 'Z' + if (matchResult[0] === "Z") { + return { + value: 0, + rest: dateString.slice(1), + }; + } + + const sign = matchResult[1] === "+" ? 1 : -1; + const hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0; + const minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0; + const seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0; + + return { + value: + sign * + (hours * millisecondsInHour + + minutes * millisecondsInMinute + + seconds * millisecondsInSecond), + rest: dateString.slice(matchResult[0].length), + }; +} + +function parseAnyDigitsSigned(dateString) { + return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString); +} + +function parseNDigits(n, dateString) { + switch (n) { + case 1: + return parseNumericPattern(numericPatterns.singleDigit, dateString); + case 2: + return parseNumericPattern(numericPatterns.twoDigits, dateString); + case 3: + return parseNumericPattern(numericPatterns.threeDigits, dateString); + case 4: + return parseNumericPattern(numericPatterns.fourDigits, dateString); + default: + return parseNumericPattern(new RegExp("^\\d{1," + n + "}"), dateString); + } +} + +function parseNDigitsSigned(n, dateString) { + switch (n) { + case 1: + return parseNumericPattern(numericPatterns.singleDigitSigned, dateString); + case 2: + return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString); + case 3: + return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString); + case 4: + return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString); + default: + return parseNumericPattern(new RegExp("^-?\\d{1," + n + "}"), dateString); + } +} + +function dayPeriodEnumToHours(dayPeriod) { + switch (dayPeriod) { + case "morning": + return 4; + case "evening": + return 17; + case "pm": + case "noon": + case "afternoon": + return 12; + case "am": + case "midnight": + case "night": + default: + return 0; + } +} + +function normalizeTwoDigitYear(twoDigitYear, currentYear) { + const isCommonEra = currentYear > 0; + // Absolute number of the current year: + // 1 -> 1 AC + // 0 -> 1 BC + // -1 -> 2 BC + const absCurrentYear = isCommonEra ? currentYear : 1 - currentYear; + + let result; + if (absCurrentYear <= 50) { + result = twoDigitYear || 100; + } else { + const rangeEnd = absCurrentYear + 50; + const rangeEndCentury = Math.trunc(rangeEnd / 100) * 100; + const isPreviousCentury = twoDigitYear >= rangeEnd % 100; + result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0); + } + + return isCommonEra ? result : 1 - result; +} + +function isLeapYearIndex(year) { + return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0); +} + +// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns +// | Year | y | yy | yyy | yyyy | yyyyy | +// |----------|-------|----|-------|-------|-------| +// | AD 1 | 1 | 01 | 001 | 0001 | 00001 | +// | AD 12 | 12 | 12 | 012 | 0012 | 00012 | +// | AD 123 | 123 | 23 | 123 | 0123 | 00123 | +// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 | +// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 | +class YearParser extends Parser { + priority = 130; + incompatibleTokens = ["Y", "R", "u", "w", "I", "i", "e", "c", "t", "T"]; + + parse(dateString, token, match) { + const valueCallback = (year) => ({ + year, + isTwoDigitYear: token === "yy", + }); + + switch (token) { + case "y": + return mapValue(parseNDigits(4, dateString), valueCallback); + case "yo": + return mapValue( + match.ordinalNumber(dateString, { + unit: "year", + }), + valueCallback, + ); + default: + return mapValue(parseNDigits(token.length, dateString), valueCallback); + } + } + + validate(_date, value) { + return value.isTwoDigitYear || value.year > 0; + } + + set(date, flags, value) { + const currentYear = date.getFullYear(); + + if (value.isTwoDigitYear) { + const normalizedTwoDigitYear = normalizeTwoDigitYear( + value.year, + currentYear, + ); + date.setFullYear(normalizedTwoDigitYear, 0, 1); + date.setHours(0, 0, 0, 0); + return date; + } + + const year = + !("era" in flags) || flags.era === 1 ? value.year : 1 - value.year; + date.setFullYear(year, 0, 1); + date.setHours(0, 0, 0, 0); + return date; + } +} + +// Local week-numbering year +class LocalWeekYearParser extends Parser { + priority = 130; + + parse(dateString, token, match) { + const valueCallback = (year) => ({ + year, + isTwoDigitYear: token === "YY", + }); + + switch (token) { + case "Y": + return mapValue(parseNDigits(4, dateString), valueCallback); + case "Yo": + return mapValue( + match.ordinalNumber(dateString, { + unit: "year", + }), + valueCallback, + ); + default: + return mapValue(parseNDigits(token.length, dateString), valueCallback); + } + } + + validate(_date, value) { + return value.isTwoDigitYear || value.year > 0; + } + + set(date, flags, value, options) { + const currentYear = getWeekYear(date, options); + + if (value.isTwoDigitYear) { + const normalizedTwoDigitYear = normalizeTwoDigitYear( + value.year, + currentYear, + ); + date.setFullYear( + normalizedTwoDigitYear, + 0, + options.firstWeekContainsDate, + ); + date.setHours(0, 0, 0, 0); + return startOfWeek(date, options); + } + + const year = + !("era" in flags) || flags.era === 1 ? value.year : 1 - value.year; + date.setFullYear(year, 0, options.firstWeekContainsDate); + date.setHours(0, 0, 0, 0); + return startOfWeek(date, options); + } + + incompatibleTokens = [ + "y", + "R", + "u", + "Q", + "q", + "M", + "L", + "I", + "d", + "D", + "i", + "t", + "T", + ]; +} + +// ISO week-numbering year +class ISOWeekYearParser extends Parser { + priority = 130; + + parse(dateString, token) { + if (token === "R") { + return parseNDigitsSigned(4, dateString); + } + + return parseNDigitsSigned(token.length, dateString); + } + + set(date, _flags, value) { + const firstWeekOfYear = constructFrom(date, 0); + firstWeekOfYear.setFullYear(value, 0, 4); + firstWeekOfYear.setHours(0, 0, 0, 0); + return startOfISOWeek(firstWeekOfYear); + } + + incompatibleTokens = [ + "G", + "y", + "Y", + "u", + "Q", + "q", + "M", + "L", + "w", + "d", + "D", + "e", + "c", + "t", + "T", + ]; +} + +class ExtendedYearParser extends Parser { + priority = 130; + + parse(dateString, token) { + if (token === "u") { + return parseNDigitsSigned(4, dateString); + } + + return parseNDigitsSigned(token.length, dateString); + } + + set(date, _flags, value) { + date.setFullYear(value, 0, 1); + date.setHours(0, 0, 0, 0); + return date; + } + + incompatibleTokens = ["G", "y", "Y", "R", "w", "I", "i", "e", "c", "t", "T"]; +} + +class QuarterParser extends Parser { + priority = 120; + + parse(dateString, token, match) { + switch (token) { + // 1, 2, 3, 4 + case "Q": + case "QQ": // 01, 02, 03, 04 + return parseNDigits(token.length, dateString); + // 1st, 2nd, 3rd, 4th + case "Qo": + return match.ordinalNumber(dateString, { unit: "quarter" }); + // Q1, Q2, Q3, Q4 + case "QQQ": + return ( + match.quarter(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.quarter(dateString, { + width: "narrow", + context: "formatting", + }) + ); + + // 1, 2, 3, 4 (narrow quarter; could be not numerical) + case "QQQQQ": + return match.quarter(dateString, { + width: "narrow", + context: "formatting", + }); + // 1st quarter, 2nd quarter, ... + case "QQQQ": + default: + return ( + match.quarter(dateString, { + width: "wide", + context: "formatting", + }) || + match.quarter(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.quarter(dateString, { + width: "narrow", + context: "formatting", + }) + ); + } + } + + validate(_date, value) { + return value >= 1 && value <= 4; + } + + set(date, _flags, value) { + date.setMonth((value - 1) * 3, 1); + date.setHours(0, 0, 0, 0); + return date; + } + + incompatibleTokens = [ + "Y", + "R", + "q", + "M", + "L", + "w", + "I", + "d", + "D", + "i", + "e", + "c", + "t", + "T", + ]; +} + +class StandAloneQuarterParser extends Parser { + priority = 120; + + parse(dateString, token, match) { + switch (token) { + // 1, 2, 3, 4 + case "q": + case "qq": // 01, 02, 03, 04 + return parseNDigits(token.length, dateString); + // 1st, 2nd, 3rd, 4th + case "qo": + return match.ordinalNumber(dateString, { unit: "quarter" }); + // Q1, Q2, Q3, Q4 + case "qqq": + return ( + match.quarter(dateString, { + width: "abbreviated", + context: "standalone", + }) || + match.quarter(dateString, { + width: "narrow", + context: "standalone", + }) + ); + + // 1, 2, 3, 4 (narrow quarter; could be not numerical) + case "qqqqq": + return match.quarter(dateString, { + width: "narrow", + context: "standalone", + }); + // 1st quarter, 2nd quarter, ... + case "qqqq": + default: + return ( + match.quarter(dateString, { + width: "wide", + context: "standalone", + }) || + match.quarter(dateString, { + width: "abbreviated", + context: "standalone", + }) || + match.quarter(dateString, { + width: "narrow", + context: "standalone", + }) + ); + } + } + + validate(_date, value) { + return value >= 1 && value <= 4; + } + + set(date, _flags, value) { + date.setMonth((value - 1) * 3, 1); + date.setHours(0, 0, 0, 0); + return date; + } + + incompatibleTokens = [ + "Y", + "R", + "Q", + "M", + "L", + "w", + "I", + "d", + "D", + "i", + "e", + "c", + "t", + "T", + ]; +} + +class MonthParser extends Parser { + incompatibleTokens = [ + "Y", + "R", + "q", + "Q", + "L", + "w", + "I", + "D", + "i", + "e", + "c", + "t", + "T", + ]; + + priority = 110; + + parse(dateString, token, match) { + const valueCallback = (value) => value - 1; + + switch (token) { + // 1, 2, ..., 12 + case "M": + return mapValue( + parseNumericPattern(numericPatterns.month, dateString), + valueCallback, + ); + // 01, 02, ..., 12 + case "MM": + return mapValue(parseNDigits(2, dateString), valueCallback); + // 1st, 2nd, ..., 12th + case "Mo": + return mapValue( + match.ordinalNumber(dateString, { + unit: "month", + }), + valueCallback, + ); + // Jan, Feb, ..., Dec + case "MMM": + return ( + match.month(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.month(dateString, { width: "narrow", context: "formatting" }) + ); + + // J, F, ..., D + case "MMMMM": + return match.month(dateString, { + width: "narrow", + context: "formatting", + }); + // January, February, ..., December + case "MMMM": + default: + return ( + match.month(dateString, { width: "wide", context: "formatting" }) || + match.month(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.month(dateString, { width: "narrow", context: "formatting" }) + ); + } + } + + validate(_date, value) { + return value >= 0 && value <= 11; + } + + set(date, _flags, value) { + date.setMonth(value, 1); + date.setHours(0, 0, 0, 0); + return date; + } +} + +class StandAloneMonthParser extends Parser { + priority = 110; + + parse(dateString, token, match) { + const valueCallback = (value) => value - 1; + + switch (token) { + // 1, 2, ..., 12 + case "L": + return mapValue( + parseNumericPattern(numericPatterns.month, dateString), + valueCallback, + ); + // 01, 02, ..., 12 + case "LL": + return mapValue(parseNDigits(2, dateString), valueCallback); + // 1st, 2nd, ..., 12th + case "Lo": + return mapValue( + match.ordinalNumber(dateString, { + unit: "month", + }), + valueCallback, + ); + // Jan, Feb, ..., Dec + case "LLL": + return ( + match.month(dateString, { + width: "abbreviated", + context: "standalone", + }) || + match.month(dateString, { width: "narrow", context: "standalone" }) + ); + + // J, F, ..., D + case "LLLLL": + return match.month(dateString, { + width: "narrow", + context: "standalone", + }); + // January, February, ..., December + case "LLLL": + default: + return ( + match.month(dateString, { width: "wide", context: "standalone" }) || + match.month(dateString, { + width: "abbreviated", + context: "standalone", + }) || + match.month(dateString, { width: "narrow", context: "standalone" }) + ); + } + } + + validate(_date, value) { + return value >= 0 && value <= 11; + } + + set(date, _flags, value) { + date.setMonth(value, 1); + date.setHours(0, 0, 0, 0); + return date; + } + + incompatibleTokens = [ + "Y", + "R", + "q", + "Q", + "M", + "w", + "I", + "D", + "i", + "e", + "c", + "t", + "T", + ]; +} + +/** + * The {@link setWeek} function options. + */ + +/** + * @name setWeek + * @category Week Helpers + * @summary Set the local week to the given date. + * + * @description + * Set the local week to the given date, saving the weekday number. + * The exact calculation depends on the values of + * `options.weekStartsOn` (which is the index of the first day of the week) + * and `options.firstWeekContainsDate` (which is the day of January, which is always in + * the first week of the week-numbering year) + * + * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system + * + * @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). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. + * + * @param date - The date to be changed + * @param week - The week of the new date + * @param options - An object with options + * + * @returns The new date with the local week set + * + * @example + * // Set the 1st week to 2 January 2005 with default options: + * const result = setWeek(new Date(2005, 0, 2), 1) + * //=> Sun Dec 26 2004 00:00:00 + * + * @example + * // Set the 1st week to 2 January 2005, + * // if Monday is the first day of the week, + * // and the first week of the year always contains 4 January: + * const result = setWeek(new Date(2005, 0, 2), 1, { + * weekStartsOn: 1, + * firstWeekContainsDate: 4 + * }) + * //=> Sun Jan 4 2004 00:00:00 + */ +function setWeek(date, week, options) { + const date_ = toDate(date, options?.in); + const diff = getWeek(date_, options) - week; + date_.setDate(date_.getDate() - diff * 7); + return toDate(date_, options?.in); +} + +// Local week of year +class LocalWeekParser extends Parser { + priority = 100; + + parse(dateString, token, match) { + switch (token) { + case "w": + return parseNumericPattern(numericPatterns.week, dateString); + case "wo": + return match.ordinalNumber(dateString, { unit: "week" }); + default: + return parseNDigits(token.length, dateString); + } + } + + validate(_date, value) { + return value >= 1 && value <= 53; + } + + set(date, _flags, value, options) { + return startOfWeek(setWeek(date, value, options), options); + } + + incompatibleTokens = [ + "y", + "R", + "u", + "q", + "Q", + "M", + "L", + "I", + "d", + "D", + "i", + "t", + "T", + ]; +} + +/** + * The {@link setISOWeek} function options. + */ + +/** + * @name setISOWeek + * @category ISO Week Helpers + * @summary Set the ISO week to the given date. + * + * @description + * Set the ISO week to the given date, saving the weekday number. + * + * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date + * + * @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). + * @typeParam ResultDate - The `Date` type of the context function. + * + * @param date - The date to be changed + * @param week - The ISO week of the new date + * @param options - An object with options + * + * @returns The new date with the ISO week set + * + * @example + * // Set the 53rd ISO week to 7 August 2004: + * const result = setISOWeek(new Date(2004, 7, 7), 53) + * //=> Sat Jan 01 2005 00:00:00 + */ +function setISOWeek(date, week, options) { + const _date = toDate(date, options?.in); + const diff = getISOWeek(_date, options) - week; + _date.setDate(_date.getDate() - diff * 7); + return _date; +} + +// ISO week of year +class ISOWeekParser extends Parser { + priority = 100; + + parse(dateString, token, match) { + switch (token) { + case "I": + return parseNumericPattern(numericPatterns.week, dateString); + case "Io": + return match.ordinalNumber(dateString, { unit: "week" }); + default: + return parseNDigits(token.length, dateString); + } + } + + validate(_date, value) { + return value >= 1 && value <= 53; + } + + set(date, _flags, value) { + return startOfISOWeek(setISOWeek(date, value)); + } + + incompatibleTokens = [ + "y", + "Y", + "u", + "q", + "Q", + "M", + "L", + "w", + "d", + "D", + "e", + "c", + "t", + "T", + ]; +} + +const DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; +const DAYS_IN_MONTH_LEAP_YEAR = [ + 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, +]; + +// Day of the month +class DateParser extends Parser { + priority = 90; + subPriority = 1; + + parse(dateString, token, match) { + switch (token) { + case "d": + return parseNumericPattern(numericPatterns.date, dateString); + case "do": + return match.ordinalNumber(dateString, { unit: "date" }); + default: + return parseNDigits(token.length, dateString); + } + } + + validate(date, value) { + const year = date.getFullYear(); + const isLeapYear = isLeapYearIndex(year); + const month = date.getMonth(); + if (isLeapYear) { + return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month]; + } else { + return value >= 1 && value <= DAYS_IN_MONTH[month]; + } + } + + set(date, _flags, value) { + date.setDate(value); + date.setHours(0, 0, 0, 0); + return date; + } + + incompatibleTokens = [ + "Y", + "R", + "q", + "Q", + "w", + "I", + "D", + "i", + "e", + "c", + "t", + "T", + ]; +} + +class DayOfYearParser extends Parser { + priority = 90; + + subpriority = 1; + + parse(dateString, token, match) { + switch (token) { + case "D": + case "DD": + return parseNumericPattern(numericPatterns.dayOfYear, dateString); + case "Do": + return match.ordinalNumber(dateString, { unit: "date" }); + default: + return parseNDigits(token.length, dateString); + } + } + + validate(date, value) { + const year = date.getFullYear(); + const isLeapYear = isLeapYearIndex(year); + if (isLeapYear) { + return value >= 1 && value <= 366; + } else { + return value >= 1 && value <= 365; + } + } + + set(date, _flags, value) { + date.setMonth(0, value); + date.setHours(0, 0, 0, 0); + return date; + } + + incompatibleTokens = [ + "Y", + "R", + "q", + "Q", + "M", + "L", + "w", + "I", + "d", + "E", + "i", + "e", + "c", + "t", + "T", + ]; +} + +/** + * The {@link setDay} function options. + */ + +/** + * @name setDay + * @category Weekday Helpers + * @summary Set the day of the week to the given date. + * + * @description + * Set the day of the week to the given date. + * + * @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). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. + * + * @param date - The date to be changed + * @param day - The day of the week of the new date + * @param options - An object with options. + * + * @returns The new date with the day of the week set + * + * @example + * // Set week day to Sunday, with the default weekStartsOn of Sunday: + * const result = setDay(new Date(2014, 8, 1), 0) + * //=> Sun Aug 31 2014 00:00:00 + * + * @example + * // Set week day to Sunday, with a weekStartsOn of Monday: + * const result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 }) + * //=> Sun Sep 07 2014 00:00:00 + */ +function setDay(date, day, options) { + const defaultOptions = getDefaultOptions$1(); + const weekStartsOn = + options?.weekStartsOn ?? + options?.locale?.options?.weekStartsOn ?? + defaultOptions.weekStartsOn ?? + defaultOptions.locale?.options?.weekStartsOn ?? + 0; + + const date_ = toDate(date, options?.in); + const currentDay = date_.getDay(); + + const remainder = day % 7; + const dayIndex = (remainder + 7) % 7; + + const delta = 7 - weekStartsOn; + const diff = + day < 0 || day > 6 + ? day - ((currentDay + delta) % 7) + : ((dayIndex + delta) % 7) - ((currentDay + delta) % 7); + return addDays(date_, diff, options); +} + +// Day of week +class DayParser extends Parser { + priority = 90; + + parse(dateString, token, match) { + switch (token) { + // Tue + case "E": + case "EE": + case "EEE": + return ( + match.day(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.day(dateString, { width: "short", context: "formatting" }) || + match.day(dateString, { width: "narrow", context: "formatting" }) + ); + + // T + case "EEEEE": + return match.day(dateString, { + width: "narrow", + context: "formatting", + }); + // Tu + case "EEEEEE": + return ( + match.day(dateString, { width: "short", context: "formatting" }) || + match.day(dateString, { width: "narrow", context: "formatting" }) + ); + + // Tuesday + case "EEEE": + default: + return ( + match.day(dateString, { width: "wide", context: "formatting" }) || + match.day(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.day(dateString, { width: "short", context: "formatting" }) || + match.day(dateString, { width: "narrow", context: "formatting" }) + ); + } + } + + validate(_date, value) { + return value >= 0 && value <= 6; + } + + set(date, _flags, value, options) { + date = setDay(date, value, options); + date.setHours(0, 0, 0, 0); + return date; + } + + incompatibleTokens = ["D", "i", "e", "c", "t", "T"]; +} + +// Local day of week +class LocalDayParser extends Parser { + priority = 90; + parse(dateString, token, match, options) { + const valueCallback = (value) => { + // We want here floor instead of trunc, so we get -7 for value 0 instead of 0 + const wholeWeekDays = Math.floor((value - 1) / 7) * 7; + return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays; + }; + + switch (token) { + // 3 + case "e": + case "ee": // 03 + return mapValue(parseNDigits(token.length, dateString), valueCallback); + // 3rd + case "eo": + return mapValue( + match.ordinalNumber(dateString, { + unit: "day", + }), + valueCallback, + ); + // Tue + case "eee": + return ( + match.day(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.day(dateString, { width: "short", context: "formatting" }) || + match.day(dateString, { width: "narrow", context: "formatting" }) + ); + + // T + case "eeeee": + return match.day(dateString, { + width: "narrow", + context: "formatting", + }); + // Tu + case "eeeeee": + return ( + match.day(dateString, { width: "short", context: "formatting" }) || + match.day(dateString, { width: "narrow", context: "formatting" }) + ); + + // Tuesday + case "eeee": + default: + return ( + match.day(dateString, { width: "wide", context: "formatting" }) || + match.day(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.day(dateString, { width: "short", context: "formatting" }) || + match.day(dateString, { width: "narrow", context: "formatting" }) + ); + } + } + + validate(_date, value) { + return value >= 0 && value <= 6; + } + + set(date, _flags, value, options) { + date = setDay(date, value, options); + date.setHours(0, 0, 0, 0); + return date; + } + + incompatibleTokens = [ + "y", + "R", + "u", + "q", + "Q", + "M", + "L", + "I", + "d", + "D", + "E", + "i", + "c", + "t", + "T", + ]; +} + +// Stand-alone local day of week +class StandAloneLocalDayParser extends Parser { + priority = 90; + + parse(dateString, token, match, options) { + const valueCallback = (value) => { + // We want here floor instead of trunc, so we get -7 for value 0 instead of 0 + const wholeWeekDays = Math.floor((value - 1) / 7) * 7; + return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays; + }; + + switch (token) { + // 3 + case "c": + case "cc": // 03 + return mapValue(parseNDigits(token.length, dateString), valueCallback); + // 3rd + case "co": + return mapValue( + match.ordinalNumber(dateString, { + unit: "day", + }), + valueCallback, + ); + // Tue + case "ccc": + return ( + match.day(dateString, { + width: "abbreviated", + context: "standalone", + }) || + match.day(dateString, { width: "short", context: "standalone" }) || + match.day(dateString, { width: "narrow", context: "standalone" }) + ); + + // T + case "ccccc": + return match.day(dateString, { + width: "narrow", + context: "standalone", + }); + // Tu + case "cccccc": + return ( + match.day(dateString, { width: "short", context: "standalone" }) || + match.day(dateString, { width: "narrow", context: "standalone" }) + ); + + // Tuesday + case "cccc": + default: + return ( + match.day(dateString, { width: "wide", context: "standalone" }) || + match.day(dateString, { + width: "abbreviated", + context: "standalone", + }) || + match.day(dateString, { width: "short", context: "standalone" }) || + match.day(dateString, { width: "narrow", context: "standalone" }) + ); + } + } + + validate(_date, value) { + return value >= 0 && value <= 6; + } + + set(date, _flags, value, options) { + date = setDay(date, value, options); + date.setHours(0, 0, 0, 0); + return date; + } + + incompatibleTokens = [ + "y", + "R", + "u", + "q", + "Q", + "M", + "L", + "I", + "d", + "D", + "E", + "i", + "e", + "t", + "T", + ]; +} + +/** + * The {@link setISODay} function options. + */ + +/** + * @name setISODay + * @category Weekday Helpers + * @summary Set the day of the ISO week to the given date. + * + * @description + * Set the day of the ISO week to the given date. + * ISO week starts with Monday. + * 7 is the index of Sunday, 1 is the index of Monday, etc. + * + * @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). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. + * + * @param date - The date to be changed + * @param day - The day of the ISO week of the new date + * @param options - An object with options + * + * @returns The new date with the day of the ISO week set + * + * @example + * // Set Sunday to 1 September 2014: + * const result = setISODay(new Date(2014, 8, 1), 7) + * //=> Sun Sep 07 2014 00:00:00 + */ +function setISODay(date, day, options) { + const date_ = toDate(date, options?.in); + const currentDay = getISODay(date_, options); + const diff = day - currentDay; + return addDays(date_, diff, options); +} + +// ISO day of week +class ISODayParser extends Parser { + priority = 90; + + parse(dateString, token, match) { + const valueCallback = (value) => { + if (value === 0) { + return 7; + } + return value; + }; + + switch (token) { + // 2 + case "i": + case "ii": // 02 + return parseNDigits(token.length, dateString); + // 2nd + case "io": + return match.ordinalNumber(dateString, { unit: "day" }); + // Tue + case "iii": + return mapValue( + match.day(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.day(dateString, { + width: "short", + context: "formatting", + }) || + match.day(dateString, { + width: "narrow", + context: "formatting", + }), + valueCallback, + ); + // T + case "iiiii": + return mapValue( + match.day(dateString, { + width: "narrow", + context: "formatting", + }), + valueCallback, + ); + // Tu + case "iiiiii": + return mapValue( + match.day(dateString, { + width: "short", + context: "formatting", + }) || + match.day(dateString, { + width: "narrow", + context: "formatting", + }), + valueCallback, + ); + // Tuesday + case "iiii": + default: + return mapValue( + match.day(dateString, { + width: "wide", + context: "formatting", + }) || + match.day(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.day(dateString, { + width: "short", + context: "formatting", + }) || + match.day(dateString, { + width: "narrow", + context: "formatting", + }), + valueCallback, + ); + } + } + + validate(_date, value) { + return value >= 1 && value <= 7; + } + + set(date, _flags, value) { + date = setISODay(date, value); + date.setHours(0, 0, 0, 0); + return date; + } + + incompatibleTokens = [ + "y", + "Y", + "u", + "q", + "Q", + "M", + "L", + "w", + "d", + "D", + "E", + "e", + "c", + "t", + "T", + ]; +} + +class AMPMParser extends Parser { + priority = 80; + + parse(dateString, token, match) { + switch (token) { + case "a": + case "aa": + case "aaa": + return ( + match.dayPeriod(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.dayPeriod(dateString, { + width: "narrow", + context: "formatting", + }) + ); + + case "aaaaa": + return match.dayPeriod(dateString, { + width: "narrow", + context: "formatting", + }); + case "aaaa": + default: + return ( + match.dayPeriod(dateString, { + width: "wide", + context: "formatting", + }) || + match.dayPeriod(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.dayPeriod(dateString, { + width: "narrow", + context: "formatting", + }) + ); + } + } + + set(date, _flags, value) { + date.setHours(dayPeriodEnumToHours(value), 0, 0, 0); + return date; + } + + incompatibleTokens = ["b", "B", "H", "k", "t", "T"]; +} + +class AMPMMidnightParser extends Parser { + priority = 80; + + parse(dateString, token, match) { + switch (token) { + case "b": + case "bb": + case "bbb": + return ( + match.dayPeriod(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.dayPeriod(dateString, { + width: "narrow", + context: "formatting", + }) + ); + + case "bbbbb": + return match.dayPeriod(dateString, { + width: "narrow", + context: "formatting", + }); + case "bbbb": + default: + return ( + match.dayPeriod(dateString, { + width: "wide", + context: "formatting", + }) || + match.dayPeriod(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.dayPeriod(dateString, { + width: "narrow", + context: "formatting", + }) + ); + } + } + + set(date, _flags, value) { + date.setHours(dayPeriodEnumToHours(value), 0, 0, 0); + return date; + } + + incompatibleTokens = ["a", "B", "H", "k", "t", "T"]; +} + +// in the morning, in the afternoon, in the evening, at night +class DayPeriodParser extends Parser { + priority = 80; + + parse(dateString, token, match) { + switch (token) { + case "B": + case "BB": + case "BBB": + return ( + match.dayPeriod(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.dayPeriod(dateString, { + width: "narrow", + context: "formatting", + }) + ); + + case "BBBBB": + return match.dayPeriod(dateString, { + width: "narrow", + context: "formatting", + }); + case "BBBB": + default: + return ( + match.dayPeriod(dateString, { + width: "wide", + context: "formatting", + }) || + match.dayPeriod(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.dayPeriod(dateString, { + width: "narrow", + context: "formatting", + }) + ); + } + } + + set(date, _flags, value) { + date.setHours(dayPeriodEnumToHours(value), 0, 0, 0); + return date; + } + + incompatibleTokens = ["a", "b", "t", "T"]; +} + +class Hour1to12Parser extends Parser { + priority = 70; + + parse(dateString, token, match) { + switch (token) { + case "h": + return parseNumericPattern(numericPatterns.hour12h, dateString); + case "ho": + return match.ordinalNumber(dateString, { unit: "hour" }); + default: + return parseNDigits(token.length, dateString); + } + } + + validate(_date, value) { + return value >= 1 && value <= 12; + } + + set(date, _flags, value) { + const isPM = date.getHours() >= 12; + if (isPM && value < 12) { + date.setHours(value + 12, 0, 0, 0); + } else if (!isPM && value === 12) { + date.setHours(0, 0, 0, 0); + } else { + date.setHours(value, 0, 0, 0); + } + return date; + } + + incompatibleTokens = ["H", "K", "k", "t", "T"]; +} + +class Hour0to23Parser extends Parser { + priority = 70; + + parse(dateString, token, match) { + switch (token) { + case "H": + return parseNumericPattern(numericPatterns.hour23h, dateString); + case "Ho": + return match.ordinalNumber(dateString, { unit: "hour" }); + default: + return parseNDigits(token.length, dateString); + } + } + + validate(_date, value) { + return value >= 0 && value <= 23; + } + + set(date, _flags, value) { + date.setHours(value, 0, 0, 0); + return date; + } + + incompatibleTokens = ["a", "b", "h", "K", "k", "t", "T"]; +} + +class Hour0To11Parser extends Parser { + priority = 70; + + parse(dateString, token, match) { + switch (token) { + case "K": + return parseNumericPattern(numericPatterns.hour11h, dateString); + case "Ko": + return match.ordinalNumber(dateString, { unit: "hour" }); + default: + return parseNDigits(token.length, dateString); + } + } + + validate(_date, value) { + return value >= 0 && value <= 11; + } + + set(date, _flags, value) { + const isPM = date.getHours() >= 12; + if (isPM && value < 12) { + date.setHours(value + 12, 0, 0, 0); + } else { + date.setHours(value, 0, 0, 0); + } + return date; + } + + incompatibleTokens = ["h", "H", "k", "t", "T"]; +} + +class Hour1To24Parser extends Parser { + priority = 70; + + parse(dateString, token, match) { + switch (token) { + case "k": + return parseNumericPattern(numericPatterns.hour24h, dateString); + case "ko": + return match.ordinalNumber(dateString, { unit: "hour" }); + default: + return parseNDigits(token.length, dateString); + } + } + + validate(_date, value) { + return value >= 1 && value <= 24; + } + + set(date, _flags, value) { + const hours = value <= 24 ? value % 24 : value; + date.setHours(hours, 0, 0, 0); + return date; + } + + incompatibleTokens = ["a", "b", "h", "H", "K", "t", "T"]; +} + +class MinuteParser extends Parser { + priority = 60; + + parse(dateString, token, match) { + switch (token) { + case "m": + return parseNumericPattern(numericPatterns.minute, dateString); + case "mo": + return match.ordinalNumber(dateString, { unit: "minute" }); + default: + return parseNDigits(token.length, dateString); + } + } + + validate(_date, value) { + return value >= 0 && value <= 59; + } + + set(date, _flags, value) { + date.setMinutes(value, 0, 0); + return date; + } + + incompatibleTokens = ["t", "T"]; +} + +class SecondParser extends Parser { + priority = 50; + + parse(dateString, token, match) { + switch (token) { + case "s": + return parseNumericPattern(numericPatterns.second, dateString); + case "so": + return match.ordinalNumber(dateString, { unit: "second" }); + default: + return parseNDigits(token.length, dateString); + } + } + + validate(_date, value) { + return value >= 0 && value <= 59; + } + + set(date, _flags, value) { + date.setSeconds(value, 0); + return date; + } + + incompatibleTokens = ["t", "T"]; +} + +class FractionOfSecondParser extends Parser { + priority = 30; + + parse(dateString, token) { + const valueCallback = (value) => + Math.trunc(value * Math.pow(10, -token.length + 3)); + return mapValue(parseNDigits(token.length, dateString), valueCallback); + } + + set(date, _flags, value) { + date.setMilliseconds(value); + return date; + } + + incompatibleTokens = ["t", "T"]; +} + +// Timezone (ISO-8601. +00:00 is `'Z'`) +class ISOTimezoneWithZParser extends Parser { + priority = 10; + + parse(dateString, token) { + switch (token) { + case "X": + return parseTimezonePattern( + timezonePatterns.basicOptionalMinutes, + dateString, + ); + case "XX": + return parseTimezonePattern(timezonePatterns.basic, dateString); + case "XXXX": + return parseTimezonePattern( + timezonePatterns.basicOptionalSeconds, + dateString, + ); + case "XXXXX": + return parseTimezonePattern( + timezonePatterns.extendedOptionalSeconds, + dateString, + ); + case "XXX": + default: + return parseTimezonePattern(timezonePatterns.extended, dateString); + } + } + + set(date, flags, value) { + if (flags.timestampIsSet) return date; + return constructFrom( + date, + date.getTime() - getTimezoneOffsetInMilliseconds(date) - value, + ); + } + + incompatibleTokens = ["t", "T", "x"]; +} + +// Timezone (ISO-8601) +class ISOTimezoneParser extends Parser { + priority = 10; + + parse(dateString, token) { + switch (token) { + case "x": + return parseTimezonePattern( + timezonePatterns.basicOptionalMinutes, + dateString, + ); + case "xx": + return parseTimezonePattern(timezonePatterns.basic, dateString); + case "xxxx": + return parseTimezonePattern( + timezonePatterns.basicOptionalSeconds, + dateString, + ); + case "xxxxx": + return parseTimezonePattern( + timezonePatterns.extendedOptionalSeconds, + dateString, + ); + case "xxx": + default: + return parseTimezonePattern(timezonePatterns.extended, dateString); + } + } + + set(date, flags, value) { + if (flags.timestampIsSet) return date; + return constructFrom( + date, + date.getTime() - getTimezoneOffsetInMilliseconds(date) - value, + ); + } + + incompatibleTokens = ["t", "T", "X"]; +} + +class TimestampSecondsParser extends Parser { + priority = 40; + + parse(dateString) { + return parseAnyDigitsSigned(dateString); + } + + set(date, _flags, value) { + return [constructFrom(date, value * 1000), { timestampIsSet: true }]; + } + + incompatibleTokens = "*"; +} + +class TimestampMillisecondsParser extends Parser { + priority = 20; + + parse(dateString) { + return parseAnyDigitsSigned(dateString); + } + + set(date, _flags, value) { + return [constructFrom(date, value), { timestampIsSet: true }]; + } + + incompatibleTokens = "*"; +} + +/* + * | | Unit | | Unit | + * |-----|--------------------------------|-----|--------------------------------| + * | a | AM, PM | A* | Milliseconds in day | + * | b | AM, PM, noon, midnight | B | Flexible day period | + * | c | Stand-alone local day of week | C* | Localized hour w/ day period | + * | d | Day of month | D | Day of year | + * | e | Local day of week | E | Day of week | + * | f | | F* | Day of week in month | + * | g* | Modified Julian day | G | Era | + * | h | Hour [1-12] | H | Hour [0-23] | + * | i! | ISO day of week | I! | ISO week of year | + * | j* | Localized hour w/ day period | J* | Localized hour w/o day period | + * | k | Hour [1-24] | K | Hour [0-11] | + * | l* | (deprecated) | L | Stand-alone month | + * | m | Minute | M | Month | + * | n | | N | | + * | o! | Ordinal number modifier | O* | Timezone (GMT) | + * | p | | P | | + * | q | Stand-alone quarter | Q | Quarter | + * | r* | Related Gregorian year | R! | ISO week-numbering year | + * | s | Second | S | Fraction of second | + * | t! | Seconds timestamp | T! | Milliseconds timestamp | + * | u | Extended year | U* | Cyclic year | + * | v* | Timezone (generic non-locat.) | V* | Timezone (location) | + * | w | Local week of year | W* | Week of month | + * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) | + * | y | Year (abs) | Y | Local week-numbering year | + * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) | + * + * Letters marked by * are not implemented but reserved by Unicode standard. + * + * Letters marked by ! are non-standard, but implemented by date-fns: + * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs) + * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days, + * i.e. 7 for Sunday, 1 for Monday, etc. + * - `I` is ISO week of year, as opposed to `w` which is local week of year. + * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year. + * `R` is supposed to be used in conjunction with `I` and `i` + * for universal ISO week-numbering date, whereas + * `Y` is supposed to be used in conjunction with `w` and `e` + * for week-numbering date specific to the locale. + */ +const parsers = { + G: new EraParser(), + y: new YearParser(), + Y: new LocalWeekYearParser(), + R: new ISOWeekYearParser(), + u: new ExtendedYearParser(), + Q: new QuarterParser(), + q: new StandAloneQuarterParser(), + M: new MonthParser(), + L: new StandAloneMonthParser(), + w: new LocalWeekParser(), + I: new ISOWeekParser(), + d: new DateParser(), + D: new DayOfYearParser(), + E: new DayParser(), + e: new LocalDayParser(), + c: new StandAloneLocalDayParser(), + i: new ISODayParser(), + a: new AMPMParser(), + b: new AMPMMidnightParser(), + B: new DayPeriodParser(), + h: new Hour1to12Parser(), + H: new Hour0to23Parser(), + K: new Hour0To11Parser(), + k: new Hour1To24Parser(), + m: new MinuteParser(), + s: new SecondParser(), + S: new FractionOfSecondParser(), + X: new ISOTimezoneWithZParser(), + x: new ISOTimezoneParser(), + t: new TimestampSecondsParser(), + T: new TimestampMillisecondsParser(), +}; + +/** + * The {@link parse} function options. + */ + +// This RegExp consists of three parts separated by `|`: +// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token +// (one of the certain letters followed by `o`) +// - (\w)\1* matches any sequences of the same letter +// - '' matches two quote characters in a row +// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('), +// except a single quote symbol, which ends the sequence. +// Two quote characters do not end the sequence. +// If there is no matching single quote +// then the sequence will continue until the end of the string. +// - . matches any single character unmatched by previous parts of the RegExps +const formattingTokensRegExp = + /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g; + +// This RegExp catches symbols escaped by quotes, and also +// sequences of symbols P, p, and the combinations like `PPPPPPPppppp` +const longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g; + +const escapedStringRegExp = /^'([^]*?)'?$/; +const doubleQuoteRegExp = /''/g; + +const notWhitespaceRegExp = /\S/; +const unescapedLatinCharacterRegExp = /[a-zA-Z]/; + +/** + * @name parse + * @category Common Helpers + * @summary Parse the date. + * + * @description + * Return the date parsed from string using the given format string. + * + * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries. + * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md + * + * The characters in the format string wrapped between two single quotes characters (') are escaped. + * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote. + * + * Format of the format string is based on Unicode Technical Standard #35: + * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table + * with a few additions (see note 5 below the table). + * + * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited + * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception: + * + * ```javascript + * parse('23 AM', 'HH a', new Date()) + * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time + * ``` + * + * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true + * + * Accepted format string patterns: + * | Unit |Prior| Pattern | Result examples | Notes | + * |---------------------------------|-----|---------|-----------------------------------|-------| + * | Era | 140 | G..GGG | AD, BC | | + * | | | GGGG | Anno Domini, Before Christ | 2 | + * | | | GGGGG | A, B | | + * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 | + * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 | + * | | | yy | 44, 01, 00, 17 | 4 | + * | | | yyy | 044, 001, 123, 999 | 4 | + * | | | yyyy | 0044, 0001, 1900, 2017 | 4 | + * | | | yyyyy | ... | 2,4 | + * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 | + * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 | + * | | | YY | 44, 01, 00, 17 | 4,6 | + * | | | YYY | 044, 001, 123, 999 | 4 | + * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 | + * | | | YYYYY | ... | 2,4 | + * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 | + * | | | RR | -43, 01, 00, 17 | 4,5 | + * | | | RRR | -043, 001, 123, 999, -999 | 4,5 | + * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 | + * | | | RRRRR | ... | 2,4,5 | + * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 | + * | | | uu | -43, 01, 99, -99 | 4 | + * | | | uuu | -043, 001, 123, 999, -999 | 4 | + * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 | + * | | | uuuuu | ... | 2,4 | + * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | | + * | | | Qo | 1st, 2nd, 3rd, 4th | 5 | + * | | | QQ | 01, 02, 03, 04 | | + * | | | QQQ | Q1, Q2, Q3, Q4 | | + * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 | + * | | | QQQQQ | 1, 2, 3, 4 | 4 | + * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | | + * | | | qo | 1st, 2nd, 3rd, 4th | 5 | + * | | | qq | 01, 02, 03, 04 | | + * | | | qqq | Q1, Q2, Q3, Q4 | | + * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 | + * | | | qqqqq | 1, 2, 3, 4 | 3 | + * | Month (formatting) | 110 | M | 1, 2, ..., 12 | | + * | | | Mo | 1st, 2nd, ..., 12th | 5 | + * | | | MM | 01, 02, ..., 12 | | + * | | | MMM | Jan, Feb, ..., Dec | | + * | | | MMMM | January, February, ..., December | 2 | + * | | | MMMMM | J, F, ..., D | | + * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | | + * | | | Lo | 1st, 2nd, ..., 12th | 5 | + * | | | LL | 01, 02, ..., 12 | | + * | | | LLL | Jan, Feb, ..., Dec | | + * | | | LLLL | January, February, ..., December | 2 | + * | | | LLLLL | J, F, ..., D | | + * | Local week of year | 100 | w | 1, 2, ..., 53 | | + * | | | wo | 1st, 2nd, ..., 53th | 5 | + * | | | ww | 01, 02, ..., 53 | | + * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 | + * | | | Io | 1st, 2nd, ..., 53th | 5 | + * | | | II | 01, 02, ..., 53 | 5 | + * | Day of month | 90 | d | 1, 2, ..., 31 | | + * | | | do | 1st, 2nd, ..., 31st | 5 | + * | | | dd | 01, 02, ..., 31 | | + * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 | + * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 | + * | | | DD | 01, 02, ..., 365, 366 | 7 | + * | | | DDD | 001, 002, ..., 365, 366 | | + * | | | DDDD | ... | 2 | + * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | | + * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 | + * | | | EEEEE | M, T, W, T, F, S, S | | + * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | | + * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 | + * | | | io | 1st, 2nd, ..., 7th | 5 | + * | | | ii | 01, 02, ..., 07 | 5 | + * | | | iii | Mon, Tue, Wed, ..., Sun | 5 | + * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 | + * | | | iiiii | M, T, W, T, F, S, S | 5 | + * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 | + * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | | + * | | | eo | 2nd, 3rd, ..., 1st | 5 | + * | | | ee | 02, 03, ..., 01 | | + * | | | eee | Mon, Tue, Wed, ..., Sun | | + * | | | eeee | Monday, Tuesday, ..., Sunday | 2 | + * | | | eeeee | M, T, W, T, F, S, S | | + * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | | + * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | | + * | | | co | 2nd, 3rd, ..., 1st | 5 | + * | | | cc | 02, 03, ..., 01 | | + * | | | ccc | Mon, Tue, Wed, ..., Sun | | + * | | | cccc | Monday, Tuesday, ..., Sunday | 2 | + * | | | ccccc | M, T, W, T, F, S, S | | + * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | | + * | AM, PM | 80 | a..aaa | AM, PM | | + * | | | aaaa | a.m., p.m. | 2 | + * | | | aaaaa | a, p | | + * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | | + * | | | bbbb | a.m., p.m., noon, midnight | 2 | + * | | | bbbbb | a, p, n, mi | | + * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | | + * | | | BBBB | at night, in the morning, ... | 2 | + * | | | BBBBB | at night, in the morning, ... | | + * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | | + * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 | + * | | | hh | 01, 02, ..., 11, 12 | | + * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | | + * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 | + * | | | HH | 00, 01, 02, ..., 23 | | + * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | | + * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 | + * | | | KK | 01, 02, ..., 11, 00 | | + * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | | + * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 | + * | | | kk | 24, 01, 02, ..., 23 | | + * | Minute | 60 | m | 0, 1, ..., 59 | | + * | | | mo | 0th, 1st, ..., 59th | 5 | + * | | | mm | 00, 01, ..., 59 | | + * | Second | 50 | s | 0, 1, ..., 59 | | + * | | | so | 0th, 1st, ..., 59th | 5 | + * | | | ss | 00, 01, ..., 59 | | + * | Seconds timestamp | 40 | t | 512969520 | | + * | | | tt | ... | 2 | + * | Fraction of second | 30 | S | 0, 1, ..., 9 | | + * | | | SS | 00, 01, ..., 99 | | + * | | | SSS | 000, 001, ..., 999 | | + * | | | SSSS | ... | 2 | + * | Milliseconds timestamp | 20 | T | 512969520900 | | + * | | | TT | ... | 2 | + * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | | + * | | | XX | -0800, +0530, Z | | + * | | | XXX | -08:00, +05:30, Z | | + * | | | XXXX | -0800, +0530, Z, +123456 | 2 | + * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | | + * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | | + * | | | xx | -0800, +0530, +0000 | | + * | | | xxx | -08:00, +05:30, +00:00 | 2 | + * | | | xxxx | -0800, +0530, +0000, +123456 | | + * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | | + * | Long localized date | NA | P | 05/29/1453 | 5,8 | + * | | | PP | May 29, 1453 | | + * | | | PPP | May 29th, 1453 | | + * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 | + * | Long localized time | NA | p | 12:00 AM | 5,8 | + * | | | pp | 12:00:00 AM | | + * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | | + * | | | PPpp | May 29, 1453, 12:00:00 AM | | + * | | | PPPpp | May 29th, 1453 at ... | | + * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 | + * Notes: + * 1. "Formatting" units (e.g. formatting quarter) in the default en-US locale + * are the same as "stand-alone" units, but are different in some languages. + * "Formatting" units are declined according to the rules of the language + * in the context of a date. "Stand-alone" units are always nominative singular. + * In `format` function, they will produce different result: + * + * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'` + * + * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'` + * + * `parse` will try to match both formatting and stand-alone units interchangeably. + * + * 2. Any sequence of the identical letters is a pattern, unless it is escaped by + * the single quote characters (see below). + * If the sequence is longer than listed in table: + * - for numerical units (`yyyyyyyy`) `parse` will try to match a number + * as wide as the sequence + * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit. + * These variations are marked with "2" in the last column of the table. + * + * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales. + * These tokens represent the shortest form of the quarter. + * + * 4. The main difference between `y` and `u` patterns are B.C. years: + * + * | Year | `y` | `u` | + * |------|-----|-----| + * | AC 1 | 1 | 1 | + * | BC 1 | 1 | 0 | + * | BC 2 | 2 | -1 | + * + * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`: + * + * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00` + * + * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00` + * + * while `uu` will just assign the year as is: + * + * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00` + * + * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00` + * + * The same difference is true for local and ISO week-numbering years (`Y` and `R`), + * except local week-numbering years are dependent on `options.weekStartsOn` + * and `options.firstWeekContainsDate` (compare [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear) + * and [setWeekYear](https://date-fns.org/docs/setWeekYear)). + * + * 5. These patterns are not in the Unicode Technical Standard #35: + * - `i`: ISO day of week + * - `I`: ISO week of year + * - `R`: ISO week-numbering year + * - `o`: ordinal number modifier + * - `P`: long localized date + * - `p`: long localized time + * + * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years. + * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md + * + * 7. `D` and `DD` tokens represent days of the year but they are often confused with days of the month. + * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md + * + * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based + * on the given locale. + * + * using `en-US` locale: `P` => `MM/dd/yyyy` + * using `en-US` locale: `p` => `hh:mm a` + * using `pt-BR` locale: `P` => `dd/MM/yyyy` + * using `pt-BR` locale: `p` => `HH:mm` + * + * Values will be assigned to the date in the descending order of its unit's priority. + * Units of an equal priority overwrite each other in the order of appearance. + * + * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year), + * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing. + * + * `referenceDate` must be passed for correct work of the function. + * If you're not sure which `referenceDate` to supply, create a new instance of Date: + * `parse('02/11/2014', 'MM/dd/yyyy', new Date())` + * In this case parsing will be done in the context of the current date. + * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`, + * then `Invalid Date` will be returned. + * + * The result may vary by locale. + * + * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned. + * + * If parsing failed, `Invalid Date` will be returned. + * Invalid Date is a Date, whose time value is NaN. + * Time value of Date: http://es5.github.io/#x15.9.1.1 + * + * @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). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. + * + * @param dateStr - The string to parse + * @param formatStr - The string of tokens + * @param referenceDate - defines values missing from the parsed dateString + * @param options - An object with options. + * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md + * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md + * + * @returns The parsed date + * + * @throws `options.locale` must contain `match` property + * @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 + * @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 + * @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 + * @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 + * @throws format string contains an unescaped latin alphabet character + * + * @example + * // Parse 11 February 2014 from middle-endian format: + * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date()) + * //=> Tue Feb 11 2014 00:00:00 + * + * @example + * // Parse 28th of February in Esperanto locale in the context of 2010 year: + * import eo from 'date-fns/locale/eo' + * var result = parse('28-a de februaro', "do 'de' MMMM", new Date(2010, 0, 1), { + * locale: eo + * }) + * //=> Sun Feb 28 2010 00:00:00 + */ +function parse(dateStr, formatStr, referenceDate, options) { + const invalidDate = () => constructFrom(referenceDate, NaN); + const defaultOptions = getDefaultOptions(); + const locale = defaultOptions.locale ?? enUS; + + const firstWeekContainsDate = + defaultOptions.firstWeekContainsDate ?? + defaultOptions.locale?.options?.firstWeekContainsDate ?? + 1; + + const weekStartsOn = + defaultOptions.weekStartsOn ?? + defaultOptions.locale?.options?.weekStartsOn ?? + 0; + + if (!formatStr) + return dateStr ? invalidDate() : toDate(referenceDate, options?.in); + + const subFnOptions = { + firstWeekContainsDate, + weekStartsOn, + locale, + }; + + // If timezone isn't specified, it will try to use the context or + // the reference date and fallback to the system time zone. + const setters = [new DateTimezoneSetter(options?.in, referenceDate)]; + + const tokens = formatStr + .match(longFormattingTokensRegExp) + .map((substring) => { + const firstCharacter = substring[0]; + if (firstCharacter in longFormatters) { + const longFormatter = longFormatters[firstCharacter]; + return longFormatter(substring, locale.formatLong); + } + return substring; + }) + .join("") + .match(formattingTokensRegExp); + + const usedTokens = []; + + for (let token of tokens) { + if ( + isProtectedWeekYearToken(token) + ) { + warnOrThrowProtectedError(token, formatStr, dateStr); + } + if ( + isProtectedDayOfYearToken(token) + ) { + warnOrThrowProtectedError(token, formatStr, dateStr); + } + + const firstCharacter = token[0]; + const parser = parsers[firstCharacter]; + if (parser) { + const { incompatibleTokens } = parser; + if (Array.isArray(incompatibleTokens)) { + const incompatibleToken = usedTokens.find( + (usedToken) => + incompatibleTokens.includes(usedToken.token) || + usedToken.token === firstCharacter, + ); + if (incompatibleToken) { + throw new RangeError( + `The format string mustn't contain \`${incompatibleToken.fullToken}\` and \`${token}\` at the same time`, + ); + } + } else if (parser.incompatibleTokens === "*" && usedTokens.length > 0) { + throw new RangeError( + `The format string mustn't contain \`${token}\` and any other token at the same time`, + ); + } + + usedTokens.push({ token: firstCharacter, fullToken: token }); + + const parseResult = parser.run( + dateStr, + token, + locale.match, + subFnOptions, + ); + + if (!parseResult) { + return invalidDate(); + } + + setters.push(parseResult.setter); + + dateStr = parseResult.rest; + } else { + if (firstCharacter.match(unescapedLatinCharacterRegExp)) { + throw new RangeError( + "Format string contains an unescaped latin alphabet character `" + + firstCharacter + + "`", + ); + } + + // Replace two single quote characters with one single quote character + if (token === "''") { + token = "'"; + } else if (firstCharacter === "'") { + token = cleanEscapedString(token); + } + + // Cut token from string, or, if string doesn't match the token, return Invalid Date + if (dateStr.indexOf(token) === 0) { + dateStr = dateStr.slice(token.length); + } else { + return invalidDate(); + } + } + } + + // Check if the remaining input contains something other than whitespace + if (dateStr.length > 0 && notWhitespaceRegExp.test(dateStr)) { + return invalidDate(); + } + + const uniquePrioritySetters = setters + .map((setter) => setter.priority) + .sort((a, b) => b - a) + .filter((priority, index, array) => array.indexOf(priority) === index) + .map((priority) => + setters + .filter((setter) => setter.priority === priority) + .sort((a, b) => b.subPriority - a.subPriority), + ) + .map((setterArray) => setterArray[0]); + + let date = toDate(referenceDate, options?.in); + + if (isNaN(+date)) return invalidDate(); + + const flags = {}; + for (const setter of uniquePrioritySetters) { + if (!setter.validate(date, subFnOptions)) { + return invalidDate(); + } + + const result = setter.set(date, flags, subFnOptions); + // Result is tuple (date, flags) + if (Array.isArray(result)) { + date = result[0]; + Object.assign(flags, result[1]); + // Result is date + } else { + date = result; + } + } + + return date; +} + +function cleanEscapedString(input) { + return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, "'"); +} + +class StoreHour extends StorefrontResource { + constructor(attributes = {}, adapter = undefined, 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 (!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() { + if (!isValid(this.startDateInstance) || !isValid(this.endDateInstance)) { + return `${this.getAttribute('start')} - ${this.getAttribute('end')}`; + } + + return `${format(this.startDateInstance, 'p')} - ${format(this.endDateInstance, '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 = undefined, 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() { + return new at((this.getAttribute('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'); + + return typeof store === 'string' ? store : this.storeData?.id || this.storeData?.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 (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 { + constructor(attributes = {}, adapter = undefined, 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 = undefined, 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 = undefined, 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 = undefined, 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 = undefined, 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() { + return this.getAttribute('token'); + } + + 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, + }, + }; + + return this.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 = undefined, 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() { + 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 = undefined, 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 = undefined, 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() { + 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; + } + + 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 = undefined, 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 = undefined, options = {}) { + super(attributes, adapter, 'checkout', { actions: checkoutActions, ...options }); + } + + initialize() { + return this.store.initialize(...arguments); + } + + captureOrder() { + return this.store.captureOrder(...arguments); + } + + createStripeSetupIntent() { + return this.store.createStripeSetupIntent(...arguments); + } + + updateStripePaymentIntent() { + return this.store.updateStripePaymentIntent(...arguments); + } + + getStatus() { + return this.store.getStatus(...arguments); + } + + captureQPay() { + return this.store.captureQPay(...arguments); + } + + captureQPayCallback() { + return this.store.captureQPayCallback(...arguments); + } +} + +q('resource', 'Checkout', Checkout); + +class FoodTruck extends StorefrontResource { + constructor(attributes = {}, adapter = undefined, 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 { + /** + * 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 */ + 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 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() { + return new Storefront(...arguments); + } + + 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..f3c4b73 --- /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.js","../../src/utils/is-phone.js","../../src/utils/format-currency.js","../../src/utils/is-key-valid.js","../../src/utils/is-empty.js","../../src/utils/array.js","../../src/resource.js","../../src/resources/review.js","../../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/_lib/normalizeDates.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/startOfISOWeekYear.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/isValid.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/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/en-US/_lib/localize.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/_lib/match.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/getDayOfYear.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/getWeekYear.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/getWeek.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/getDefaultOptions.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/transpose.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/parse/_lib/Parser.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/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/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/setWeek.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/setISOWeek.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/parse/_lib/parsers/DateParser.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/setDay.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/setISODay.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/_lib/parsers.js","../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse.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/resources/cart.js","../../src/resources/network.js","../../src/resources/delivery-service-quote.js","../../src/resources/order.js","../../src/resources/checkout.js","../../src/resources/food-truck.js","../../src/resources/order-actions.js","../../src/storefront.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 isPhone(phone = '') {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/.test(phone);\n}\n\nexport default isPhone;\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 isKeyValid(key) {\n return typeof key === 'string' && key.length > 30 && (key.startsWith('store_') || key.startsWith('network_'));\n}\n\nexport default isKeyValid;\n","export function isEmpty(obj) {\n const none = obj === null || obj === undefined;\n if (none) {\n return none;\n }\n\n const objectType = typeof obj;\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\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 {import('@fleetbase/sdk').Adapter} adapter\n * @return {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 = undefined, options = {}) {\n super(attributes, adapter, 'review', options);\n }\n\n getMedia() {\n return this.getPhotos();\n }\n\n getPhotos() {\n return this.getAttribute('photos') ?? [];\n }\n\n getVideos() {\n return this.getMedia().filter((media) => media?.type?.startsWith('video/'));\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 * **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 { 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 { 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\";\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","/**\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","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","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","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","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 { 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 { 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 { 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 { 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 { 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","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","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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 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 = undefined, 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\n if (!isValid(start) || !isValid(end)) {\n return false;\n }\n\n const diff = Math.abs(start.getTime() - end.getTime());\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 if (typeof start !== 'string') {\n return null;\n }\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 if (typeof end !== 'string') {\n return null;\n }\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.getAttribute('start')} - ${this.getAttribute('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 = undefined, 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.length > 0 && 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 if (schedule[hour.day]) {\n schedule[hour.day].pushObject(hour);\n }\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 = undefined, 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 get isQPayGateway() {\n return this.type === 'qpay' || this.code === 'qpay';\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 = undefined, 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 getTags(params = {}) {\n return this.adapter.get('tags', params);\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, this.adapter);\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 = undefined, 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 images() {\n return this.getAttribute('images') ?? [];\n }\n\n videos() {\n return this.getAttribute('videos') ?? [];\n }\n\n hours() {\n return this.getAttribute('hours') ?? [];\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 = undefined, 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 = undefined, 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 {import('@fleetbase/sdk').Adapter} adapter\n * @return {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 return this.performAuthorizedRequest('customers/register-device', { token, platform }, 'POST');\n }\n\n performAuthorizedRequest(endpoint, params = {}, method = 'GET', options = {}) {\n const requestOptions = {\n ...options,\n headers: {\n ...options.headers,\n 'Customer-Token': this.token,\n },\n };\n\n return this.adapter[method.toLowerCase()](endpoint, params, requestOptions);\n }\n\n async getSavedPlaces() {\n const places = await this.performAuthorizedRequest('customers/places');\n return new Collection(places.map((attributes) => new Place(attributes, this.adapter)));\n }\n\n async getOrderHistory(params = {}) {\n const orders = await this.performAuthorizedRequest('customers/orders', params);\n return new Collection(orders.map((attributes) => new Order(attributes, this.adapter)));\n }\n\n getStripeEphemeralKey(params = {}) {\n return this.performAuthorizedRequest('customers/stripe-ephemeral-key', params, 'POST');\n }\n\n getStripeSetupIntent(params = {}) {\n return this.performAuthorizedRequest('customers/stripe-setup-intent', params, 'POST');\n }\n\n startAccountClosure(params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/account-closure', params, 'POST', options);\n }\n\n confirmAccountClosure(code, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/confirm-account-closure', { code, ...params }, 'POST', options);\n }\n\n requestPhoneVerification(phone, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/request-phone-verification', { phone, ...params }, 'POST', options);\n }\n\n verifyPhoneNumber(code, phone, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/verify-phone-number', { code, phone, ...params }, 'POST', options);\n }\n\n updateContactAlias(attributes = {}, options = {}) {\n return this.performAuthorizedRequest(`contacts/${this.id}`, attributes, 'PUT', options).then((response) => {\n this.syncAttributes(response);\n return this;\n });\n }\n}\n\nregister('resource', 'Customer', Customer);\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 = undefined, 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 return this.contents().reduce((subtotal, cartItem) => subtotal + Number(cartItem?.subtotal || 0), 0);\n }\n\n contents() {\n const items = this.getAttribute('items', []);\n return isArray(items) ? items : [];\n }\n\n hasProduct(productId) {\n return this.contents().findIndex((cartItem) => cartItem.product_id === productId) !== -1;\n }\n\n get isEmpty() {\n return this.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 = undefined, 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 = undefined, 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 || (attributes && typeof attributes.get === 'function' && typeof attributes.post === 'function')) {\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 {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 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 }\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 { Order as FleetbaseOrder, register } from '@fleetbase/sdk';\n\nexport default class Order extends FleetbaseOrder {\n constructor(attributes = {}, adapter = undefined, options = {}) {\n super(attributes, adapter, options);\n }\n}\n\nregister('resource', 'Order', Order);\n","import Resource from '../resource.js';\nimport Order from './order.js';\nimport { 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, this.adapter));\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 getStatus: function (checkout, token, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.get(`${this.namespace}/status`, { checkout, token }, options);\n },\n\n captureQPay: function (checkout, params = {}, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.post(`${this.namespace}/capture-qpay`, { checkout, ...params }, options);\n },\n\n captureQPayCallback: function (checkout, params = {}, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.get(`${this.namespace}/capture-qpay`, { checkout, ...params }, options);\n },\n});\n\nexport default class Checkout extends Resource {\n constructor(attributes = {}, adapter = undefined, 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 createStripeSetupIntent() {\n return this.store.createStripeSetupIntent(...arguments);\n }\n\n updateStripePaymentIntent() {\n return this.store.updateStripePaymentIntent(...arguments);\n }\n\n getStatus() {\n return this.store.getStatus(...arguments);\n }\n\n captureQPay() {\n return this.store.captureQPay(...arguments);\n }\n\n captureQPayCallback() {\n return this.store.captureQPayCallback(...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 = undefined, options = {}) {\n super(attributes, adapter, 'food-truck', options);\n }\n}\n\nregister('resource', 'FoodTruck', FoodTruck);\n","import { StoreActions, isResource } from '@fleetbase/sdk';\n\nfunction idFor(value) {\n return isResource(value) ? value.id : value;\n}\n\nexport const orderActions = new StoreActions({\n create: undefined,\n update: undefined,\n findAll: undefined,\n query: undefined,\n queryRecord: undefined,\n\n completePickup: function (order, params = {}, options = {}) {\n return this.adapter.put(`${this.namespace}/picked-up`, { order: idFor(order), ...params }, options);\n },\n\n getReceipt: function (order, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/receipt`, { order: idFor(order), ...params }, options);\n },\n});\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, Order } 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 { orderActions } from './resources/order-actions.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 this.orders = new StorefrontStore('order', this.adapter).extendActions(orderActions);\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, Order, lookup };\n"],"names":["Store","extendStoreActions","lookup","classify","isArray","Resource","register","StoreActions","getDefaultOptions","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","defaultLocale","cleanEscapedString","getInternalDefaultOptions","Collection","Place","Order","ServiceQuote","Adapter","FleetbaseOrder","isResource","detectAdapter"],"mappings":"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AC,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,CA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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,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,CAA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AAC,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,C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GAAG,QAAQ;;AAEzC;AACA;AACA;AACA;AACA;AACO,MAAM,oBAAoB,GAAG,KAAK;;AAEzC;AACA;AACA;AACA;AACA;AACO,MAAM,kBAAkB,GAAG,OAAO;;AAEzC;AACA;AACA;AACA;AACA;AACO,MAAM,oBAAoB,GAAG,IAAI;;AAoGxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC;;ACrNlE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE;AAC3C,EAAE,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC;;AAEpD,EAAE,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,mBAAmB,IAAI,IAAI;AACrE,IAAI,OAAO,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC;;AAE3C,EAAE,IAAI,IAAI,YAAY,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;;AAE9D,EAAE,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC;AACxB;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE;AAC1C;AACA,EAAE,OAAO,aAAa,CAAC,OAAO,IAAI,QAAQ,EAAE,QAAQ,CAAC;AACrD;;ACxCA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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AM,CAAC,mBAAmB,EAAE,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,+EAA+E,CAAC;AACrN;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,wBAAsB;AAC5B,EAAE,uDAAuD;;AAEzD;AACA;AACA,MAAMC,4BAA0B,GAAG,mCAAmC;;AAEtE,MAAMC,qBAAmB,GAAG,cAAc;AAC1C,MAAMC,mBAAiB,GAAG,KAAK;AAC/B,MAAMC,+BAA6B,GAAG,UAAU;;AAIhD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE;AACjD,EAAE,MAAM,cAAc,GAAGL,mBAAiB,EAAE;AAC5C,EAAE,MAAM,MAAM,GAAsB,cAAc,CAAC,MAAM,IAAIM,IAAa;;AAE1E,EAAE,MAAM,qBAAqB;AAC7B,IAEI,cAAc,CAAC,qBAAqB;AACxC,IAAI,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,qBAAqB;AACzD,IAAI,CAAC;;AAEL,EAAE,MAAM,YAAY;AACpB,IAEI,cAAc,CAAC,YAAY;AAC/B,IAAI,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY;AAChD,IAAI,CAAC;;AAEL,EAAE,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;;AAEhD,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;AAC9B,IAAI,MAAM,IAAI,UAAU,CAAC,oBAAoB,CAAC;AAC9C,EAAE;;AAEF,EAAE,IAAI,KAAK,GAAG;AACd,KAAK,KAAK,CAACJ,4BAA0B;AACrC,KAAK,GAAG,CAAC,CAAC,SAAS,KAAK;AACxB,MAAM,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC;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;AAC1B,EAAE,CAAC,EAAE,IAAI,eAAe,EAAE;AAC1B,EAAE,CAAC,EAAE,IAAI,YAAY,EAAE;AACvB,EAAE,CAAC,EAAE,IAAI,YAAY,EAAE;AACvB,EAAE,CAAC,EAAE,IAAI,sBAAsB,EAAE;AACjC,EAAE,CAAC,EAAE,IAAI,sBAAsB,EAAE;AACjC,EAAE,CAAC,EAAE,IAAI,iBAAiB,EAAE;AAC5B,EAAE,CAAC,EAAE,IAAI,sBAAsB,EAAE;AACjC,EAAE,CAAC,EAAE,IAAI,2BAA2B,EAAE;AACtC,CAAC;;ACzFD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,sBAAsB;AAC5B,EAAE,uDAAuD;;AAEzD;AACA;AACA,MAAM,0BAA0B,GAAG,mCAAmC;;AAEtE,MAAM,mBAAmB,GAAG,cAAc;AAC1C,MAAM,iBAAiB,GAAG,KAAK;;AAE/B,MAAM,mBAAmB,GAAG,IAAI;AAChC,MAAM,6BAA6B,GAAG,UAAU;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE;AAClE,EAAE,MAAM,WAAW,GAAG,MAAM,aAAa,CAAgB,aAAa,EAAE,GAAG,CAAC;AAC5E,EAAE,MAAM,cAAc,GAAG,iBAAiB,EAAE;AAC5C,EAAE,MAAM,MAAM,GAAsB,cAAc,CAAC,MAAM,IAAIM,IAAa;;AAE1E,EAAE,MAAM,qBAAqB;AAC7B,IAEI,cAAc,CAAC,qBAAqB;AACxC,IAAI,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,qBAAqB;AACzD,IAAI,CAAC;;AAEL,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","x_google_ignoreList":[0,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,88,89]} \ 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..6b9a0c8 100644 --- a/dist/esm/storefront.js +++ b/dist/esm/storefront.js @@ -1,2 +1,1089 @@ -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 { Store as Store$1, extendStoreActions, lookup, classify, register, Resource, StoreActions, Collection, Place, Order as Order$1, ServiceQuote, Adapter, isResource, detectAdapter } from '@fleetbase/sdk'; +export { lookup } from '@fleetbase/sdk'; +import 'countries-list'; +import { isValid, parse, format } from 'date-fns'; + +class StorefrontStore extends Store$1 { + constructor() { + super(...arguments); + } + + extendActions(actions = []) { + return extendStoreActions(this, actions); + } + + serialize(json) { + return lookup('resource', classify(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.size === 'number') { + return !obj.size; + } + + if (typeof obj.length === 'number' && objectType !== 'function') { + return !obj.length; + } + + return false; +} + +const { isArray: isArray$1 } = Array; + +class StorefrontResource extends Resource { + /** + * 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; + } +} + +register('resource', 'StorefrontResource', StorefrontResource); + +const reviewActions = new StoreActions({ + 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 = undefined, options = {}) { + super(attributes, adapter, 'review', options); + } + + getMedia() { + return this.getPhotos(); + } + + getPhotos() { + return this.getAttribute('photos') ?? []; + } + + getVideos() { + return this.getMedia().filter((media) => media?.type?.startsWith('video/')); + } +} + +register('resource', 'Review', Review); + +class StoreHour extends StorefrontResource { + constructor(attributes = {}, adapter = undefined, 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 (!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() { + if (!isValid(this.startDateInstance) || !isValid(this.endDateInstance)) { + return `${this.getAttribute('start')} - ${this.getAttribute('end')}`; + } + + return `${format(this.startDateInstance, 'p')} - ${format(this.endDateInstance, '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!'); + } +} + +register('resource', 'StoreHour', StoreHour); + +class StoreLocation extends StorefrontResource { + constructor(attributes = {}, adapter = undefined, 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() { + return new Collection((this.getAttribute('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'); + + return typeof store === 'string' ? store : this.storeData?.id || this.storeData?.public_id; + } + + /** Typed embedded merchant when requested with `with_store`. */ + get merchant() { + return this.storeData ? lookup('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 Collection(); + } + + for (let i = 0; i < this.hours.length; i++) { + const hour = this.hours.objectAt(i); + + if (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!'); + } +} + +register('resource', 'StoreLocation', StoreLocation); + +class PaymentGateway extends StorefrontResource { + constructor(attributes = {}, adapter = undefined, 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!'); + } +} + +register('resource', 'PaymentGateway', PaymentGateway); + +class Store extends StorefrontResource { + constructor(attributes = {}, adapter = undefined, 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))); + }); + } + + getTags(params = {}) { + return this.adapter.get('tags', params); + } + + 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, 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 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); + +class Product extends StorefrontResource { + constructor(attributes = {}, adapter = undefined, 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 Collection(reviews.map((attributes) => new Review(attributes, this.adapter))); + }); + } +} + +register('resource', 'Product', Product); + +class Category extends StorefrontResource { + constructor(attributes = {}, adapter = undefined, 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); + +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); + }, +}); + +class Customer extends StorefrontResource { + constructor(attributes = {}, adapter = undefined, 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() { + return this.getAttribute('token'); + } + + 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, + }, + }; + + return this.adapter[method.toLowerCase()](endpoint, params, requestOptions); + } + + async getSavedPlaces() { + const places = await this.performAuthorizedRequest('customers/places'); + return new Collection(places.map((attributes) => new Place(attributes, this.adapter))); + } + + async getOrderHistory(params = {}) { + const orders = await this.performAuthorizedRequest('customers/orders', params); + return new Collection(orders.map((attributes) => new Order$1(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; + }); + } +} + +register('resource', 'Customer', Customer); + +const { isArray } = Array; + +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); + }, +}); + +class Cart extends StorefrontResource { + constructor(attributes = {}, adapter = undefined, 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() { + 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; + } +} + +register('resource', 'Cart', Cart); + +class Network extends StorefrontResource { + constructor(attributes = {}, adapter = undefined, 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 Collection(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); + } +} + +register('resource', 'Network', Network); + +class DeliveryServiceQuote extends ServiceQuote { + constructor(attributes = {}, adapter = undefined, options = {}) { + let finalAttributes = attributes; + let finalAdapter = 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; + } + + // 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() { + 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; + } + + const serviceQuotes = await this.adapter.get('service-quotes/from-cart', { + origin, + destination, + cart, + config, + all, + }); + + if (isArray$1(serviceQuotes)) { + return new Collection(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); + } +} + +register('resource', 'DeliveryServiceQuote', DeliveryServiceQuote); + +class Order extends Order$1 { + constructor(attributes = {}, adapter = undefined, options = {}) { + super(attributes, adapter, options); + } +} + +register('resource', 'Order', Order); + +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, this.adapter)); + }, + + 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); + }, + + getStatus: function (checkout, token, options = {}) { + if (isResource(checkout)) { + checkout = checkout.id; + } + + return this.adapter.get(`${this.namespace}/status`, { checkout, token }, options); + }, + + captureQPay: function (checkout, params = {}, options = {}) { + if (isResource(checkout)) { + checkout = checkout.id; + } + + return this.adapter.post(`${this.namespace}/capture-qpay`, { checkout, ...params }, options); + }, + + captureQPayCallback: function (checkout, params = {}, options = {}) { + if (isResource(checkout)) { + checkout = checkout.id; + } + + return this.adapter.get(`${this.namespace}/capture-qpay`, { checkout, ...params }, options); + }, +}); + +class Checkout extends StorefrontResource { + constructor(attributes = {}, adapter = undefined, options = {}) { + super(attributes, adapter, 'checkout', { actions: checkoutActions, ...options }); + } + + initialize() { + return this.store.initialize(...arguments); + } + + captureOrder() { + return this.store.captureOrder(...arguments); + } + + createStripeSetupIntent() { + return this.store.createStripeSetupIntent(...arguments); + } + + updateStripePaymentIntent() { + return this.store.updateStripePaymentIntent(...arguments); + } + + getStatus() { + return this.store.getStatus(...arguments); + } + + captureQPay() { + return this.store.captureQPay(...arguments); + } + + captureQPayCallback() { + return this.store.captureQPayCallback(...arguments); + } +} + +register('resource', 'Checkout', Checkout); + +class FoodTruck extends StorefrontResource { + constructor(attributes = {}, adapter = undefined, options = {}) { + super(attributes, adapter, 'food-truck', options); + } +} + +register('resource', 'FoodTruck', FoodTruck); + +function idFor(value) { + return isResource(value) ? value.id : value; +} + +const orderActions = new StoreActions({ + 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 { + /** + * 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); + this.orders = new StorefrontStore('order', this.adapter).extendActions(orderActions); + + 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 { Cart, Category, Checkout, Customer, DeliveryServiceQuote, FoodTruck, Network, Order, PaymentGateway, Product, Review, Store, StoreHour, StoreLocation, Storefront as default }; //# sourceMappingURL=storefront.js.map diff --git a/dist/esm/storefront.js.map b/dist/esm/storefront.js.map index 2681bc8..357315e 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":["../../src/store.js","../../src/utils/is-phone.js","../../src/utils/format-currency.js","../../src/utils/is-key-valid.js","../../src/utils/is-empty.js","../../src/utils/array.js","../../src/resource.js","../../src/resources/review.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/resources/cart.js","../../src/resources/network.js","../../src/resources/delivery-service-quote.js","../../src/resources/order.js","../../src/resources/checkout.js","../../src/resources/food-truck.js","../../src/resources/order-actions.js","../../src/storefront.js"],"sourcesContent":["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 isPhone(phone = '') {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/.test(phone);\n}\n\nexport default isPhone;\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 isKeyValid(key) {\n return typeof key === 'string' && key.length > 30 && (key.startsWith('store_') || key.startsWith('network_'));\n}\n\nexport default isKeyValid;\n","export function isEmpty(obj) {\n const none = obj === null || obj === undefined;\n if (none) {\n return none;\n }\n\n const objectType = typeof obj;\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\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 {import('@fleetbase/sdk').Adapter} adapter\n * @return {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 = undefined, options = {}) {\n super(attributes, adapter, 'review', options);\n }\n\n getMedia() {\n return this.getPhotos();\n }\n\n getPhotos() {\n return this.getAttribute('photos') ?? [];\n }\n\n getVideos() {\n return this.getMedia().filter((media) => media?.type?.startsWith('video/'));\n }\n}\n\nregister('resource', 'Review', Review);\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 = undefined, 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\n if (!isValid(start) || !isValid(end)) {\n return false;\n }\n\n const diff = Math.abs(start.getTime() - end.getTime());\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 if (typeof start !== 'string') {\n return null;\n }\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 if (typeof end !== 'string') {\n return null;\n }\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.getAttribute('start')} - ${this.getAttribute('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 = undefined, 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.length > 0 && 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 if (schedule[hour.day]) {\n schedule[hour.day].pushObject(hour);\n }\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 = undefined, 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 get isQPayGateway() {\n return this.type === 'qpay' || this.code === 'qpay';\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 = undefined, 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 getTags(params = {}) {\n return this.adapter.get('tags', params);\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, this.adapter);\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 = undefined, 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 images() {\n return this.getAttribute('images') ?? [];\n }\n\n videos() {\n return this.getAttribute('videos') ?? [];\n }\n\n hours() {\n return this.getAttribute('hours') ?? [];\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 = undefined, 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 = undefined, 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 {import('@fleetbase/sdk').Adapter} adapter\n * @return {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 return this.performAuthorizedRequest('customers/register-device', { token, platform }, 'POST');\n }\n\n performAuthorizedRequest(endpoint, params = {}, method = 'GET', options = {}) {\n const requestOptions = {\n ...options,\n headers: {\n ...options.headers,\n 'Customer-Token': this.token,\n },\n };\n\n return this.adapter[method.toLowerCase()](endpoint, params, requestOptions);\n }\n\n async getSavedPlaces() {\n const places = await this.performAuthorizedRequest('customers/places');\n return new Collection(places.map((attributes) => new Place(attributes, this.adapter)));\n }\n\n async getOrderHistory(params = {}) {\n const orders = await this.performAuthorizedRequest('customers/orders', params);\n return new Collection(orders.map((attributes) => new Order(attributes, this.adapter)));\n }\n\n getStripeEphemeralKey(params = {}) {\n return this.performAuthorizedRequest('customers/stripe-ephemeral-key', params, 'POST');\n }\n\n getStripeSetupIntent(params = {}) {\n return this.performAuthorizedRequest('customers/stripe-setup-intent', params, 'POST');\n }\n\n startAccountClosure(params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/account-closure', params, 'POST', options);\n }\n\n confirmAccountClosure(code, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/confirm-account-closure', { code, ...params }, 'POST', options);\n }\n\n requestPhoneVerification(phone, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/request-phone-verification', { phone, ...params }, 'POST', options);\n }\n\n verifyPhoneNumber(code, phone, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/verify-phone-number', { code, phone, ...params }, 'POST', options);\n }\n\n updateContactAlias(attributes = {}, options = {}) {\n return this.performAuthorizedRequest(`contacts/${this.id}`, attributes, 'PUT', options).then((response) => {\n this.syncAttributes(response);\n return this;\n });\n }\n}\n\nregister('resource', 'Customer', Customer);\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 = undefined, 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 return this.contents().reduce((subtotal, cartItem) => subtotal + Number(cartItem?.subtotal || 0), 0);\n }\n\n contents() {\n const items = this.getAttribute('items', []);\n return isArray(items) ? items : [];\n }\n\n hasProduct(productId) {\n return this.contents().findIndex((cartItem) => cartItem.product_id === productId) !== -1;\n }\n\n get isEmpty() {\n return this.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 = undefined, 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 = undefined, 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 || (attributes && typeof attributes.get === 'function' && typeof attributes.post === 'function')) {\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 {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 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 }\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 { Order as FleetbaseOrder, register } from '@fleetbase/sdk';\n\nexport default class Order extends FleetbaseOrder {\n constructor(attributes = {}, adapter = undefined, options = {}) {\n super(attributes, adapter, options);\n }\n}\n\nregister('resource', 'Order', Order);\n","import Resource from '../resource.js';\nimport Order from './order.js';\nimport { 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, this.adapter));\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 getStatus: function (checkout, token, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.get(`${this.namespace}/status`, { checkout, token }, options);\n },\n\n captureQPay: function (checkout, params = {}, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.post(`${this.namespace}/capture-qpay`, { checkout, ...params }, options);\n },\n\n captureQPayCallback: function (checkout, params = {}, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.get(`${this.namespace}/capture-qpay`, { checkout, ...params }, options);\n },\n});\n\nexport default class Checkout extends Resource {\n constructor(attributes = {}, adapter = undefined, 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 createStripeSetupIntent() {\n return this.store.createStripeSetupIntent(...arguments);\n }\n\n updateStripePaymentIntent() {\n return this.store.updateStripePaymentIntent(...arguments);\n }\n\n getStatus() {\n return this.store.getStatus(...arguments);\n }\n\n captureQPay() {\n return this.store.captureQPay(...arguments);\n }\n\n captureQPayCallback() {\n return this.store.captureQPayCallback(...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 = undefined, options = {}) {\n super(attributes, adapter, 'food-truck', options);\n }\n}\n\nregister('resource', 'FoodTruck', FoodTruck);\n","import { StoreActions, isResource } from '@fleetbase/sdk';\n\nfunction idFor(value) {\n return isResource(value) ? value.id : value;\n}\n\nexport const orderActions = new StoreActions({\n create: undefined,\n update: undefined,\n findAll: undefined,\n query: undefined,\n queryRecord: undefined,\n\n completePickup: function (order, params = {}, options = {}) {\n return this.adapter.put(`${this.namespace}/picked-up`, { order: idFor(order), ...params }, options);\n },\n\n getReceipt: function (order, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/receipt`, { order: idFor(order), ...params }, options);\n },\n});\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, Order } 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 { orderActions } from './resources/order-actions.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 this.orders = new StorefrontStore('order', this.adapter).extendActions(orderActions);\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, Order, lookup };\n"],"names":["Store","isArray","Resource","Order","FleetbaseOrder"],"mappings":"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"} \ No newline at end of file diff --git a/eslint.config.js b/eslint.config.js index 2fb3007..da1e29f 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -2,8 +2,4 @@ import globals from 'globals'; import pluginJs from '@eslint/js'; /** @type {import('eslint').Linter.Config[]} */ -export default [ - { languageOptions: { globals: { ...globals.browser, ...globals.node } } }, - pluginJs.configs.recommended, - { files: ['tests/**/*.js'], languageOptions: { globals: globals.mocha } }, -]; +export default [{ languageOptions: { globals: { ...globals.browser, ...globals.node } } }, pluginJs.configs.recommended]; diff --git a/package.json b/package.json index 159868a..57d1519 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@fleetbase/storefront", "version": "1.1.14", - "description": "Fleetbase Storefront JS & Node SDK", + "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,103 @@ "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", + "README.md", + "CHANGELOG.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 vitest.config.js rollup.config.js", "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:watch": "vitest", + "typecheck": "tsc --noEmit", + "build:types": "tsc -p tsconfig.build.json && node scripts/create-cjs-types.mjs && prettier types --write", + "package:check": "publint && attw --pack . --profile node16", + "check": "pnpm run format:check && pnpm run lint && pnpm run typecheck && pnpm run test:coverage && pnpm run bundle && pnpm run package:check", + "format": "prettier . --write", + "format:check": "prettier . --check", + "changeset": "changeset", + "version-packages": "changeset version", + "release": "pnpm run check && changeset publish", + "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", + "@changesets/cli": "^2.29.7", + "@eslint/js": "^10.0.1", + "@rollup/plugin-commonjs": "^29.0.3", + "@rollup/plugin-node-resolve": "^16.0.3", + "@rollup/plugin-terser": "^1.0.0", + "@vitest/coverage-v8": "^4.0.0", + "eslint": "^10.0.0", + "globals": "^17.0.0", + "prettier": "^3.9.0", + "publint": "^0.3.15", + "rollup": "^4.63.0", + "typescript": "^5.9.0", + "vitest": "^4.0.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 557b71e..ba7ff50 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,623 +11,193 @@ importers: 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 + '@changesets/cli': + specifier: ^2.29.7 + version: 2.31.1 '@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) '@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) + '@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 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 rollup: - specifier: ^4.29.1 - version: 4.29.1 + specifier: ^4.63.0 + version: 4.63.1 + typescript: + specifier: ^5.9.0 + version: 5.9.3 + vitest: + specifier: ^4.0.0 + version: 4.1.11(@vitest/coverage-v8@4.1.11)(vite@8.2.2(terser@5.37.0)) packages: - '@ampproject/remapping@2.3.0': - resolution: { integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== } - engines: { node: '>=6.0.0' } - - '@babel/code-frame@7.26.2': - resolution: { integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ== } - engines: { node: '>=6.9.0' } - - '@babel/compat-data@7.26.3': - resolution: { integrity: sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g== } - engines: { node: '>=6.9.0' } - - '@babel/core@7.26.0': - resolution: { integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg== } - engines: { node: '>=6.9.0' } - - '@babel/generator@7.26.3': - resolution: { integrity: sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ== } - engines: { node: '>=6.9.0' } - - '@babel/helper-annotate-as-pure@7.25.9': - resolution: { integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g== } - engines: { node: '>=6.9.0' } - - '@babel/helper-compilation-targets@7.25.9': - resolution: { integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ== } - engines: { node: '>=6.9.0' } - - '@babel/helper-create-class-features-plugin@7.25.9': - resolution: { integrity: sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-create-regexp-features-plugin@7.26.3': - resolution: { integrity: sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-define-polyfill-provider@0.6.3': - resolution: { integrity: sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg== } - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - '@babel/helper-member-expression-to-functions@7.25.9': - resolution: { integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ== } - engines: { node: '>=6.9.0' } - - '@babel/helper-module-imports@7.25.9': - resolution: { integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw== } - engines: { node: '>=6.9.0' } - - '@babel/helper-module-transforms@7.26.0': - resolution: { integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-optimise-call-expression@7.25.9': - resolution: { integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ== } - engines: { node: '>=6.9.0' } - - '@babel/helper-plugin-utils@7.25.9': - resolution: { integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw== } - engines: { node: '>=6.9.0' } + '@andrewbranch/untar.js@1.0.4': + resolution: { integrity: sha512-pVXSwPsLuw8IGLo2Di0EaOfsk+ntVvpkk942J/sHYIkwvtKUakEcPh7HBgZ6tuimgzKSEHgCvO4XgQ05DEbwDw== } - '@babel/helper-remap-async-to-generator@7.25.9': - resolution: { integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-replace-supers@7.25.9': - resolution: { integrity: sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-skip-transparent-expression-wrappers@7.25.9': - resolution: { integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA== } - engines: { node: '>=6.9.0' } - - '@babel/helper-string-parser@7.25.9': - resolution: { integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA== } - engines: { node: '>=6.9.0' } - - '@babel/helper-validator-identifier@7.25.9': - resolution: { integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== } - engines: { node: '>=6.9.0' } - - '@babel/helper-validator-option@7.25.9': - resolution: { integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw== } - engines: { node: '>=6.9.0' } + '@arethetypeswrong/cli@0.18.5': + resolution: { integrity: sha512-gM+8vRsQOD/Uc7EnBedUhkG5OCsDWE4uoak5QvomGpMpaky0Eh41p04nIMgrWb8EOmqZUJGc6zz9hsP6E56R7g== } + engines: { node: '>=20' } + hasBin: true - '@babel/helper-wrap-function@7.25.9': - resolution: { integrity: sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g== } - engines: { node: '>=6.9.0' } + '@arethetypeswrong/core@0.18.5': + resolution: { integrity: sha512-9ytjzGwxjm9Uz7I9avfbt5vlQt6uk9uRRESzJjqrznl6WKvI6dwYTo+vJ3U02Wrq/mR3iql/PzhvHhKdJIAjDQ== } + engines: { node: '>=20' } - '@babel/helpers@7.26.0': - resolution: { integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw== } + '@babel/helper-string-parser@7.29.7': + resolution: { integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw== } engines: { node: '>=6.9.0' } - '@babel/node@7.26.0': - resolution: { integrity: sha512-5ASMjh42hbnqyCOK68Q5chh1jKAqn91IswFTN+niwt4FLABhEWCT1tEuuo6mlNQ4WG/oFQLvJ71PaHAKtWtJyA== } + '@babel/helper-validator-identifier@7.29.7': + resolution: { integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg== } engines: { node: '>=6.9.0' } - hasBin: true - peerDependencies: - '@babel/core': ^7.0.0-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/plugin-bugfix-safari-class-field-initializer-scope@7.25.9': - resolution: { integrity: sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9': - resolution: { integrity: sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9': - resolution: { integrity: sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.13.0 - - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9': - resolution: { integrity: sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-proposal-decorators@7.25.9': - resolution: { integrity: sha512-smkNLL/O1ezy9Nhy4CNosc4Va+1wo5w4gzSZeLe6y6dM4mmHfYOCPolXQPHQxonZCF+ZyebxN9vqOolkYrSn5g== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.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' } - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-decorators@7.25.9': - resolution: { integrity: sha512-ryzI0McXUPJnRCvMo4lumIKZUzhYUO/ScI+Mz4YVaTLt04DHNSjEUjKVvbzQjZFLuod/cYEc07mJWhzl6v4DPg== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-assertions@7.26.0': - resolution: { integrity: sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-attributes@7.26.0': - resolution: { integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-unicode-sets-regex@7.18.6': - resolution: { integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-arrow-functions@7.25.9': - resolution: { integrity: sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-async-generator-functions@7.25.9': - resolution: { integrity: sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-async-to-generator@7.25.9': - resolution: { integrity: sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-block-scoped-functions@7.25.9': - resolution: { integrity: sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-block-scoping@7.25.9': - resolution: { integrity: sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg== } - 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/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/plugin-transform-classes@7.25.9': - resolution: { integrity: sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-computed-properties@7.25.9': - resolution: { integrity: sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-destructuring@7.25.9': - resolution: { integrity: sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-dotall-regex@7.25.9': - resolution: { integrity: sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-duplicate-keys@7.25.9': - resolution: { integrity: sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9': - resolution: { integrity: sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.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 - - '@babel/plugin-transform-exponentiation-operator@7.26.3': - resolution: { integrity: sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-export-namespace-from@7.25.9': - resolution: { integrity: sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-for-of@7.25.9': - resolution: { integrity: sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-function-name@7.25.9': - resolution: { integrity: sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-json-strings@7.25.9': - resolution: { integrity: sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-literals@7.25.9': - resolution: { integrity: sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-logical-assignment-operators@7.25.9': - resolution: { integrity: sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-member-expression-literals@7.25.9': - resolution: { integrity: sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-amd@7.25.9': - resolution: { integrity: sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-commonjs@7.26.3': - resolution: { integrity: sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-systemjs@7.25.9': - resolution: { integrity: sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-umd@7.25.9': - resolution: { integrity: sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@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 - - '@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 - - '@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 - - '@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 - - '@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 - - '@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 - - '@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 - - '@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 - - '@babel/plugin-transform-parameters@7.25.9': - resolution: { integrity: sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g== } + '@babel/runtime@7.26.0': + resolution: { integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw== } engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-methods@7.25.9': - resolution: { integrity: sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw== } + '@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-private-property-in-object@7.25.9': - resolution: { integrity: sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw== } - 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-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 + '@braidai/lang@1.1.2': + resolution: { integrity: sha512-qBcknbBufNHlui137Hft8xauQMTZDKdophmLFv05r2eNmdIv/MlPuP4TdUknHG68UdWLgVZwgxVe735HzJNIwA== } - '@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 + '@changesets/apply-release-plan@7.1.1': + resolution: { integrity: sha512-9qPCm/rLx/xoOFXIHGB229+4GOL76S4MC+7tyOuTsR6+1jYlfFDQORdvwR5hDA6y4FL2BPt3qpbcQIS+dW85LA== } - '@babel/plugin-transform-regexp-modifiers@7.26.0': - resolution: { integrity: sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0 + '@changesets/assemble-release-plan@6.0.10': + resolution: { integrity: sha512-rSDcqdJ9KbVyjpBIuCidhvZNIiVt1XaIYp73ycVQRIA5n/j6wQaEk0ChRLMUQ1vkxZe51PTQ9OIhbg6HQMW45A== } - '@babel/plugin-transform-reserved-words@7.25.9': - resolution: { integrity: sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@changesets/changelog-git@0.2.1': + resolution: { integrity: sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q== } - '@babel/plugin-transform-shorthand-properties@7.25.9': - resolution: { integrity: sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@changesets/cli@2.31.1': + resolution: { integrity: sha512-uO05WTcRBwuVOJVSW8Cmpqw6q0WDL53ajGCMyszutvOe5toOnunbpM4jZzf+qxBOz7i0AzopZ8diBuewjmF40w== } + hasBin: true - '@babel/plugin-transform-spread@7.25.9': - resolution: { integrity: sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@changesets/config@3.1.4': + resolution: { integrity: sha512-pf0bvD/v6WI2cRlZ6hzpjtZdSlXDXMAJ+Iz7xfFzV4ZxJ8OGGAON+1qYc99ZPrijnt4xp3VGG7eNvAOGS24V1Q== } - '@babel/plugin-transform-sticky-regex@7.25.9': - resolution: { integrity: sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@changesets/errors@0.2.0': + resolution: { integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow== } - '@babel/plugin-transform-template-literals@7.25.9': - resolution: { integrity: sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@changesets/get-dependents-graph@2.1.4': + resolution: { integrity: sha512-ZsS00x6WvmHq3sQv8oCMwL0f/z3wbXCVuSVTJwCnnmbC/iBdNJGFx1EcbMG4PC6sXRyH69liM4A2WKXzn/kRPg== } - '@babel/plugin-transform-typeof-symbol@7.25.9': - resolution: { integrity: sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@changesets/get-release-plan@4.0.16': + resolution: { integrity: sha512-2K5Om6CrMPm45rtvckfzWo7e9jOVCKLCnXia5eUPaURH7/LWzri7pK1TycdzAuAtehLkW7VPbWLCSExTHmiI6g== } - '@babel/plugin-transform-unicode-escapes@7.25.9': - resolution: { integrity: sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@changesets/get-version-range-type@0.4.0': + resolution: { integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ== } - '@babel/plugin-transform-unicode-property-regex@7.25.9': - resolution: { integrity: sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@changesets/git@3.0.4': + resolution: { integrity: sha512-BXANzRFkX+XcC1q/d27NKvlJ1yf7PSAgi8JG6dt8EfbHFHi4neau7mufcSca5zRhwOL8j9s6EqsxmT+s+/E6Sw== } - '@babel/plugin-transform-unicode-regex@7.25.9': - resolution: { integrity: sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@changesets/logger@0.1.1': + resolution: { integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg== } - '@babel/plugin-transform-unicode-sets-regex@7.25.9': - resolution: { integrity: sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0 + '@changesets/parse@0.4.3': + resolution: { integrity: sha512-ZDmNc53+dXdWEv7fqIUSgRQOLYoUom5Z40gmLgmATmYR9NbL6FJJHwakcCpzaeCy+1D0m0n7mT4jj2B/MQPl7A== } - '@babel/preset-env@7.26.0': - resolution: { integrity: sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@changesets/pre@2.0.2': + resolution: { integrity: sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug== } - '@babel/preset-modules@0.1.6-no-external-plugins': - resolution: { integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== } - peerDependencies: - '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + '@changesets/read@0.6.7': + resolution: { integrity: sha512-D1G4AUYGrBEk8vj8MGwf75k9GpN6XL3wg8i42P2jZZwFLXnlr2Pn7r9yuQNbaMCarP7ZQWNJbV6XLeysAIMhTA== } - '@babel/register@7.25.9': - resolution: { integrity: sha512-8D43jXtGsYmEeDvm4MWHYUpWf8iiXgWYx3fW7E7Wb7Oe6FWqJPl5K6TuFW0dOwNZzEE5rjlaSJYH9JjrUKJszA== } - engines: { node: '>=6.9.0' } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@changesets/should-skip-package@0.1.2': + resolution: { integrity: sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw== } - '@babel/runtime@7.26.0': - resolution: { integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw== } - engines: { node: '>=6.9.0' } + '@changesets/types@4.1.0': + resolution: { integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw== } - '@babel/template@7.25.9': - resolution: { integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg== } - engines: { node: '>=6.9.0' } + '@changesets/types@6.1.0': + resolution: { integrity: sha512-rKQcJ+o1nKNgeoYRHKOS07tAMNd3YSN0uHaJOZYjBAgxfV7TUE7JE+z4BzZdQwb5hKaYbayKN5KrYV7ODb2rAA== } - '@babel/traverse@7.26.4': - resolution: { integrity: sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w== } - engines: { node: '>=6.9.0' } + '@changesets/write@0.4.0': + resolution: { integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q== } - '@babel/types@7.26.3': - resolution: { integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA== } - engines: { node: '>=6.9.0' } + '@colors/colors@1.5.0': + resolution: { integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== } + engines: { node: '>=0.1.90' } - '@eslint-community/eslint-utils@4.4.1': - resolution: { integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA== } + '@eslint-community/eslint-utils@4.10.1': + resolution: { integrity: sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg== } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.12.1': - resolution: { integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== } + '@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 } - '@eslint/config-array@0.19.1': - resolution: { integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA== } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - - '@eslint/core@0.9.1': - resolution: { integrity: sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q== } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - - '@eslint/eslintrc@2.1.4': - resolution: { integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + '@eslint/config-array@0.23.5': + resolution: { integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA== } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } - '@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 } + '@eslint/config-helpers@0.7.0': + resolution: { integrity: sha512-DObd/KKUsU+FaFv4PLxSRenpXfQWmPXXP3pPZ6/K1PCrMu2vQpMDMuQe/BqYeoLcz8ro0bVDF1RxOJgfVEdhUw== } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } - '@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 } + '@eslint/core@1.2.1': + resolution: { integrity: sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ== } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } - '@eslint/js@9.17.0': - resolution: { integrity: sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w== } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + '@eslint/js@10.0.1': + resolution: { integrity: sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA== } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } + peerDependencies: + eslint: ^10.0.0 + peerDependenciesMeta: + eslint: + optional: true - '@eslint/object-schema@2.1.5': - resolution: { integrity: sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ== } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + '@eslint/object-schema@3.0.5': + resolution: { integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw== } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } - '@eslint/plugin-kit@0.2.4': - resolution: { integrity: sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg== } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.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 } '@fleetbase/sdk@1.2.13': resolution: { integrity: sha512-PeOKCBMp5FEQsf+ms9NlXAAZsRI7MJikBDfN3s6iLcy85RsqIJTQH+uam1Fldj6SuUvOPhdcRkkdoDvgt4ZMPQ== } @@ -640,30 +210,26 @@ packages: resolution: { integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw== } engines: { node: '>=18.18.0' } - '@humanwhocodes/config-array@0.13.0': - resolution: { integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw== } - engines: { node: '>=10.10.0' } - deprecated: Use @eslint/config-array instead - '@humanwhocodes/module-importer@1.0.1': resolution: { integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== } engines: { node: '>=12.22' } - '@humanwhocodes/object-schema@2.0.3': - resolution: { integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== } - deprecated: Use @eslint/object-schema instead - '@humanwhocodes/retry@0.3.1': resolution: { integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA== } engines: { node: '>=18.18' } - '@humanwhocodes/retry@0.4.1': - resolution: { integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA== } + '@humanwhocodes/retry@0.4.3': + resolution: { integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ== } engines: { node: '>=18.18' } - '@isaacs/cliui@8.0.2': - resolution: { integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== } - engines: { node: '>=12' } + '@inquirer/external-editor@1.0.3': + resolution: { integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA== } + engines: { node: '>=18' } + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true '@jridgewell/gen-mapping@0.3.8': resolution: { integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA== } @@ -683,9 +249,30 @@ packages: '@jridgewell/sourcemap-codec@1.5.0': resolution: { integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== } + '@jridgewell/sourcemap-codec@1.6.0': + resolution: { integrity: sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw== } + '@jridgewell/trace-mapping@0.3.25': resolution: { integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== } + '@jridgewell/trace-mapping@0.3.31': + resolution: { integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== } + + '@loaderkit/resolve@1.0.6': + resolution: { integrity: sha512-G8FdIoF5CypfwmD9rl8BXod5HDn8JqB0CCNBXDTaRZ+yRYhARrrSToX1zg1zy9jX3zLqigsELwhT4gNtkdQAUg== } + + '@manypkg/find-root@1.1.0': + resolution: { integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA== } + + '@manypkg/get-packages@1.1.3': + resolution: { integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A== } + + '@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] + '@nodelib/fs.scandir@2.1.5': resolution: { integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== } engines: { node: '>= 8' } @@ -698,25 +285,108 @@ packages: resolution: { integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== } engines: { node: '>= 8' } - '@pkgjs/parseargs@0.11.0': - resolution: { integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== } - engines: { node: '>=14' } + '@oxc-project/types@0.147.0': + resolution: { integrity: sha512-IJ3s6ltHLp45S0bh7phkX+gJO7A1Wuz2EaqpAhb8WjqDwbzMiWKHhyyT42tskaWjEYXtHtVCPpnBJVT9+dcRLg== } - '@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 + '@publint/pack@0.1.7': + resolution: { integrity: sha512-4EDEmvxWtgsCnnVeBvtFIFZtUhPPt1+bA9JrSwU4Sa//6oKtzCSlGGXYJr44OD9aGISymbieJ4mCKHUygUDU+g== } + engines: { node: '>=18' } + + '@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] + + '@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] + + '@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] + + '@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] + + '@rolldown/binding-freebsd-x64@1.2.6': + resolution: { integrity: sha512-h1wG6Y6K3JlRswxsI64qQJqBAy4vrLuHgRbc8CZMGSWTOFRY6ghMApM1NKzB2I0n5xV1fjkE18SuVl2QpLeNpA== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [x64] + os: [freebsd] + + '@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] + + '@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] + + '@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] + + '@rolldown/binding-linux-ppc64-gnu@1.2.6': + resolution: { integrity: sha512-eWDoSfU7Co2qj3vgB3Dt4lj1mG6CoWbcJQkRMP3XJplyCMtuaq3LHvPFjS9QIPvMGWVadJC04Xiy0IdcVPtnwQ== } + engines: { node: ^20.19.0 || >=22.12.0 } + cpu: [ppc64] + os: [linux] - '@rollup/plugin-commonjs@28.0.2': - resolution: { integrity: sha512-BEFI2EDqzl+vA1rl97IDRZ61AIwGH093d9nz8+dThxJNH8oSoB7MjWvPCX3dkaK1/RCJ/1v/R1XB15FuSs0fQw== } + '@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] + + '@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] + + '@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] + + '@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,17 +394,8 @@ packages: rollup: optional: true - '@rollup/plugin-eslint@9.0.5': - resolution: { integrity: sha512-C4nh0sSeJuxVW5u5tDX+dCMjKcNfHm4hS+zeUVh1si7gttnhgGbrmPkUxIX7iZgYABwdEh/ewyMbZB+WXjSJdA== } - engines: { node: '>=14.0.0' } - peerDependencies: - rollup: ^1.20.0||^2.0.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== } + '@rollup/plugin-node-resolve@16.0.3': + resolution: { integrity: sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg== } engines: { node: '>=14.0.0' } peerDependencies: rollup: ^2.78.0||^3.0.0||^4.0.0 @@ -742,9 +403,9 @@ packages: rollup: optional: true - '@rollup/plugin-terser@0.4.4': - resolution: { integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A== } - 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.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: @@ -760,112 +421,199 @@ 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] + + '@rollup/rollup-win32-x64-msvc@4.63.1': + resolution: { integrity: sha512-at8QVep6S3h5Y6gSbdGU06bRY5WJkf6WUduM9YtvYMbYhB1MOFfUgc6kehitQXzOtMSaT70q7f9ydPhpqu821w== } cpu: [x64] os: [win32] + '@sindresorhus/is@4.6.0': + resolution: { integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== } + engines: { node: '>=10' } + + '@standard-schema/spec@1.1.0': + resolution: { integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w== } + + '@types/chai@5.2.3': + resolution: { integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA== } + + '@types/deep-eql@4.0.2': + resolution: { integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw== } + + '@types/esrecurse@4.3.1': + resolution: { integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw== } + '@types/estree@1.0.6': resolution: { integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== } + '@types/estree@1.0.9': + resolution: { integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg== } + '@types/json-schema@7.0.15': resolution: { integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== } + '@types/node@12.20.55': + resolution: { integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== } + '@types/resolve@1.20.2': resolution: { integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== } - '@ungap/structured-clone@1.2.1': - resolution: { integrity: sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA== } + '@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 + + '@vitest/expect@4.1.11': + resolution: { integrity: sha512-VX2x5vNJXET47KAFzwERI+KRMtTTCSWTfSMKsW7JsUsXV4psq++e3DvZpuTDOpHcxytiDs6p2nhVb2tVDiiUYw== } + + '@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 + + '@vitest/pretty-format@4.1.11': + resolution: { integrity: sha512-yiZzPbGTS9Sr/JpFl8zHrcIkAofNbFV6k21vIgQN/cY/oxZeXhJv5sc/MBJ5jFKWmWs+oJHw0UXLZjmf931+Vw== } + + '@vitest/runner@4.1.11': + resolution: { integrity: sha512-LztvUgdwMNJMIkj3hQnnxiC2Xy1zNxq928W/xhjCLaNCzqTZOudjwbQf6v9IntZGPw132i2Lq2rgTRZHD3JHNw== } + + '@vitest/snapshot@4.1.11': + resolution: { integrity: sha512-pN7ikn1ON7h8ee4gIAp4AzyK+zBtJPzVbqOgu5LCEh4VaJVbPQcgYQYJIMGQPXVeJJq1fnfazis7a5pFNPahog== } + + '@vitest/spy@4.1.11': + resolution: { integrity: sha512-apNa/prQy2qCeywhnixOHPRCgGNhvg7T4Dapfl1GahLp/R+uhBm5cPyFoNVyqsNd2h1nJxL6BqqdIjiABL60YA== } + + '@vitest/utils@4.1.11': + resolution: { integrity: sha512-zTCVGpyFsGWBhllOyKlTw/vnr6D9qxsfSDyfbyZmTyjHw5N/VuvzHpHoQjm2ZJzn4RJgx5w4r7V0er69CmLgPQ== } acorn-jsx@5.3.2: resolution: { integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== } @@ -877,13 +625,22 @@ packages: engines: { node: '>=0.4.0' } hasBin: true - ajv@6.12.6: - resolution: { integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== } + acorn@8.18.0: + resolution: { integrity: sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ== } + engines: { node: '>=0.4.0' } + hasBin: true + + ajv@6.15.0: + resolution: { integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw== } ansi-colors@4.1.3: resolution: { integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== } engines: { node: '>=6' } + 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' } @@ -896,132 +653,85 @@ packages: resolution: { integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== } engines: { node: '>=8' } - ansi-styles@6.2.1: - resolution: { integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== } - engines: { node: '>=12' } + any-promise@1.3.0: + resolution: { integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== } - anymatch@3.1.3: - resolution: { integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== } - engines: { node: '>= 8' } + argparse@1.0.10: + resolution: { integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== } argparse@2.0.1: resolution: { integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== } - array-buffer-byte-length@1.0.2: - resolution: { integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw== } - engines: { node: '>= 0.4' } - - array.prototype.reduce@1.0.7: - resolution: { integrity: sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q== } - engines: { node: '>= 0.4' } - - arraybuffer.prototype.slice@1.0.4: - resolution: { integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ== } - engines: { node: '>= 0.4' } + array-union@2.1.0: + resolution: { integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== } + engines: { node: '>=8' } 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== } - available-typed-arrays@1.0.7: - resolution: { integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== } - engines: { node: '>= 0.4' } - axios@1.7.9: resolution: { integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw== } - babel-plugin-polyfill-corejs2@0.4.12: - resolution: { integrity: sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og== } - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-polyfill-corejs3@0.10.6: - resolution: { integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA== } - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-polyfill-regenerator@0.6.3: - resolution: { integrity: sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q== } - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - balanced-match@1.0.2: - resolution: { integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== } - - binary-extensions@2.3.0: - resolution: { integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== } - engines: { node: '>=8' } + balanced-match@4.0.4: + resolution: { integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA== } + engines: { node: 18 || 20 || >=22 } - brace-expansion@1.1.11: - resolution: { integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== } + better-path-resolve@1.0.0: + resolution: { integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g== } + engines: { node: '>=4' } - brace-expansion@2.0.1: - resolution: { integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== } + brace-expansion@5.0.9: + resolution: { integrity: sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg== } + engines: { node: 20 || >=22 } braces@3.0.3: resolution: { integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== } engines: { node: '>=8' } - browser-stdout@1.3.1: - resolution: { integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== } - - browserslist@4.24.3: - resolution: { integrity: sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA== } - 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.1: - resolution: { integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g== } - engines: { node: '>= 0.4' } - - call-bind@1.0.8: - resolution: { integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== } - engines: { node: '>= 0.4' } + chai@6.2.2: + resolution: { integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg== } + engines: { node: '>=18' } - call-bound@1.0.3: - resolution: { integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA== } - engines: { node: '>= 0.4' } + chalk@4.1.2: + resolution: { integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== } + engines: { node: '>=10' } - callsites@3.1.0: - resolution: { integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== } - engines: { node: '>=6' } + chalk@5.6.2: + resolution: { integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== } + engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } - camelcase@6.3.0: - resolution: { integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== } + char-regex@1.0.2: + resolution: { integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== } engines: { node: '>=10' } - caniuse-lite@1.0.30001690: - resolution: { integrity: sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w== } - - chai@5.1.2: - resolution: { integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw== } - engines: { node: '>=12' } + chardet@2.2.0: + resolution: { integrity: sha512-rddelWYNPRrXq6PtNEN2S3f6t9ILzvqaN5pVgi4kqt9jHQaXIial9PznB5iSPVlQSLNaaH22ItWz3EJtQ10+OA== } - chalk@4.1.2: - resolution: { integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== } - engines: { node: '>=10' } + cjs-module-lexer@1.4.3: + resolution: { integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q== } - check-error@2.1.1: - resolution: { integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw== } - engines: { node: '>= 16' } + 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 - chokidar@3.6.0: - resolution: { integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== } - engines: { node: '>= 8.10.0' } + cli-table3@0.6.5: + resolution: { integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ== } + engines: { node: 10.* || >= 12.* } 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' } @@ -1033,49 +743,28 @@ packages: resolution: { integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== } engines: { node: '>= 0.8' } + commander@10.0.1: + resolution: { integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== } + engines: { node: '>=14' } + commander@2.20.3: resolution: { integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== } - commander@6.2.1: - resolution: { integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== } - engines: { node: '>= 6' } - commondir@1.0.1: resolution: { integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== } - concat-map@0.0.1: - resolution: { integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== } - convert-source-map@2.0.0: resolution: { integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== } - core-js-compat@3.39.0: - resolution: { integrity: sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw== } - - core-js@3.39.0: - resolution: { integrity: sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g== } - - countries-list@3.1.1: - resolution: { integrity: sha512-nPklKJ5qtmY5MdBKw1NiBAoyx5Sa7p2yPpljZyQ7gyCN1m+eMFs9I6CT37Mxt8zvR5L3VzD3DJBE4WQzX3WF4A== } + 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' } - data-view-buffer@1.0.2: - resolution: { integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ== } - engines: { node: '>= 0.4' } - - data-view-byte-length@1.0.2: - resolution: { integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ== } - engines: { node: '>= 0.4' } - - data-view-byte-offset@1.0.1: - resolution: { integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ== } - engines: { node: '>= 0.4' } - - date-fns@4.1.0: - resolution: { integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg== } + 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,14 +775,6 @@ 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' } - deep-is@0.1.4: resolution: { integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== } @@ -1101,72 +782,38 @@ 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' } - - doctrine@3.0.0: - resolution: { integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== } - engines: { node: '>=6.0.0' } - - dotenv@16.4.7: - resolution: { integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ== } - engines: { node: '>=12' } - - dunder-proto@1.0.1: - resolution: { integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== } - engines: { node: '>= 0.4' } + detect-indent@6.1.0: + resolution: { integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== } + engines: { node: '>=8' } - eastasianwidth@0.2.0: - resolution: { integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== } + detect-libc@2.1.2: + resolution: { integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ== } + engines: { node: '>=8' } - electron-to-chromium@1.5.76: - resolution: { integrity: sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ== } + dir-glob@3.0.1: + resolution: { integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== } + engines: { node: '>=8' } emoji-regex@8.0.0: resolution: { integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== } - emoji-regex@9.2.2: - resolution: { integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== } - - es-abstract@1.23.7: - resolution: { integrity: sha512-OygGC8kIcDhXX+6yAZRGLqwi2CmEXCbLQixeGUgYeR+Qwlppqmo7DIDr8XibtEBZp+fJcoYpoatp5qwLMEdcqQ== } - engines: { node: '>= 0.4' } - - es-array-method-boxes-properly@1.0.0: - resolution: { integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== } - - es-define-property@1.0.1: - resolution: { integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== } - engines: { node: '>= 0.4' } - - es-errors@1.3.0: - resolution: { integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== } - engines: { node: '>= 0.4' } + emojilib@2.4.0: + resolution: { integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw== } - es-object-atoms@1.0.0: - resolution: { integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== } - engines: { node: '>= 0.4' } + enquirer@2.4.1: + resolution: { integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== } + engines: { node: '>=8.6' } - es-set-tostringtag@2.0.3: - resolution: { integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== } - engines: { node: '>= 0.4' } + environment@1.1.0: + resolution: { integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q== } + engines: { node: '>=18' } - es-to-primitive@1.3.0: - resolution: { integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g== } - engines: { node: '>= 0.4' } + es-module-lexer@2.3.2: + resolution: { integrity: sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw== } escalade@3.2.0: resolution: { integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== } @@ -1176,31 +823,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 +845,17 @@ 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@11.2.0: + resolution: { integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw== } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } - espree@9.6.1: - resolution: { integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + esprima@4.0.1: + resolution: { integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== } + engines: { node: '>=4' } + hasBin: true - 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,13 +869,27 @@ 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' } + expect-type@1.4.0: + resolution: { integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA== } + engines: { node: '>=12.0.0' } + + extendable-error@0.1.7: + resolution: { integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg== } + fast-deep-equal@3.1.3: resolution: { integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== } + fast-glob@3.3.3: + resolution: { integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== } + engines: { node: '>=8.6.0' } + fast-json-stable-stringify@2.1.0: resolution: { integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== } @@ -1255,9 +907,17 @@ 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== } file-entry-cache@8.0.0: resolution: { integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== } @@ -1267,30 +927,18 @@ packages: resolution: { integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== } 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@4.1.0: + resolution: { integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== } + engines: { node: '>=8' } 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' } - flat@5.0.2: - resolution: { integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== } - hasBin: true - flatted@3.3.2: resolution: { integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA== } @@ -1303,19 +951,17 @@ 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== } engines: { node: '>= 6' } - fs.realpath@1.0.0: - resolution: { integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== } + fs-extra@7.0.1: + resolution: { integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== } + engines: { node: '>=6 <7 || >=8' } + + fs-extra@8.1.0: + resolution: { integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== } + engines: { node: '>=6 <7 || >=8' } fsevents@2.3.3: resolution: { integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== } @@ -1325,29 +971,10 @@ 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' } - get-caller-file@2.0.5: 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== } - engines: { node: '>= 0.4' } - - get-symbol-description@1.1.0: - resolution: { integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg== } - engines: { node: '>= 0.4' } - glob-parent@5.1.2: resolution: { integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== } engines: { node: '>= 6' } @@ -1356,253 +983,105 @@ packages: 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== } + globby@11.1.0: + resolution: { integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== } + engines: { node: '>=10' } - 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' } - - has-tostringtag@1.0.2: - resolution: { integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== } - engines: { node: '>= 0.4' } - hasown@2.0.2: resolution: { integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== } engines: { node: '>= 0.4' } - he@1.2.0: - resolution: { integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== } + highlight.js@10.7.3: + resolution: { integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== } + + html-escaper@2.0.2: + resolution: { integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== } + + human-id@4.2.1: + resolution: { integrity: sha512-zPGsiS+dWoTZtZ4AtpA9Y+BdSFSNWvnouNlWNoUFyAM6xHOHmdCvqO3k8AIbdamCOv4gUFUVNPf6rJFfc4UiJw== } hasBin: true - 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' } - 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== } + is-core-module@2.16.1: + resolution: { integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== } 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' } - - 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-extglob@2.1.1: + resolution: { integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== } + engines: { node: '>=0.10.0' } 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-object@2.0.4: - resolution: { integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== } - engines: { node: '>=0.10.0' } - 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-subdir@1.2.0: + resolution: { integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw== } + engines: { node: '>=4' } - isarray@2.0.5: - resolution: { integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== } + is-windows@1.0.2: + resolution: { integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== } + engines: { node: '>=0.10.0' } isexe@2.0.0: resolution: { integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== } - isobject@3.0.1: - resolution: { integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== } - engines: { node: '>=0.10.0' } + istanbul-lib-coverage@3.2.2: + resolution: { integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== } + engines: { node: '>=8' } - jackspeak@3.4.3: - resolution: { integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== } + istanbul-lib-report@3.0.1: + resolution: { integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== } + engines: { node: '>=10' } - js-tokens@4.0.0: - resolution: { integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== } + istanbul-reports@3.2.0: + resolution: { integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA== } + engines: { node: '>=8' } - js-yaml@4.1.0: - resolution: { integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== } - hasBin: true + js-tokens@10.0.0: + resolution: { integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q== } - jsesc@3.0.2: - resolution: { integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== } - engines: { node: '>=6' } + js-yaml@3.15.2: + resolution: { integrity: sha512-6EuL879VkRA+1Cz578mKMiKvjPNEuk6+r1JaFzoSWejZmtf7xWbIyw1e3KkxlkzTIt9Taw6JBhEppG7utc1P+w== } hasBin: true - jsesc@3.1.0: - resolution: { integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== } - engines: { node: '>=6' } + js-yaml@4.3.2: + resolution: { integrity: sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA== } hasBin: true json-buffer@3.0.1: @@ -1614,59 +1093,132 @@ packages: json-stable-stringify-without-jsonify@1.0.1: resolution: { integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== } - json5@2.2.3: - resolution: { integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== } - engines: { node: '>=6' } - hasBin: true + jsonfile@4.0.0: + resolution: { integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== } keyv@4.5.4: resolution: { integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== } - kind-of@6.0.3: - resolution: { integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== } - engines: { node: '>=0.10.0' } - levn@0.4.1: 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.startcase@4.4.0: + resolution: { integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== } - 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' } + merge2@1.4.1: + resolution: { integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== } + engines: { node: '>= 8' } + + micromatch@4.0.8: + resolution: { integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== } + engines: { node: '>=8.6' } mime-db@1.52.0: resolution: { integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== } @@ -1676,65 +1228,51 @@ packages: resolution: { integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== } engines: { node: '>= 0.6' } - minimatch@3.1.2: - resolution: { integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== } + minimatch@10.2.6: + resolution: { integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A== } + engines: { node: 18 || 20 || >=22 } - minimatch@5.1.6: - resolution: { integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== } - engines: { node: '>=10' } + mri@1.2.0: + resolution: { integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== } + engines: { node: '>=4' } - minimatch@9.0.5: - resolution: { integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== } - engines: { node: '>=16 || 14 >=14.17' } + ms@2.1.3: + resolution: { integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== } - minipass@7.1.2: - resolution: { integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== } - engines: { node: '>=16 || 14 >=14.17' } + mz@2.7.0: + resolution: { integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== } - mocha@11.0.1: - resolution: { integrity: sha512-+3GkODfsDG71KSCQhc4IekSW+ItCK/kiez1Z28ksWvYhKXV/syxMlerR/sC7whDp7IyreZ4YxceMLdTs5hQE8A== } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + 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 - ms@2.1.3: - resolution: { integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== } - natural-compare@1.4.0: resolution: { integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== } - node-environment-flags@1.0.6: - resolution: { integrity: sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw== } - - node-releases@2.0.19: - resolution: { integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== } + node-emoji@2.2.0: + resolution: { integrity: sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw== } + engines: { node: '>=18' } - normalize-path@3.0.0: - resolution: { integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== } + object-assign@4.1.1: + resolution: { integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== } engines: { node: '>=0.10.0' } - object-inspect@1.13.3: - resolution: { integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA== } - engines: { node: '>= 0.4' } - - object-keys@1.1.1: - resolution: { integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== } - engines: { node: '>= 0.4' } - - object.assign@4.1.7: - resolution: { integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw== } - engines: { node: '>= 0.4' } - - object.getownpropertydescriptors@2.1.8: - resolution: { integrity: sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A== } - engines: { node: '>= 0.8' } - - 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== } engines: { node: '>= 0.8.0' } + outdent@0.5.0: + resolution: { integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q== } + + p-filter@2.1.0: + resolution: { integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw== } + engines: { node: '>=8' } + p-limit@2.3.0: resolution: { integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== } engines: { node: '>=6' } @@ -1743,41 +1281,41 @@ 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== } engines: { node: '>=10' } + p-map@2.1.0: + resolution: { integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== } + engines: { node: '>=6' } + p-try@2.2.0: 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@0.2.11: + resolution: { integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ== } - parent-module@1.0.1: - resolution: { integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== } - engines: { node: '>=6' } + package-manager-detector@1.8.0: + resolution: { integrity: sha512-yQA4H19AmPEoMUeavPMDIe1higySl/gH/yaQrkT/s07Qp+7pp2hYz30N3z2l5BkjVkF9Ow6o0wjJamm2y7Sn0A== } - 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' } @@ -1785,13 +1323,12 @@ packages: 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' } + path-type@4.0.0: + resolution: { integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== } + engines: { node: '>=8' } - 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== } @@ -1804,87 +1341,64 @@ packages: resolution: { integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== } engines: { node: '>=12' } + picomatch@4.0.7: + resolution: { integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA== } + engines: { node: '>=12' } + pify@4.0.1: resolution: { integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== } engines: { node: '>=6' } - pirates@4.0.6: - resolution: { integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== } - engines: { node: '>= 6' } - - pkg-dir@3.0.0: - resolution: { integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== } - engines: { node: '>=6' } - - 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@2.8.8: + resolution: { integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== } + engines: { node: '>=10.13.0' } + hasBin: true + + 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== } + publint@0.3.24: + resolution: { integrity: sha512-9zS56KrKBoqi5Qt8h92uMP8TTM9AYZSgnmCo4u2priMqkOZvQnTsziZ2p5LJ2ywbYkAjoCDp2jda9u4cgFefIw== } + engines: { node: '>=18' } + hasBin: true + punycode@2.3.1: resolution: { integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== } engines: { node: '>=6' } + quansync@0.2.11: + resolution: { integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA== } + 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' } - - regenerate-unicode-properties@10.2.0: - resolution: { integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA== } - engines: { node: '>=4' } - - regenerate@1.4.2: - resolution: { integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== } + read-yaml-file@1.1.0: + resolution: { integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA== } + engines: { node: '>=6' } regenerator-runtime@0.14.1: resolution: { integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== } - regenerator-transform@0.15.2: - resolution: { integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== } - - regexp.prototype.flags@1.5.3: - resolution: { integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ== } - engines: { node: '>= 0.4' } - - regexpu-core@6.2.0: - resolution: { integrity: sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA== } - engines: { node: '>=4' } - - regjsgen@0.8.0: - resolution: { integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== } - - regjsparser@0.12.0: - resolution: { integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ== } - hasBin: true - 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' } + 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== } @@ -1895,52 +1409,34 @@ packages: 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== } - safe-array-concat@1.1.3: - resolution: { integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q== } - engines: { node: '>=0.4' } - - safe-buffer@5.2.1: - resolution: { integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== } - - safe-regex-test@1.1.0: - resolution: { integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw== } - engines: { node: '>= 0.4' } + sade@1.8.1: + resolution: { integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== } + engines: { node: '>=6' } - semver@5.7.2: - resolution: { integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== } - hasBin: true + safer-buffer@2.1.2: + resolution: { integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== } - 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' } - - shallow-clone@3.0.1: - resolution: { integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== } - engines: { node: '>=8' } + serialize-javascript@7.1.1: + resolution: { integrity: sha512-k3CMsaIvvdSwm8oLB4MXSl0wH2/cwlH7xGcnRd2DaeRmBkbzYmyT8j0tsX60DwD1eRwHTpNpH8ljKu9oUT1MeQ== } + engines: { node: '>=20.0.0' } shebang-command@2.0.0: resolution: { integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== } @@ -1950,29 +1446,28 @@ packages: resolution: { integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== } engines: { node: '>=8' } - side-channel-list@1.0.0: - resolution: { integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA== } - engines: { node: '>= 0.4' } - - side-channel-map@1.0.1: - resolution: { integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== } - engines: { node: '>= 0.4' } - - side-channel-weakmap@1.0.2: - resolution: { integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== } - engines: { node: '>= 0.4' } - - side-channel@1.1.0: - resolution: { integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== } - 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' } + + slash@3.0.0: + resolution: { integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== } + 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,57 +1475,72 @@ 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' } + spawndamnit@3.0.1: + resolution: { integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg== } - string-width@5.1.2: - resolution: { integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== } - engines: { node: '>=12' } + sprintf-js@1.0.3: + resolution: { integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== } - 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-json-comments@3.1.1: - resolution: { integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== } - engines: { node: '>=8' } + strip-bom@3.0.0: + resolution: { integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== } + engines: { node: '>=4' } supports-color@7.2.0: resolution: { integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== } engines: { node: '>=8' } - supports-color@8.1.1: - 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' } + term-size@2.2.1: + resolution: { integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== } + engines: { node: '>=8' } + 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== } + 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' } to-regex-range@5.0.1: resolution: { integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== } @@ -2040,113 +1550,141 @@ packages: 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-array-byte-offset@1.0.4: - resolution: { integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ== } - engines: { node: '>= 0.4' } - - typed-array-length@1.0.7: - resolution: { integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg== } - engines: { node: '>= 0.4' } - - unbox-primitive@1.1.0: - resolution: { integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw== } - engines: { node: '>= 0.4' } - - unicode-canonical-property-names-ecmascript@2.0.1: - resolution: { integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg== } - engines: { node: '>=4' } - - unicode-match-property-ecmascript@2.0.0: - resolution: { integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== } - engines: { node: '>=4' } + typescript@5.6.1-rc: + resolution: { integrity: sha512-E3b2+1zEFu84jB0YQi9BORDjz9+jGbwwy1Zi3G0LUNw7a7cePUrHMRNy8aPh53nXpkFGVHSxIZo5vKTfYaFiBQ== } + engines: { node: '>=14.17' } + hasBin: true - unicode-match-property-value-ecmascript@2.2.0: - resolution: { integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg== } - engines: { node: '>=4' } + typescript@5.9.3: + resolution: { integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== } + engines: { node: '>=14.17' } + hasBin: true - unicode-property-aliases-ecmascript@2.1.0: - resolution: { integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== } + unicode-emoji-modifier-base@1.0.0: + resolution: { integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g== } engines: { node: '>=4' } - update-browserslist-db@1.1.1: - resolution: { integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A== } - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' + universalify@0.1.2: + resolution: { integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== } + engines: { node: '>= 4.0.0' } uri-js@4.4.1: resolution: { integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== } - v8flags@3.2.0: - resolution: { integrity: sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg== } - engines: { node: '>= 0.10' } - - which-boxed-primitive@1.1.1: - resolution: { integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA== } - engines: { node: '>= 0.4' } - - which-builtin-type@1.2.1: - resolution: { integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q== } - engines: { node: '>= 0.4' } + validate-npm-package-name@5.0.1: + resolution: { integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } - which-collection@1.0.2: - resolution: { integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== } - 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-typed-array@1.1.18: - resolution: { integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA== } - 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@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 + 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== } - 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' } @@ -2156,743 +1694,228 @@ packages: engines: { node: '>=10' } snapshots: - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - - '@babel/code-frame@7.26.2': - dependencies: - '@babel/helper-validator-identifier': 7.25.9 - js-tokens: 4.0.0 - picocolors: 1.1.1 + '@andrewbranch/untar.js@1.0.4': {} - '@babel/compat-data@7.26.3': {} - - '@babel/core@7.26.0': - 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 - convert-source-map: 2.0.0 - debug: 4.4.0(supports-color@8.1.1) - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/generator@7.26.3': - dependencies: - '@babel/parser': 7.26.3 - '@babel/types': 7.26.3 - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - 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': + '@arethetypeswrong/cli@0.18.5': 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/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.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/helper-create-regexp-features-plugin@7.26.3(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - regexpu-core: 6.2.0 - semver: 6.3.1 - - '@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-member-expression-to-functions@7.25.9': - dependencies: - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.3 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-imports@7.25.9': - dependencies: - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.3 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': - 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 + '@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 - '@babel/helper-optimise-call-expression@7.25.9': + '@arethetypeswrong/core@0.18.5': dependencies: - '@babel/types': 7.26.3 + '@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/helper-plugin-utils@7.25.9': {} - - '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.0)': - 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/helper-string-parser@7.29.7': {} - '@babel/helper-replace-supers@7.25.9(@babel/core@7.26.0)': - 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/helper-validator-identifier@7.29.7': {} - '@babel/helper-skip-transparent-expression-wrappers@7.25.9': + '@babel/parser@7.29.8': dependencies: - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.3 - transitivePeerDependencies: - - supports-color - - '@babel/helper-string-parser@7.25.9': {} - - '@babel/helper-validator-identifier@7.25.9': {} - - '@babel/helper-validator-option@7.25.9': {} + '@babel/types': 7.29.8 - '@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/helpers@7.26.0': - dependencies: - '@babel/template': 7.25.9 - '@babel/types': 7.26.3 - - '@babel/node@7.26.0(@babel/core@7.26.0)': + '@babel/runtime@7.26.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/parser@7.26.3': - dependencies: - '@babel/types': 7.26.3 - - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/traverse': 7.26.4 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.26.0)': - 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/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/traverse': 7.26.4 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-proposal-decorators@7.25.9(@babel/core@7.26.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 - '@babel/plugin-syntax-decorators': 7.25.9(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-syntax-decorators@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@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-arrow-functions@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-async-generator-functions@7.25.9(@babel/core@7.26.0)': - 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/plugin-transform-async-to-generator@7.25.9(@babel/core@7.26.0)': - 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/plugin-transform-block-scoped-functions@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.0)': - 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/plugin-transform-class-static-block@7.26.0(@babel/core@7.26.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/plugin-transform-classes@7.25.9(@babel/core@7.26.0)': - 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/plugin-transform-computed-properties@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/template': 7.25.9 - - '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.26.0)': - 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-duplicate-keys@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@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 - - '@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-exponentiation-operator@7.26.3(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@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 - - '@babel/plugin-transform-for-of@7.25.9(@babel/core@7.26.0)': - 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 - - '@babel/plugin-transform-function-name@7.25.9(@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 - '@babel/traverse': 7.26.4 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-literals@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-member-expression-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-modules-amd@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 - - '@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 - - '@babel/plugin-transform-modules-systemjs@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 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.4 - transitivePeerDependencies: - - supports-color - - '@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 - - '@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 - - '@babel/plugin-transform-new-target@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-nullish-coalescing-operator@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-object-rest-spread@7.25.9(@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 - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) - - '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.26.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 - - '@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.0)': - 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 - - '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.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/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.26.0)': - 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 + '@babel/types@7.29.8': + dependencies: + '@babel/helper-string-parser': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + + '@bcoe/v8-coverage@1.0.2': {} + + '@braidai/lang@1.1.2': {} + + '@changesets/apply-release-plan@7.1.1': + dependencies: + '@changesets/config': 3.1.4 + '@changesets/get-version-range-type': 0.4.0 + '@changesets/git': 3.0.4 + '@changesets/should-skip-package': 0.1.2 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + detect-indent: 6.1.0 + fs-extra: 7.0.1 + lodash.startcase: 4.4.0 + outdent: 0.5.0 + prettier: 2.8.8 + resolve-from: 5.0.0 + semver: 7.8.5 + + '@changesets/assemble-release-plan@6.0.10': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.4 + '@changesets/should-skip-package': 0.1.2 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + semver: 7.8.5 + + '@changesets/changelog-git@0.2.1': + dependencies: + '@changesets/types': 6.1.0 + + '@changesets/cli@2.31.1': + dependencies: + '@changesets/apply-release-plan': 7.1.1 + '@changesets/assemble-release-plan': 6.0.10 + '@changesets/changelog-git': 0.2.1 + '@changesets/config': 3.1.4 + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.4 + '@changesets/get-release-plan': 4.0.16 + '@changesets/git': 3.0.4 + '@changesets/logger': 0.1.1 + '@changesets/pre': 2.0.2 + '@changesets/read': 0.6.7 + '@changesets/should-skip-package': 0.1.2 + '@changesets/types': 6.1.0 + '@changesets/write': 0.4.0 + '@inquirer/external-editor': 1.0.3 + '@manypkg/get-packages': 1.1.3 + ansi-colors: 4.1.3 + enquirer: 2.4.1 + fs-extra: 7.0.1 + mri: 1.2.0 + package-manager-detector: 0.2.11 + picocolors: 1.1.1 + resolve-from: 5.0.0 + semver: 7.8.5 + spawndamnit: 3.0.1 + term-size: 2.2.1 transitivePeerDependencies: - - supports-color + - '@types/node' - '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.26.0)': + '@changesets/config@3.1.4': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.4 + '@changesets/logger': 0.1.1 + '@changesets/should-skip-package': 0.1.2 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + micromatch: 4.0.8 - '@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.26.0)': + '@changesets/errors@0.2.0': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - regenerator-transform: 0.15.2 + extendable-error: 0.1.7 - '@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.26.0)': + '@changesets/get-dependents-graph@2.1.4': 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-reserved-words@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.0)': - 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 - - '@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 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + picocolors: 1.1.1 + semver: 7.8.5 - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.0)': + '@changesets/get-release-plan@4.0.16': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/types': 7.26.3 - esutils: 2.0.3 + '@changesets/assemble-release-plan': 6.0.10 + '@changesets/config': 3.1.4 + '@changesets/pre': 2.0.2 + '@changesets/read': 0.6.7 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 - '@babel/register@7.25.9(@babel/core@7.26.0)': - 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 + '@changesets/get-version-range-type@0.4.0': {} - '@babel/runtime@7.26.0': + '@changesets/git@3.0.4': dependencies: - regenerator-runtime: 0.14.1 + '@changesets/errors': 0.2.0 + '@manypkg/get-packages': 1.1.3 + is-subdir: 1.2.0 + micromatch: 4.0.8 + spawndamnit: 3.0.1 - '@babel/template@7.25.9': + '@changesets/logger@0.1.1': dependencies: - '@babel/code-frame': 7.26.2 - '@babel/parser': 7.26.3 - '@babel/types': 7.26.3 + picocolors: 1.1.1 - '@babel/traverse@7.26.4': + '@changesets/parse@0.4.3': 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 + '@changesets/types': 6.1.0 + js-yaml: 4.3.2 - '@babel/types@7.26.3': + '@changesets/pre@2.0.2': dependencies: - '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 + '@changesets/errors': 0.2.0 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 - '@eslint-community/eslint-utils@4.4.1(eslint@8.57.1)': + '@changesets/read@0.6.7': dependencies: - eslint: 8.57.1 - eslint-visitor-keys: 3.4.3 + '@changesets/git': 3.0.4 + '@changesets/logger': 0.1.1 + '@changesets/parse': 0.4.3 + '@changesets/types': 6.1.0 + fs-extra: 7.0.1 + p-filter: 2.1.0 + picocolors: 1.1.1 - '@eslint-community/eslint-utils@4.4.1(eslint@9.17.0)': + '@changesets/should-skip-package@0.1.2': dependencies: - eslint: 9.17.0 - eslint-visitor-keys: 3.4.3 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 - '@eslint-community/regexpp@4.12.1': {} + '@changesets/types@4.1.0': {} - '@eslint/config-array@0.19.1': + '@changesets/types@6.1.0': {} + + '@changesets/write@0.4.0': dependencies: - '@eslint/object-schema': 2.1.5 - debug: 4.4.0(supports-color@8.1.1) - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color + '@changesets/types': 6.1.0 + fs-extra: 7.0.1 + human-id: 4.2.1 + prettier: 2.8.8 + + '@colors/colors@1.5.0': + optional: true - '@eslint/core@0.9.1': + '@eslint-community/eslint-utils@4.10.1(eslint@10.9.1)': dependencies: - '@types/json-schema': 7.0.15 + eslint: 10.9.1 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.2': {} - '@eslint/eslintrc@2.1.4': + '@eslint/config-array@0.23.5': 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 + '@eslint/object-schema': 3.0.5 + debug: 4.4.0 + minimatch: 10.2.6 transitivePeerDependencies: - supports-color - '@eslint/eslintrc@3.2.0': + '@eslint/config-helpers@0.7.0': 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 + '@eslint/core': 1.2.1 - '@eslint/js@8.57.1': {} + '@eslint/core@1.2.1': + dependencies: + '@types/json-schema': 7.0.15 - '@eslint/js@9.17.0': {} + '@eslint/js@10.0.1(eslint@10.9.1)': + optionalDependencies: + eslint: 10.9.1 - '@eslint/object-schema@2.1.5': {} + '@eslint/object-schema@3.0.5': {} - '@eslint/plugin-kit@0.2.4': + '@eslint/plugin-kit@0.7.2': dependencies: + '@eslint/core': 1.2.1 levn: 0.4.1 '@fleetbase/sdk@1.2.13': @@ -2909,30 +1932,16 @@ snapshots: '@humanfs/core': 0.19.1 '@humanwhocodes/retry': 0.3.1 - '@humanwhocodes/config-array@0.13.0': - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.4.0(supports-color@8.1.1) - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/object-schema@2.0.3': {} - '@humanwhocodes/retry@0.3.1': {} - '@humanwhocodes/retry@0.4.1': {} + '@humanwhocodes/retry@0.4.3': {} - '@isaacs/cliui@8.0.2': + '@inquirer/external-editor@1.0.3': 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 + chardet: 2.2.0 + iconv-lite: 0.7.3 '@jridgewell/gen-mapping@0.3.8': dependencies: @@ -2951,11 +1960,41 @@ snapshots: '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/sourcemap-codec@1.6.0': {} + '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@loaderkit/resolve@1.0.6': + dependencies: + '@braidai/lang': 1.1.2 + + '@manypkg/find-root@1.1.0': + dependencies: + '@babel/runtime': 7.26.0 + '@types/node': 12.20.55 + find-up: 4.1.0 + fs-extra: 8.1.0 + + '@manypkg/get-packages@1.1.3': + dependencies: + '@babel/runtime': 7.26.0 + '@changesets/types': 4.1.0 + '@manypkg/find-root': 1.1.0 + fs-extra: 8.1.0 + globby: 11.1.0 + read-yaml-file: 1.1.0 + + '@napi-rs/lzma-linux-x64-gnu@1.5.1': + optional: true + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -2968,22 +2007,62 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.18.0 - '@pkgjs/parseargs@0.11.0': - optional: true + '@oxc-project/types@0.147.0': {} - '@rollup/plugin-babel@6.0.4(@babel/core@7.26.0)(rollup@4.29.1)': + '@publint/pack@0.1.7': 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 - transitivePeerDependencies: - - supports-color + 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 + + '@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 + + '@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@28.0.2(rollup@4.29.1)': + '@rollup/plugin-commonjs@29.0.3(rollup@4.63.1)': dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.29.1) + '@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) @@ -2991,115 +2070,196 @@ snapshots: magic-string: 0.30.17 picomatch: 4.0.2 optionalDependencies: - rollup: 4.29.1 - - '@rollup/plugin-eslint@9.0.5(rollup@4.29.1)': - dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.29.1) - eslint: 8.57.1 - optionalDependencies: - rollup: 4.29.1 - transitivePeerDependencies: - - supports-color + rollup: 4.63.1 - '@rollup/plugin-node-resolve@16.0.0(rollup@4.29.1)': + '@rollup/plugin-node-resolve@16.0.3(rollup@4.63.1)': dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.29.1) + '@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.29.1 + rollup: 4.63.1 - '@rollup/plugin-terser@0.4.4(rollup@4.29.1)': + '@rollup/plugin-terser@1.0.0(rollup@4.63.1)': dependencies: - serialize-javascript: 6.0.2 + serialize-javascript: 7.1.1 smob: 1.5.0 terser: 5.37.0 optionalDependencies: - rollup: 4.29.1 + rollup: 4.63.1 - '@rollup/pluginutils@5.1.4(rollup@4.29.1)': + '@rollup/pluginutils@5.1.4(rollup@4.63.1)': dependencies: '@types/estree': 1.0.6 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: - rollup: 4.29.1 + rollup: 4.63.1 + + '@rollup/rollup-android-arm-eabi@4.63.1': + optional: true + + '@rollup/rollup-android-arm64@4.63.1': + optional: true + + '@rollup/rollup-darwin-arm64@4.63.1': + optional: true + + '@rollup/rollup-darwin-x64@4.63.1': + optional: true + + '@rollup/rollup-freebsd-arm64@4.63.1': + optional: true + + '@rollup/rollup-freebsd-x64@4.63.1': + optional: true - '@rollup/rollup-android-arm-eabi@4.29.1': + '@rollup/rollup-linux-arm-gnueabihf@4.63.1': optional: true - '@rollup/rollup-android-arm64@4.29.1': + '@rollup/rollup-linux-arm-musleabihf@4.63.1': optional: true - '@rollup/rollup-darwin-arm64@4.29.1': + '@rollup/rollup-linux-arm64-gnu@4.63.1': optional: true - '@rollup/rollup-darwin-x64@4.29.1': + '@rollup/rollup-linux-arm64-musl@4.63.1': optional: true - '@rollup/rollup-freebsd-arm64@4.29.1': + '@rollup/rollup-linux-loong64-gnu@4.63.1': optional: true - '@rollup/rollup-freebsd-x64@4.29.1': + '@rollup/rollup-linux-loong64-musl@4.63.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.29.1': + '@rollup/rollup-linux-ppc64-gnu@4.63.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.29.1': + '@rollup/rollup-linux-ppc64-musl@4.63.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.29.1': + '@rollup/rollup-linux-riscv64-gnu@4.63.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.29.1': + '@rollup/rollup-linux-riscv64-musl@4.63.1': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.29.1': + '@rollup/rollup-linux-s390x-gnu@4.63.1': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.29.1': + '@rollup/rollup-linux-x64-gnu@4.63.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.29.1': + '@rollup/rollup-linux-x64-musl@4.63.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.29.1': + '@rollup/rollup-openbsd-x64@4.63.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.29.1': + '@rollup/rollup-openharmony-arm64@4.63.1': optional: true - '@rollup/rollup-linux-x64-musl@4.29.1': + '@rollup/rollup-win32-arm64-msvc@4.63.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.29.1': + '@rollup/rollup-win32-ia32-msvc@4.63.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.29.1': + '@rollup/rollup-win32-x64-gnu@4.63.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.29.1': + '@rollup/rollup-win32-x64-msvc@4.63.1': optional: true + '@sindresorhus/is@4.6.0': {} + + '@standard-schema/spec@1.1.0': {} + + '@types/chai@5.2.3': + dependencies: + '@types/deep-eql': 4.0.2 + assertion-error: 2.0.1 + + '@types/deep-eql@4.0.2': {} + + '@types/esrecurse@4.3.1': {} + '@types/estree@1.0.6': {} + '@types/estree@1.0.9': {} + '@types/json-schema@7.0.15': {} + '@types/node@12.20.55': {} + '@types/resolve@1.20.2': {} - '@ungap/structured-clone@1.2.1': {} + '@vitest/coverage-v8@4.1.11(vitest@4.1.11)': + dependencies: + '@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.37.0)) + + '@vitest/expect@4.1.11': + dependencies: + '@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 + + '@vitest/mocker@4.1.11(vite@8.2.2(terser@5.37.0))': + dependencies: + '@vitest/spy': 4.1.11 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + vite: 8.2.2(terser@5.37.0) - acorn-jsx@5.3.2(acorn@8.14.0): + '@vitest/pretty-format@4.1.11': dependencies: - acorn: 8.14.0 + tinyrainbow: 3.1.1 + + '@vitest/runner@4.1.11': + dependencies: + '@vitest/utils': 4.1.11 + pathe: 2.0.3 + + '@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 + + '@vitest/spy@4.1.11': {} + + '@vitest/utils@4.1.11': + dependencies: + '@vitest/pretty-format': 4.1.11 + convert-source-map: 2.0.0 + tinyrainbow: 3.1.1 + + acorn-jsx@5.3.2(acorn@8.18.0): + dependencies: + acorn: 8.18.0 acorn@8.14.0: {} - ajv@6.12.6: + acorn@8.18.0: {} + + ajv@6.15.0: dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 @@ -3108,6 +2268,10 @@ snapshots: ansi-colors@4.1.3: {} + ansi-escapes@7.3.0: + dependencies: + environment: 1.1.0 + ansi-regex@5.0.1: {} ansi-regex@6.1.0: {} @@ -3116,48 +2280,26 @@ snapshots: dependencies: color-convert: 2.0.1 - ansi-styles@6.2.1: {} + any-promise@1.3.0: {} - anymatch@3.1.3: + argparse@1.0.10: dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 + sprintf-js: 1.0.3 argparse@2.0.1: {} - array-buffer-byte-length@1.0.2: - dependencies: - call-bound: 1.0.3 - is-array-buffer: 3.0.5 + array-union@2.1.0: {} - 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: dependencies: follow-redirects: 1.15.9 @@ -3166,107 +2308,51 @@ snapshots: 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: {} - - binary-extensions@2.3.0: {} + balanced-match@4.0.4: {} - brace-expansion@1.1.11: + better-path-resolve@1.0.0: dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 + is-windows: 1.0.2 - brace-expansion@2.0.1: + brace-expansion@5.0.9: dependencies: - balanced-match: 1.0.2 + balanced-match: 4.0.4 braces@3.0.3: dependencies: fill-range: 7.1.1 - browser-stdout@1.3.1: {} - - browserslist@4.24.3: - 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) - buffer-from@1.1.2: {} - call-bind-apply-helpers@1.0.1: - 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 + chai@6.2.2: {} - call-bound@1.0.3: + chalk@4.1.2: dependencies: - call-bind-apply-helpers: 1.0.1 - get-intrinsic: 1.2.6 + ansi-styles: 4.3.0 + supports-color: 7.2.0 - callsites@3.1.0: {} + chalk@5.6.2: {} - camelcase@6.3.0: {} + char-regex@1.0.2: {} - caniuse-lite@1.0.30001690: {} + chardet@2.2.0: {} - 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 + cjs-module-lexer@1.4.3: {} - chalk@4.1.2: + cli-highlight@2.1.11: dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - check-error@2.1.1: {} + 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 - chokidar@3.6.0: + cli-table3@0.6.5: 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 + string-width: 4.2.3 optionalDependencies: - fsevents: 2.3.3 + '@colors/colors': 1.5.0 cliui@7.0.4: dependencies: @@ -3274,12 +2360,6 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - clone-deep@4.0.1: - dependencies: - is-plain-object: 2.0.4 - kind-of: 6.0.3 - shallow-clone: 3.0.1 - color-convert@2.0.1: dependencies: color-name: 1.1.4 @@ -3290,23 +2370,15 @@ snapshots: dependencies: delayed-stream: 1.0.0 - commander@2.20.3: {} + commander@10.0.1: {} - commander@6.2.1: {} + commander@2.20.3: {} commondir@1.0.1: {} - concat-map@0.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 +2386,74 @@ 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 - - data-view-byte-offset@1.0.1: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - date-fns@4.1.0: {} + date-fns@4.4.0: {} - debug@4.4.0(supports-color@8.1.1): + debug@4.4.0: 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: - dependencies: - esutils: 2.0.3 + detect-indent@6.1.0: {} - dotenv@16.4.7: {} + detect-libc@2.1.2: {} - dunder-proto@1.0.1: + dir-glob@3.0.1: dependencies: - call-bind-apply-helpers: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 - - eastasianwidth@0.2.0: {} - - electron-to-chromium@1.5.76: {} + path-type: 4.0.0 emoji-regex@8.0.0: {} - emoji-regex@9.2.2: {} - - es-abstract@1.23.7: - 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: {} - - es-define-property@1.0.1: {} - - es-errors@1.3.0: {} - - es-object-atoms@1.0.0: - dependencies: - es-errors: 1.3.0 - - es-set-tostringtag@2.0.3: - dependencies: - get-intrinsic: 1.2.6 - has-tostringtag: 1.0.2 - hasown: 2.0.2 + emojilib@2.4.0: {} - es-to-primitive@1.3.0: + enquirer@2.4.1: dependencies: - is-callable: 1.2.7 - is-date-object: 1.1.0 - is-symbol: 1.1.1 + ansi-colors: 4.1.3 + strip-ansi: 6.0.1 + + environment@1.1.0: {} + + es-module-lexer@2.3.2: {} 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 +2463,21 @@ 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: + espree@11.2.0: dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) - eslint-visitor-keys: 4.2.0 + acorn: 8.18.0 + acorn-jsx: 5.3.2(acorn@8.18.0) + eslint-visitor-keys: 5.0.1 - espree@9.6.1: - dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) - eslint-visitor-keys: 3.4.3 + esprima@4.0.1: {} - esquery@1.6.0: + esquery@1.7.0: dependencies: estraverse: 5.3.0 @@ -3580,10 +2489,26 @@ snapshots: estree-walker@2.0.2: {} + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.6 + esutils@2.0.3: {} + expect-type@1.4.0: {} + + extendable-error@0.1.7: {} + fast-deep-equal@3.1.3: {} + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + fast-json-stable-stringify@2.1.0: {} fast-levenshtein@2.0.6: {} @@ -3596,9 +2521,11 @@ snapshots: 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 + + fflate@0.8.3: {} file-entry-cache@8.0.0: dependencies: @@ -3608,94 +2535,50 @@ snapshots: dependencies: to-regex-range: 5.0.1 - find-cache-dir@2.1.0: - dependencies: - commondir: 1.0.1 - make-dir: 2.1.0 - pkg-dir: 3.0.0 - - 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 keyv: 4.5.4 - flat@5.0.2: {} - 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 - form-data@4.0.1: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 - fs.realpath@1.0.0: {} + fs-extra@7.0.1: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fs-extra@8.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 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: - dependencies: - call-bind-apply-helpers: 1.0.1 - dunder-proto: 1.0.1 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - function-bind: 1.1.2 - gopd: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - math-intrinsics: 1.1.0 - - get-symbol-description@1.1.0: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - get-intrinsic: 1.2.6 - glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -3704,373 +2587,243 @@ snapshots: 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@17.11.0: {} - globals@14.0.0: {} - - globals@15.14.0: {} - - globalthis@1.0.4: + globby@11.1.0: dependencies: - define-properties: 1.2.1 - gopd: 1.2.0 - - gopd@1.2.0: {} - - graphemer@1.4.0: {} + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.3 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.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: - dependencies: - has-symbols: 1.1.0 - hasown@2.0.2: dependencies: function-bind: 1.1.2 - he@1.2.0: {} + highlight.js@10.7.3: {} - homedir-polyfill@1.0.3: - dependencies: - parse-passwd: 1.0.0 - - ignore@5.3.2: {} - - import-fresh@3.3.0: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - - imurmurhash@0.1.4: {} - - inflight@1.0.6: - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - - inherits@2.0.4: {} - - internal-slot@1.1.0: - dependencies: - es-errors: 1.3.0 - hasown: 2.0.2 - side-channel: 1.1.0 - - is-array-buffer@3.0.5: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - get-intrinsic: 1.2.6 - - is-async-function@2.0.0: - dependencies: - has-tostringtag: 1.0.2 + html-escaper@2.0.2: {} - is-bigint@1.1.0: - dependencies: - has-bigints: 1.1.0 + human-id@4.2.1: {} - is-binary-path@2.1.0: + iconv-lite@0.7.3: dependencies: - binary-extensions: 2.3.0 + safer-buffer: 2.1.2 - is-boolean-object@1.2.1: - dependencies: - call-bound: 1.0.3 - has-tostringtag: 1.0.2 + ignore@5.3.2: {} - is-callable@1.2.7: {} + imurmurhash@0.1.4: {} 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-object@2.0.4: - dependencies: - isobject: 3.0.1 - is-reference@1.2.1: 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-set@2.0.3: {} - - is-shared-array-buffer@1.0.4: + is-subdir@1.2.0: dependencies: - call-bound: 1.0.3 + better-path-resolve: 1.0.0 - is-string@1.1.1: - dependencies: - call-bound: 1.0.3 - has-tostringtag: 1.0.2 - - is-symbol@1.1.1: - dependencies: - call-bound: 1.0.3 - has-symbols: 1.1.0 - safe-regex-test: 1.1.0 - - is-typed-array@1.1.15: - dependencies: - which-typed-array: 1.1.18 + is-windows@1.0.2: {} - is-unicode-supported@0.1.0: {} + isexe@2.0.0: {} - is-weakmap@2.0.2: {} + istanbul-lib-coverage@3.2.2: {} - is-weakref@1.1.0: + istanbul-lib-report@3.0.1: dependencies: - call-bound: 1.0.3 + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 - is-weakset@2.0.4: + istanbul-reports@3.2.0: dependencies: - call-bound: 1.0.3 - get-intrinsic: 1.2.6 - - isarray@2.0.5: {} + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 - isexe@2.0.0: {} - - isobject@3.0.1: {} + js-tokens@10.0.0: {} - jackspeak@3.4.3: + js-yaml@3.15.2: dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - - js-tokens@4.0.0: {} + argparse: 1.0.10 + esprima: 4.0.1 - js-yaml@4.1.0: + js-yaml@4.3.2: dependencies: argparse: 2.0.1 - jsesc@3.0.2: {} - - jsesc@3.1.0: {} - json-buffer@3.0.1: {} json-schema-traverse@0.4.1: {} json-stable-stringify-without-jsonify@1.0.1: {} - json5@2.2.3: {} + jsonfile@4.0.0: + optionalDependencies: + graceful-fs: 4.2.11 keyv@4.5.4: dependencies: json-buffer: 3.0.1 - kind-of@6.0.3: {} - levn@0.4.1: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 - locate-path@3.0.0: - dependencies: - p-locate: 3.0.0 - path-exists: 3.0.0 + lightningcss-android-arm64@1.33.0: + optional: true - locate-path@6.0.0: - dependencies: - p-locate: 5.0.0 + lightningcss-darwin-arm64@1.33.0: + optional: true + + lightningcss-darwin-x64@1.33.0: + optional: true - lodash.debounce@4.0.8: {} + lightningcss-freebsd-x64@1.33.0: + optional: true - lodash.merge@4.6.2: {} + lightningcss-linux-arm-gnueabihf@1.33.0: + optional: true - log-symbols@4.1.0: - dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 + lightningcss-linux-arm64-gnu@1.33.0: + optional: true - loupe@3.1.2: {} + lightningcss-linux-arm64-musl@1.33.0: + optional: true - lru-cache@10.4.3: {} + lightningcss-linux-x64-gnu@1.33.0: + optional: true - lru-cache@5.1.1: - dependencies: - yallist: 3.1.1 + lightningcss-linux-x64-musl@1.33.0: + optional: true - magic-string@0.30.17: + lightningcss-win32-arm64-msvc@1.33.0: + optional: true + + lightningcss-win32-x64-msvc@1.33.0: + optional: true + + lightningcss@1.33.0: dependencies: - '@jridgewell/sourcemap-codec': 1.5.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 - make-dir@2.1.0: + locate-path@6.0.0: dependencies: - pify: 4.0.1 - semver: 5.7.2 + p-locate: 5.0.0 - math-intrinsics@1.1.0: {} + lodash.startcase@4.4.0: {} - mime-db@1.52.0: {} + lru-cache@11.5.2: {} - mime-types@2.1.35: + magic-string@0.30.17: dependencies: - mime-db: 1.52.0 + '@jridgewell/sourcemap-codec': 1.5.0 - minimatch@3.1.2: + magic-string@0.30.21: dependencies: - brace-expansion: 1.1.11 + '@jridgewell/sourcemap-codec': 1.6.0 - minimatch@5.1.6: + magicast@0.5.4: dependencies: - brace-expansion: 2.0.1 + '@babel/parser': 7.29.8 + '@babel/types': 7.29.8 + source-map-js: 1.2.1 - minimatch@9.0.5: + make-dir@4.0.0: dependencies: - brace-expansion: 2.0.1 + semver: 7.8.5 - minipass@7.1.2: {} - - mocha@11.0.1: + marked-terminal@7.3.0(marked@9.1.6): 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 + 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 - ms@2.1.3: {} + marked@9.1.6: {} - natural-compare@1.4.0: {} + merge2@1.4.1: {} - node-environment-flags@1.0.6: + micromatch@4.0.8: dependencies: - object.getownpropertydescriptors: 2.1.8 - semver: 5.7.2 + braces: 3.0.3 + picomatch: 2.3.1 - node-releases@2.0.19: {} + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 - normalize-path@3.0.0: {} + minimatch@10.2.6: + dependencies: + brace-expansion: 5.0.9 - object-inspect@1.13.3: {} + mri@1.2.0: {} - object-keys@1.1.1: {} + ms@2.1.3: {} - object.assign@4.1.7: + mz@2.7.0: 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 + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 - object.getownpropertydescriptors@2.1.8: - 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 + nanoid@3.3.18: {} - once@1.4.0: + natural-compare@1.4.0: {} + + node-emoji@2.2.0: dependencies: - wrappy: 1.0.2 + '@sindresorhus/is': 4.6.0 + char-regex: 1.0.2 + emojilib: 2.4.0 + skin-tone: 2.0.0 + + object-assign@4.1.1: {} + + obug@2.1.4: {} optionator@0.9.4: dependencies: @@ -4081,6 +2834,12 @@ snapshots: type-check: 0.4.0 word-wrap: 1.2.5 + outdent@0.5.0: {} + + p-filter@2.1.0: + dependencies: + p-map: 2.1.0 + p-limit@2.3.0: dependencies: p-try: 2.2.0 @@ -4089,7 +2848,7 @@ snapshots: dependencies: yocto-queue: 0.1.0 - p-locate@3.0.0: + p-locate@4.1.0: dependencies: p-limit: 2.3.0 @@ -4097,32 +2856,33 @@ snapshots: dependencies: p-limit: 3.1.0 + p-map@2.1.0: {} + p-try@2.2.0: {} - package-json-from-dist@1.0.1: {} + package-manager-detector@0.2.11: + dependencies: + quansync: 0.2.11 + + package-manager-detector@1.8.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-scurry@1.11.1: - dependencies: - lru-cache: 10.4.3 - minipass: 7.1.2 + path-type@4.0.0: {} - pathval@2.0.0: {} + pathe@2.0.3: {} picocolors@1.1.1: {} @@ -4130,82 +2890,49 @@ snapshots: picomatch@4.0.2: {} - pify@4.0.1: {} + picomatch@4.0.7: {} - pirates@4.0.6: {} + pify@4.0.1: {} - pkg-dir@3.0.0: + postcss@8.5.26: dependencies: - find-up: 3.0.0 - - possible-typed-array-names@1.0.0: {} + nanoid: 3.3.18 + picocolors: 1.1.1 + source-map-js: 1.2.1 prelude-ls@1.2.1: {} - prettier@3.4.2: {} - - proxy-from-env@1.1.0: {} - - punycode@2.3.1: {} - - queue-microtask@1.2.3: {} - - randombytes@2.1.0: - dependencies: - safe-buffer: 5.2.1 + prettier@2.8.8: {} - readdirp@3.6.0: - dependencies: - picomatch: 2.3.1 + prettier@3.9.6: {} - reflect.getprototypeof@1.0.9: - 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 + proxy-from-env@1.1.0: {} - regenerate-unicode-properties@10.2.0: + publint@0.3.24: dependencies: - regenerate: 1.4.2 - - regenerate@1.4.2: {} + '@publint/pack': 0.1.7 + package-manager-detector: 1.8.0 + picocolors: 1.1.1 + sade: 1.8.1 - regenerator-runtime@0.14.1: {} + punycode@2.3.1: {} - regenerator-transform@0.15.2: - dependencies: - '@babel/runtime': 7.26.0 + quansync@0.2.11: {} - regexp.prototype.flags@1.5.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-errors: 1.3.0 - set-function-name: 2.0.2 + queue-microtask@1.2.3: {} - regexpu-core@6.2.0: + read-yaml-file@1.1.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 - - regjsgen@0.8.0: {} + graceful-fs: 4.2.11 + js-yaml: 3.15.2 + pify: 4.0.1 + strip-bom: 3.0.0 - regjsparser@0.12.0: - dependencies: - jsesc: 3.0.2 + regenerator-runtime@0.14.1: {} require-directory@2.1.1: {} - resolve-from@4.0.0: {} + resolve-from@5.0.0: {} resolve@1.22.10: dependencies: @@ -4215,82 +2942,72 @@ snapshots: reusify@1.0.4: {} - rimraf@3.0.2: + rolldown@1.2.6: dependencies: - glob: 7.2.3 - - rollup@4.29.1: - 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: + sade@1.8.1: 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 + mri: 1.2.0 - safe-buffer@5.2.1: {} - - safe-regex-test@1.1.0: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - is-regex: 1.2.1 - - semver@5.7.2: {} - - semver@6.3.1: {} - - serialize-javascript@6.0.2: - dependencies: - randombytes: 2.1.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 + safer-buffer@2.1.2: {} - 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 + semver@7.8.5: {} - shallow-clone@3.0.1: - dependencies: - kind-of: 6.0.3 + serialize-javascript@7.1.1: {} shebang-command@2.0.0: dependencies: @@ -4298,38 +3015,20 @@ snapshots: shebang-regex@3.0.0: {} - side-channel-list@1.0.0: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.3 - - side-channel-map@1.0.1: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - get-intrinsic: 1.2.6 - object-inspect: 1.13.3 + siginfo@2.0.0: {} - side-channel-weakmap@1.0.2: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - get-intrinsic: 1.2.6 - object-inspect: 1.13.3 - side-channel-map: 1.0.1 + signal-exit@4.1.0: {} - side-channel@1.1.0: + skin-tone@2.0.0: dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.3 - side-channel-list: 1.0.0 - side-channel-map: 1.0.1 - side-channel-weakmap: 1.0.2 + unicode-emoji-modifier-base: 1.0.0 - signal-exit@4.1.0: {} + slash@3.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,61 +3036,42 @@ snapshots: source-map@0.6.1: {} - string-width@4.2.3: + spawndamnit@3.0.1: dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 + cross-spawn: 7.0.6 + signal-exit: 4.1.0 - string-width@5.1.2: - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.0 + sprintf-js@1.0.3: {} - 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 + stackback@0.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 + std-env@4.2.0: {} - string.prototype.trimstart@1.0.8: + string-width@4.2.3: dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-object-atoms: 1.0.0 + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 - strip-ansi@7.1.0: - dependencies: - ansi-regex: 6.1.0 - - strip-json-comments@3.1.1: {} + strip-bom@3.0.0: {} supports-color@7.2.0: dependencies: has-flag: 4.0.0 - supports-color@8.1.1: + supports-hyperlinks@3.2.0: dependencies: has-flag: 4.0.0 + supports-color: 7.2.0 supports-preserve-symlinks-flag@1.0.0: {} + term-size@2.2.1: {} + terser@5.37.0: dependencies: '@jridgewell/source-map': 0.3.6 @@ -4399,130 +3079,95 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 - text-table@0.2.0: {} - - 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: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - is-typed-array: 1.1.15 + tinyexec@1.3.0: {} - typed-array-byte-length@1.0.3: + tinyglobby@0.2.17: 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 + fdir: 6.5.0(picomatch@4.0.7) + picomatch: 4.0.7 - typed-array-byte-offset@1.0.4: - 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 + tinyrainbow@3.1.1: {} - typed-array-length@1.0.7: + to-regex-range@5.0.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 + is-number: 7.0.0 - unbox-primitive@1.1.0: + type-check@0.4.0: dependencies: - call-bound: 1.0.3 - has-bigints: 1.1.0 - has-symbols: 1.1.0 - which-boxed-primitive: 1.1.1 - - unicode-canonical-property-names-ecmascript@2.0.1: {} + prelude-ls: 1.2.1 - 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.6.1-rc: {} - unicode-match-property-value-ecmascript@2.2.0: {} + typescript@5.9.3: {} - unicode-property-aliases-ecmascript@2.1.0: {} + unicode-emoji-modifier-base@1.0.0: {} - update-browserslist-db@1.1.1(browserslist@4.24.3): - dependencies: - browserslist: 4.24.3 - escalade: 3.2.0 - picocolors: 1.1.1 + universalify@0.1.2: {} uri-js@4.4.1: dependencies: punycode: 2.3.1 - v8flags@3.2.0: - dependencies: - homedir-polyfill: 1.0.3 - - which-boxed-primitive@1.1.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 - - which-builtin-type@1.2.1: - 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 + validate-npm-package-name@5.0.1: {} - which-collection@1.0.2: + vite@8.2.2(terser@5.37.0): dependencies: - is-map: 2.0.3 - is-set: 2.0.3 - is-weakmap: 2.0.2 - is-weakset: 2.0.4 + 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.37.0 - 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 + vitest@4.1.11(@vitest/coverage-v8@4.1.11)(vite@8.2.2(terser@5.37.0)): + dependencies: + '@vitest/expect': 4.1.11 + '@vitest/mocker': 4.1.11(vite@8.2.2(terser@5.37.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.37.0) + why-is-node-running: 2.3.0 + optionalDependencies: + '@vitest/coverage-v8': 4.1.11(vitest@4.1.11) + transitivePeerDependencies: + - msw 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 - workerpool@6.5.1: {} + word-wrap@1.2.5: {} wrap-ansi@7.0.0: dependencies: @@ -4530,27 +3175,10 @@ 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: {} - 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 diff --git a/rollup.config.js b/rollup.config.js index f507197..375915b 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,61 +1,63 @@ -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'; -const input = ['src/storefront.js']; -const plugins = [ - nodeResolve({ - browser: true, - }), - commonjs(), - babel({ - babelHelpers: 'bundled', - }), - terser(), -]; +const input = 'src/storefront.js'; +const resolve = nodeResolve({ browser: true }); +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, + external: ['@fleetbase/sdk', 'countries-list', 'date-fns'], + plugins: [resolve, commonjs()], + 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, + plugins: [resolve, commonjs(), callableCommonJsDefault], + output: { + file: 'dist/cjs/storefront.cjs', + format: 'cjs', + exports: 'named', + sourcemap: true, + inlineDynamicImports: true, + }, + }, + { + ...shared, + plugins: [resolve, commonjs(), 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/src/customer-store.js b/src/customer-store.js index 2e66e6a..bb56166 100644 --- a/src/customer-store.js +++ b/src/customer-store.js @@ -1,5 +1,5 @@ import Store from './store.js'; -import { isPhone } from './utils'; +import { isPhone } from './utils/index.js'; export default class CustomerStore extends Store { constructor() { diff --git a/src/resource.js b/src/resource.js index 18ff556..e134def 100644 --- a/src/resource.js +++ b/src/resource.js @@ -5,8 +5,8 @@ export default class StorefrontResource extends Resource { /** * 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) { this.adapter = adapter; diff --git a/src/resources.js b/src/resources.js index fbcd87b..f27aafe 100644 --- a/src/resources.js +++ b/src/resources.js @@ -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 index 4ff6375..2d6e29a 100644 --- a/src/resources/cart.js +++ b/src/resources/cart.js @@ -32,7 +32,7 @@ export const cartActions = new StoreActions({ }); export default class Cart extends Resource { - constructor(attributes = {}, adapter, options = {}) { + constructor(attributes = {}, adapter = undefined, options = {}) { super(attributes, adapter, 'cart', { actions: cartActions, ...options }); } @@ -65,17 +65,12 @@ export default class Cart extends Resource { } subtotal() { - let subtotal = 0; - - this.contents().forEach((cartItem) => { - subtotal += cartItem.subtotal; - }); - - return subtotal; + return this.contents().reduce((subtotal, cartItem) => subtotal + Number(cartItem?.subtotal || 0), 0); } contents() { - return this.getAttribute('items', []); + const items = this.getAttribute('items', []); + return isArray(items) ? items : []; } hasProduct(productId) { @@ -83,13 +78,7 @@ export default class Cart extends Resource { } get isEmpty() { - const contents = this.contents(); - - if (!isArray(contents)) { - return true; - } - - return contents.length === 0; + return this.contents().length === 0; } get isNotEmpty() { diff --git a/src/resources/category.js b/src/resources/category.js index e1d0cd4..9ff9418 100644 --- a/src/resources/category.js +++ b/src/resources/category.js @@ -3,7 +3,7 @@ import Product from './product.js'; import { Collection, register } from '@fleetbase/sdk'; export default class Category extends Resource { - constructor(attributes = {}, adapter, options = {}) { + constructor(attributes = {}, adapter = undefined, options = {}) { super(attributes, adapter, 'category', options); } diff --git a/src/resources/checkout.js b/src/resources/checkout.js index d8f8eba..4772dce 100644 --- a/src/resources/checkout.js +++ b/src/resources/checkout.js @@ -1,5 +1,6 @@ import Resource from '../resource.js'; -import { Order, StoreActions, isResource, register } from '@fleetbase/sdk'; +import Order from './order.js'; +import { StoreActions, isResource, register } from '@fleetbase/sdk'; export const checkoutActions = new StoreActions({ create: undefined, @@ -28,7 +29,7 @@ export const checkoutActions = new StoreActions({ }, captureOrder: function (token, params = {}, options = {}) { - return this.adapter.post(`${this.namespace}/capture`, { token, ...params }, options).then((orderJson) => new Order(orderJson)); + return this.adapter.post(`${this.namespace}/capture`, { token, ...params }, options).then((orderJson) => new Order(orderJson, this.adapter)); }, createStripeSetupIntent: function (customer, params = {}, options = {}) { @@ -54,10 +55,34 @@ export const checkoutActions = new StoreActions({ return this.adapter.put(`${this.namespace}/stripe-update-payment-intent`, { paymentIntent, customer, cart, serviceQuote, ...orderOptions }, options); }, + + getStatus: function (checkout, token, options = {}) { + if (isResource(checkout)) { + checkout = checkout.id; + } + + return this.adapter.get(`${this.namespace}/status`, { checkout, token }, options); + }, + + captureQPay: function (checkout, params = {}, options = {}) { + if (isResource(checkout)) { + checkout = checkout.id; + } + + return this.adapter.post(`${this.namespace}/capture-qpay`, { checkout, ...params }, options); + }, + + captureQPayCallback: function (checkout, params = {}, options = {}) { + 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 = {}, adapter, options = {}) { + constructor(attributes = {}, adapter = undefined, options = {}) { super(attributes, adapter, 'checkout', { actions: checkoutActions, ...options }); } @@ -68,6 +93,26 @@ export default class Checkout extends Resource { captureOrder() { return this.store.captureOrder(...arguments); } + + createStripeSetupIntent() { + return this.store.createStripeSetupIntent(...arguments); + } + + updateStripePaymentIntent() { + return this.store.updateStripePaymentIntent(...arguments); + } + + getStatus() { + return this.store.getStatus(...arguments); + } + + captureQPay() { + return this.store.captureQPay(...arguments); + } + + captureQPayCallback() { + return this.store.captureQPayCallback(...arguments); + } } register('resource', 'Checkout', Checkout); diff --git a/src/resources/customer.js b/src/resources/customer.js index c1aaf25..e1c2acb 100644 --- a/src/resources/customer.js +++ b/src/resources/customer.js @@ -54,7 +54,7 @@ export const customerActions = new StoreActions({ }); export default class Customer extends Resource { - constructor(attributes = {}, adapter, options = {}) { + constructor(attributes = {}, adapter = undefined, options = {}) { super(attributes, adapter, 'customer', { actions: customerActions, ...options, @@ -64,8 +64,8 @@ export default class Customer extends Resource { /** * 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) { this.adapter = adapter; @@ -82,53 +82,60 @@ export default class Customer extends Resource { } 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; - } + return this.performAuthorizedRequest('customers/register-device', { token, platform }, 'POST'); } - 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; - } + performAuthorizedRequest(endpoint, params = {}, method = 'GET', options = {}) { + const requestOptions = { + ...options, + headers: { + ...options.headers, + 'Customer-Token': this.token, + }, + }; + + return this.adapter[method.toLowerCase()](endpoint, params, requestOptions); } 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; - } + const places = await this.performAuthorizedRequest('customers/places'); + return new Collection(places.map((attributes) => new Place(attributes, this.adapter))); } 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; - } + const orders = await this.performAuthorizedRequest('customers/orders', params); + return new Collection(orders.map((attributes) => new Order(attributes, this.adapter))); } getStripeEphemeralKey(params = {}) { - return this.adapter.setHeaders({ 'Customer-Token': this.token }).post('customers/stripe-ephemeral-key', params); + return this.performAuthorizedRequest('customers/stripe-ephemeral-key', params, 'POST'); } getStripeSetupIntent(params = {}) { - return this.adapter.setHeaders({ 'Customer-Token': this.token }).post('customers/stripe-setup-intent', 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; + }); } } diff --git a/src/resources/delivery-service-quote.js b/src/resources/delivery-service-quote.js index 5324d5f..01f380f 100644 --- a/src/resources/delivery-service-quote.js +++ b/src/resources/delivery-service-quote.js @@ -3,12 +3,12 @@ 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 = {}) { + constructor(attributes = {}, adapter = undefined, options = {}) { let finalAttributes = attributes; let finalAdapter = adapter; // If `attributes` is actually an Adapter, adjust the arguments accordingly. - if (attributes instanceof Adapter) { + if (attributes instanceof Adapter || (attributes && typeof attributes.get === 'function' && typeof attributes.post === 'function')) { finalAttributes = {}; finalAdapter = attributes; } @@ -21,7 +21,7 @@ export default class DeliveryServiceQuote extends ServiceQuote { * Set a new adapter to the resource instance, this will update the Store instance * * @param {Adapter} adapter - * @return {Resource} this + * @return {this} */ setAdapter(adapter) { this.adapter = adapter; @@ -60,24 +60,19 @@ export default class DeliveryServiceQuote extends ServiceQuote { 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; + 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); } static async getFromCart(adapter, origin, destination, cart, config = 'storefront', all = false) { diff --git a/src/resources/food-truck.js b/src/resources/food-truck.js index 85c3e1a..ad1edca 100644 --- a/src/resources/food-truck.js +++ b/src/resources/food-truck.js @@ -2,7 +2,7 @@ import Resource from '../resource.js'; import { register } from '@fleetbase/sdk'; export default class FoodTruck extends Resource { - constructor(attributes = {}, adapter, options = {}) { + constructor(attributes = {}, adapter = undefined, options = {}) { super(attributes, adapter, 'food-truck', options); } } diff --git a/src/resources/network.js b/src/resources/network.js index c19b786..ca4cfa4 100644 --- a/src/resources/network.js +++ b/src/resources/network.js @@ -8,7 +8,7 @@ import StoreLocation from './store-location.js'; import { Collection, register } from '@fleetbase/sdk'; export default class Network extends Resource { - constructor(attributes = {}, adapter, options = {}) { + constructor(attributes = {}, adapter = undefined, options = {}) { super(attributes, adapter, 'network', options); } diff --git a/src/resources/order-actions.js b/src/resources/order-actions.js new file mode 100644 index 0000000..3d802d0 --- /dev/null +++ b/src/resources/order-actions.js @@ -0,0 +1,21 @@ +import { StoreActions, isResource } from '@fleetbase/sdk'; + +function idFor(value) { + return isResource(value) ? value.id : value; +} + +export const orderActions = new StoreActions({ + 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); + }, +}); diff --git a/src/resources/order.js b/src/resources/order.js new file mode 100644 index 0000000..8f205a1 --- /dev/null +++ b/src/resources/order.js @@ -0,0 +1,9 @@ +import { Order as FleetbaseOrder, register } from '@fleetbase/sdk'; + +export default class Order extends FleetbaseOrder { + constructor(attributes = {}, adapter = undefined, options = {}) { + super(attributes, adapter, options); + } +} + +register('resource', 'Order', Order); diff --git a/src/resources/payment-gateway.js b/src/resources/payment-gateway.js index e2ac712..e19b12b 100644 --- a/src/resources/payment-gateway.js +++ b/src/resources/payment-gateway.js @@ -2,7 +2,7 @@ import Resource from '../resource.js'; import { register } from '@fleetbase/sdk'; export default class PaymentGateway extends Resource { - constructor(attributes = {}, adapter, options = {}) { + constructor(attributes = {}, adapter = undefined, options = {}) { super(attributes, adapter, 'payment-gateway', options); } @@ -22,6 +22,10 @@ export default class PaymentGateway extends Resource { return this.type === 'stripe'; } + get isQPayGateway() { + return this.type === 'qpay' || this.code === 'qpay'; + } + setCheckoutToken(token) { this.token = token; } diff --git a/src/resources/product.js b/src/resources/product.js index 4cfdf42..3cfcddc 100644 --- a/src/resources/product.js +++ b/src/resources/product.js @@ -5,7 +5,7 @@ import { Collection, register } from '@fleetbase/sdk'; import Store from './store.js'; export default class Product extends Resource { - constructor(attributes = {}, adapter, options = {}) { + constructor(attributes = {}, adapter = undefined, options = {}) { super(attributes, adapter, 'product', options); } @@ -17,6 +17,18 @@ export default class Product extends Resource { 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'); } diff --git a/src/resources/review.js b/src/resources/review.js index 24271bb..db7328f 100644 --- a/src/resources/review.js +++ b/src/resources/review.js @@ -14,20 +14,20 @@ export const reviewActions = new StoreActions({ }); export default class Review extends Resource { - constructor(attributes = {}, adapter, options = {}) { + constructor(attributes = {}, adapter = undefined, options = {}) { super(attributes, adapter, 'review', options); } getMedia() { - // @todo + return this.getPhotos(); } getPhotos() { - // @todo + return this.getAttribute('photos') ?? []; } getVideos() { - // @todo + return this.getMedia().filter((media) => media?.type?.startsWith('video/')); } } diff --git a/src/resources/store-hour.js b/src/resources/store-hour.js index ac4fd92..9730072 100644 --- a/src/resources/store-hour.js +++ b/src/resources/store-hour.js @@ -3,7 +3,7 @@ import { format, parse, isValid } from 'date-fns'; import { register } from '@fleetbase/sdk'; export default class StoreHour extends Resource { - constructor(attributes = {}, adapter, options = {}) { + constructor(attributes = {}, adapter = undefined, options = {}) { super(attributes, adapter, 'store-hour', options); } @@ -18,7 +18,12 @@ export default class StoreHour extends Resource { get is24Hours() { const start = this.startDateInstance; const end = this.endDateInstance; - const diff = Math.abs(start - end); + + if (!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; @@ -30,6 +35,9 @@ export default class StoreHour extends Resource { } 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'; @@ -42,6 +50,9 @@ export default class StoreHour extends Resource { } 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'; @@ -50,7 +61,7 @@ export default class StoreHour extends Resource { get humanReadableHoursRange() { if (!isValid(this.startDateInstance) || !isValid(this.endDateInstance)) { - return `${this.start} - ${this.end}`; + return `${this.getAttribute('start')} - ${this.getAttribute('end')}`; } return `${format(this.startDateInstance, 'p')} - ${format(this.endDateInstance, 'p')}`; diff --git a/src/resources/store-location.js b/src/resources/store-location.js index d323562..3ef29de 100644 --- a/src/resources/store-location.js +++ b/src/resources/store-location.js @@ -4,7 +4,7 @@ import { Collection, lookup, register } from '@fleetbase/sdk'; import { format } from 'date-fns'; export default class StoreLocation extends Resource { - constructor(attributes = {}, adapter, options = {}) { + constructor(attributes = {}, adapter = undefined, options = {}) { super(attributes, adapter, 'store-location', options); } @@ -41,7 +41,7 @@ export default class StoreLocation extends Resource { } get isAlwaysOpen() { - return this.hours.every((hour) => hour?.is24Hours); + return this.hours.length > 0 && this.hours.every((hour) => hour?.is24Hours); } get today() { @@ -63,7 +63,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 (schedule[hour.day]) { + schedule[hour.day].pushObject(hour); + } } return schedule; diff --git a/src/resources/store.js b/src/resources/store.js index 821e776..02a8621 100644 --- a/src/resources/store.js +++ b/src/resources/store.js @@ -5,7 +5,7 @@ import Review from './review.js'; import { Collection, Place, register } from '@fleetbase/sdk'; export default class Store extends Resource { - constructor(attributes = {}, adapter, options = {}) { + constructor(attributes = {}, adapter = undefined, options = {}) { super(attributes, adapter, 'store', options); } @@ -15,12 +15,16 @@ export default class Store extends Resource { }); } + getTags(params = {}) { + return this.adapter.get('tags', params); + } + 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); + attributes.place = new Place(attributes.place, this.adapter); } return new StoreLocation(attributes, this.adapter); diff --git a/src/storefront.js b/src/storefront.js index 25fdf06..c120b73 100644 --- a/src/storefront.js +++ b/src/storefront.js @@ -1,10 +1,11 @@ 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 { 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'; /** @@ -48,6 +49,7 @@ export default class Storefront { 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; } @@ -102,4 +104,4 @@ export default class Storefront { } } -export { Product, Category, Customer, Cart, Store, StoreLocation, StoreHour, DeliveryServiceQuote, Checkout, PaymentGateway, Review, Network, FoodTruck, lookup }; +export { Product, Category, Customer, Cart, Store, StoreLocation, StoreHour, DeliveryServiceQuote, Checkout, PaymentGateway, Review, Network, FoodTruck, Order, lookup }; diff --git a/src/utils/is-empty.js b/src/utils/is-empty.js index 5d719cb..7f23523 100644 --- a/src/utils/is-empty.js +++ b/src/utils/is-empty.js @@ -4,30 +4,16 @@ export function isEmpty(obj) { 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.size === 'number') { + return !obj.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; } diff --git a/src/utils/is-phone.js b/src/utils/is-phone.js index ee354ad..b155578 100644 --- a/src/utils/is-phone.js +++ b/src/utils/is-phone.js @@ -1,5 +1,5 @@ export function isPhone(phone = '') { - return /^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(phone); + return /^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/.test(phone); } export default isPhone; diff --git a/tests/actions.test.js b/tests/actions.test.js new file mode 100644 index 0000000..4185a8a --- /dev/null +++ b/tests/actions.test.js @@ -0,0 +1,138 @@ +import { describe, expect, it, vi } from 'vitest'; +import { Order as FleetbaseOrder, Place } from '@fleetbase/sdk'; +import Storefront, { Cart, Checkout, Customer, DeliveryServiceQuote, Order, PaymentGateway } from '../src/storefront.js'; +import FakeAdapter from './helpers/fake-adapter.js'; + +const STORE_KEY = `store_${'a'.repeat(32)}`; + +describe('store action wire contracts', () => { + 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/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/resources.test.js b/tests/resources.test.js new file mode 100644 index 0000000..c895a52 --- /dev/null +++ b/tests/resources.test.js @@ -0,0 +1,292 @@ +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 CartStore from '../src/cart-store.js'; +import CustomerStore from '../src/customer-store.js'; +import { Cart, Category, Customer, 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('supports the legacy cart store request surface and explicit unsupported operations', 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 store = new CartStore('cart', adapter); + + expect(await store.add('cart_1', 'product_1', 2, { note: 'hot' }, { timeout: 1 })).toBeInstanceOf(Cart); + expect(await store.update('cart_1', 'item_1', 3)).toBeInstanceOf(Cart); + expect(await store.remove('cart_1', 'item_1')).toBeInstanceOf(Cart); + expect(await store.empty('cart_1')).toBeInstanceOf(Cart); + expect(await store.retrieve('cart_1')).toBeInstanceOf(Cart); + expect(() => store.create()).toThrow('There is no create() method for carts!'); + expect(() => store.findAll()).toThrow('There is no findAll() method for carts!'); + expect(() => store.query()).toThrow('There is no query() method for carts!'); + expect(() => store.queryRecord()).toThrow('There is no queryRecord() method for carts!'); + }); + + it('supports the legacy customer store authentication surface', async () => { + const adapter = new FakeAdapter({ + 'customers/login-with-sms': { challenge: true }, + 'customers/login': { id: 'customer_1' }, + 'customers/verify-sms': { id: 'customer_1' }, + 'customers/customer_1': { id: 'customer_1' }, + }); + const store = new CustomerStore('customer', adapter); + + expect(await store.login('+12025550100')).toEqual({ challenge: true }); + expect(await store.login('person@example.com', 'secret', { device: 'web' })).toBeInstanceOf(Customer); + expect(() => store.login('person@example.com')).toThrow('Login requires password!'); + expect(await store.verifySmsCode('+12025550100', '1234', { device: 'web' })).toBeInstanceOf(Customer); + expect(await store.retrieve('customer_1')).toBeInstanceOf(Customer); + }); + + 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 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(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..47b39fd 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,10 @@ 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); }); it('hydrates searched products and their embedded merchants with the active adapter', async () => { @@ -49,12 +51,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 +69,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 +105,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 +136,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 +148,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..6d4f54f --- /dev/null +++ b/tests/types/consumer.ts @@ -0,0 +1,13 @@ +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); + +new Cart(); +new Customer(); +new FoodTruck(); +new Order(); diff --git a/tests/utils.test.js b/tests/utils.test.js new file mode 100644 index 0000000..4d74526 --- /dev/null +++ b/tests/utils.test.js @@ -0,0 +1,44 @@ +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(null)).toBe(false); + expect(isEmail('hello@fleetbase.io')).toBe(true); + expect(isEmail('invalid')).toBe(false); + expect(isPhone('+1 (202) 555-0100')).toBe(true); + expect(isPhone('+1 (202) 555-0100')).toBe(true); + 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..9af523b --- /dev/null +++ b/tsconfig.build.json @@ -0,0 +1,11 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "noEmit": false, + "declaration": true, + "emitDeclarationOnly": true, + "outDir": "types" + }, + "include": ["src/**/*.js"], + "exclude": ["tests", "types", "dist", "coverage"] +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..9c1661b --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,18 @@ +{ + "compilerOptions": { + "allowJs": true, + "checkJs": false, + "noEmit": true, + "strict": false, + "module": "NodeNext", + "moduleResolution": "NodeNext", + "target": "ES2022", + "lib": ["ES2022", "DOM"], + "skipLibCheck": true, + "baseUrl": ".", + "paths": { + "@fleetbase/sdk": ["types-internal/fleetbase-sdk.d.ts"] + } + }, + "include": ["src/**/*.js", "types/**/*.d.ts", "types-internal/**/*.d.ts", "tests/types/**/*.ts", "tests/types/**/*.cts"] +} diff --git a/types-internal/fleetbase-sdk.d.ts b/types-internal/fleetbase-sdk.d.ts new file mode 100644 index 0000000..1ce0675 --- /dev/null +++ b/types-internal/fleetbase-sdk.d.ts @@ -0,0 +1,57 @@ +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; + delete(endpoint: string, params?: unknown, options?: unknown): Promise; + setHeaders(headers: Record): this; + } + + export class Collection extends Array { + 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): any; + findRecord(id: string, 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 & Record; + resource: string; + options: Record; + get id(): string; + getAttribute(attribute: string, defaultValue?: any): any; + getAttributes(attributes: string[]): Record; + hasAttribute(attribute: string): boolean; + syncAttributes(attributes: Record): this; + serialize(): Record; + destroy(options?: Record): Promise; + } + + export class Order extends Resource {} + export class Place extends Resource {} + export class ServiceQuote extends Resource {} + + export function classify(value: string): string; + export function detectAdapter(options?: Record): Adapter; + export function extendStoreActions(store: T, actions?: StoreActions | unknown[]): T | undefined; + export function isResource(value: unknown): value is Resource; + export function lookup(type: string, className: string, ...args: any[]): any; + export function register(type: string, className: string, value: unknown): void; +} diff --git a/types/cart-store.d.ts b/types/cart-store.d.ts index e82261d..c4d133b 100644 --- a/types/cart-store.d.ts +++ b/types/cart-store.d.ts @@ -1,13 +1,13 @@ 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; + request(method: any, uri: any, data: any, options: any): Promise; + add(id: any, productId: any, quantity?: number, data?: {}, options?: {}): Promise; + update(id: any, cartItemId: any, quantity: any, data?: {}, options?: {}): Promise; + remove(id: any, cartItemId: any, options?: {}): Promise; + empty(id: any, options?: {}): Promise; retrieve(id?: string): Promise; create(): void; findAll(): void; query(): void; queryRecord(): void; } -import Store from './store'; +import Store from './store.js'; diff --git a/types/customer-store.d.ts b/types/customer-store.d.ts index 3b78685..e299fe8 100644 --- a/types/customer-store.d.ts +++ b/types/customer-store.d.ts @@ -1,7 +1,7 @@ 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; + request(method: any, uri: any, data: any, options: any): Promise; + login(identity: any, password?: any, attributes?: {}): Promise; + verifySmsCode(phone: any, code: any, attributes?: {}): Promise; retrieve(id: any): Promise; } -import Store from './store'; +import Store from './store.js'; diff --git a/types/fleetbase-sdk.d.ts b/types/fleetbase-sdk.d.ts new file mode 100644 index 0000000..1ce0675 --- /dev/null +++ b/types/fleetbase-sdk.d.ts @@ -0,0 +1,57 @@ +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; + delete(endpoint: string, params?: unknown, options?: unknown): Promise; + setHeaders(headers: Record): this; + } + + export class Collection extends Array { + 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): any; + findRecord(id: string, 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 & Record; + resource: string; + options: Record; + get id(): string; + getAttribute(attribute: string, defaultValue?: any): any; + getAttributes(attributes: string[]): Record; + hasAttribute(attribute: string): boolean; + syncAttributes(attributes: Record): this; + serialize(): Record; + destroy(options?: Record): Promise; + } + + export class Order extends Resource {} + export class Place extends Resource {} + export class ServiceQuote extends Resource {} + + export function classify(value: string): string; + export function detectAdapter(options?: Record): Adapter; + export function extendStoreActions(store: T, actions?: StoreActions | unknown[]): T | undefined; + export function isResource(value: unknown): value is Resource; + export function lookup(type: string, className: string, ...args: any[]): any; + 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..19a8051 100644 --- a/types/resource.d.ts +++ b/types/resource.d.ts @@ -1,2 +1,10 @@ -export default class StorefrontResource extends Resource {} +export default class StorefrontResource extends Resource { + /** + * Set a new adapter to the resource instance, this will update the Store instance + * + * @param {import('@fleetbase/sdk').Adapter} adapter + * @return {this} + */ + setAdapter(adapter: import('@fleetbase/sdk').Adapter): this; +} import { Resource } from '@fleetbase/sdk'; 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..0d41c26 100644 --- a/types/resources/cart.d.ts +++ b/types/resources/cart.d.ts @@ -1,16 +1,17 @@ +export const cartActions: StoreActions; export default class Cart extends Resource { - constructor(attributes: {}, adapter: any, options?: {}); + constructor(attributes?: {}, adapter?: any, options?: {}); add(productId: any, quantity?: number, data?: {}, options?: {}): any; - update(cartItemId: any, quantity: any, data?: {}, options?: {}): Promise; + update(cartItemId: any, quantity: any, data?: {}, options?: {}): any; remove(cartItemId: any, options?: {}): any; empty(options?: {}): any; - delete(): [type]; + delete(): Promise; refresh(): any; - subtotal(): number; - contents(): any; + subtotal(): any; + contents(): any[]; hasProduct(productId: any): boolean; + get isEmpty(): boolean; get isNotEmpty(): boolean; } -import Resource from '../resource'; -export const cartActions: StoreActions; import { StoreActions } from '@fleetbase/sdk'; +import Resource from '../resource.js'; diff --git a/types/resources/category.d.ts b/types/resources/category.d.ts index ea7e532..c85df44 100644 --- a/types/resources/category.d.ts +++ b/types/resources/category.d.ts @@ -1,5 +1,6 @@ export default class Category extends Resource { - constructor(attributes: {}, adapter: any, options?: {}); - getProducts(): any; + constructor(attributes?: {}, adapter?: any, options?: {}); + getProducts(): Promise>; } -import Resource from '../resource'; +import Resource from '../resource.js'; +import { Collection } from '@fleetbase/sdk'; diff --git a/types/resources/checkout.d.ts b/types/resources/checkout.d.ts index 277236a..3ad69dd 100644 --- a/types/resources/checkout.d.ts +++ b/types/resources/checkout.d.ts @@ -1,8 +1,13 @@ +export const checkoutActions: StoreActions; export default class Checkout extends Resource { - constructor(attributes: {}, adapter: any, options?: {}); + constructor(attributes?: {}, adapter?: any, options?: {}); initialize(...args: any[]): any; captureOrder(...args: any[]): any; + createStripeSetupIntent(...args: any[]): any; + updateStripePaymentIntent(...args: any[]): any; + getStatus(...args: any[]): any; + captureQPay(...args: any[]): any; + captureQPayCallback(...args: any[]): any; } -import Resource from '../resource'; -export const checkoutActions: StoreActions; import { StoreActions } from '@fleetbase/sdk'; +import Resource from '../resource.js'; diff --git a/types/resources/customer.d.ts b/types/resources/customer.d.ts index 10b4a56..3aaf9e7 100644 --- a/types/resources/customer.d.ts +++ b/types/resources/customer.d.ts @@ -1,12 +1,26 @@ +export const customerActions: StoreActions; export default class Customer extends Resource { - constructor(attributes: {}, adapter: any, options?: {}); + constructor(attributes?: {}, adapter?: any, 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: import('@fleetbase/sdk').Adapter): this; get token(): any; - syncDevice(token: any): Promise; - performAuthorizedRequest(endpoint: any, params?: {}, method?: string): Promise; - getSavedPlaces(): Promise; - getOrderHistory(params?: {}): Promise; + syncDevice(token: any, platform: any): Promise; + performAuthorizedRequest(endpoint: any, params?: {}, method?: string, options?: {}): any; + getSavedPlaces(): Promise>; + getOrderHistory(params?: {}): Promise>; + getStripeEphemeralKey(params?: {}): any; + getStripeSetupIntent(params?: {}): any; + startAccountClosure(params?: {}, options?: {}): any; + confirmAccountClosure(code: any, params?: {}, options?: {}): any; + requestPhoneVerification(phone: any, params?: {}, options?: {}): any; + verifyPhoneNumber(code: any, phone: any, params?: {}, options?: {}): any; + updateContactAlias(attributes?: {}, options?: {}): any; } -import Resource from '../resource'; -import { Collection } from '@fleetbase/sdk'; -export const customerActions: StoreActions; import { StoreActions } from '@fleetbase/sdk'; +import Resource from '../resource.js'; +import { Collection } from '@fleetbase/sdk'; diff --git a/types/resources/delivery-service-quote.d.ts b/types/resources/delivery-service-quote.d.ts index e441639..9e7931c 100644 --- a/types/resources/delivery-service-quote.d.ts +++ b/types/resources/delivery-service-quote.d.ts @@ -1,15 +1,16 @@ 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?: {}); + static getFromCart(adapter: any, origin: any, destination: any, cart: any, config?: string, all?: boolean): Promise>; + constructor(attributes?: {}, adapter?: any, options?: {}); /** * 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; + setAdapter(adapter: Adapter): this; get formattedAmount(): string; - fetchServiceQuotesFromCart(origin: any, destination: any, cart: any, config?: string, all?: boolean): Promise; + fromCart(...args: any[]): Promise>; + fetchServiceQuotesFromCart(origin: any, destination: any, cart: any, config?: string, all?: boolean): Promise>; } import { ServiceQuote } from '@fleetbase/sdk'; import { Adapter } 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..d70f333 --- /dev/null +++ b/types/resources/food-truck.d.ts @@ -0,0 +1,4 @@ +export default class FoodTruck extends Resource { + constructor(attributes?: {}, adapter?: any, options?: {}); +} +import Resource from '../resource.js'; diff --git a/types/resources/network.d.ts b/types/resources/network.d.ts index a4be78f..77678a1 100644 --- a/types/resources/network.d.ts +++ b/types/resources/network.d.ts @@ -1,15 +1,15 @@ 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; - lookupStore(id: string): Promise; - getReviews(storeId: string, params?: {}): Promise; - getPaymentGateways(params?: {}): Promise; + constructor(attributes?: {}, adapter?: any, options?: {}); + getTags(params?: {}): Promise; + getResourceCollection(endpoint: any, ResourceClass: any, params?: {}): Promise>; + getStores(params?: {}): Promise>; + getStoreLocations(params?: {}): Promise>; + getCategories(params?: {}): Promise>; + search(query: any, params?: {}): Promise>; + lookupStore(id: any): Promise; + getReviews(storeId: any, params?: {}): Promise>; + getPaymentGateways(params?: {}): Promise>; } -import Resource from '../resource'; +import Resource from '../resource.js'; import { Collection } from '@fleetbase/sdk'; -import Store from './store'; +import Store from './store.js'; diff --git a/types/resources/order-actions.d.ts b/types/resources/order-actions.d.ts new file mode 100644 index 0000000..f63f813 --- /dev/null +++ b/types/resources/order-actions.d.ts @@ -0,0 +1,2 @@ +export const orderActions: StoreActions; +import { StoreActions } from '@fleetbase/sdk'; diff --git a/types/resources/order.d.ts b/types/resources/order.d.ts new file mode 100644 index 0000000..5de9e93 --- /dev/null +++ b/types/resources/order.d.ts @@ -0,0 +1,4 @@ +export default class Order extends FleetbaseOrder { + constructor(attributes?: {}, adapter?: any, options?: {}); +} +import { Order as FleetbaseOrder } from '@fleetbase/sdk'; diff --git a/types/resources/payment-gateway.d.ts b/types/resources/payment-gateway.d.ts index f3244b3..46930be 100644 --- a/types/resources/payment-gateway.d.ts +++ b/types/resources/payment-gateway.d.ts @@ -1,9 +1,10 @@ export default class PaymentGateway extends Resource { - constructor(attributes: {}, adapter: any, options?: {}); + constructor(attributes?: {}, adapter?: any, options?: {}); get type(): any; get code(): any; get isCashGateway(): boolean; get isStripeGateway(): boolean; + get isQPayGateway(): boolean; setCheckoutToken(token: any): void; token: any; getCheckoutToken(): any; @@ -13,4 +14,4 @@ export default class PaymentGateway extends Resource { destroy(): void; reload(): void; } -import Resource from '../resource'; +import Resource from '../resource.js'; diff --git a/types/resources/product.d.ts b/types/resources/product.d.ts index 353510a..897eeda 100644 --- a/types/resources/product.d.ts +++ b/types/resources/product.d.ts @@ -1,12 +1,16 @@ export default class Product extends Resource { - constructor(attributes: {}, adapter: any, options?: {}); + constructor(attributes?: {}, adapter?: any, options?: {}); variants(): any; addons(): any; + images(): any; + videos(): any; + hours(): any; get isOnSale(): any; get isNotOnSale(): boolean; get formattedAmount(): string; - get merchant(): Store | null; - getReviews(): any; + get merchant(): Store; + getReviews(): Promise>; } -import Resource from '../resource'; -import Store from './store'; +import Resource from '../resource.js'; +import Store from './store.js'; +import { Collection } from '@fleetbase/sdk'; diff --git a/types/resources/review.d.ts b/types/resources/review.d.ts index 6b5c876..e6a7117 100644 --- a/types/resources/review.d.ts +++ b/types/resources/review.d.ts @@ -1,9 +1,9 @@ +export const reviewActions: StoreActions; export default class Review extends Resource { - constructor(attributes: {}, adapter: any, options?: {}); - getMedia(): void; - getPhotos(): void; - getVideos(): void; + constructor(attributes?: {}, adapter?: any, options?: {}); + getMedia(): any; + getPhotos(): any; + getVideos(): any; } -import Resource from '../resource'; -export const reviewActions: StoreActions; import { StoreActions } from '@fleetbase/sdk'; +import Resource from '../resource.js'; diff --git a/types/resources/store-hour.d.ts b/types/resources/store-hour.d.ts index 74a39e1..6372aa0 100644 --- a/types/resources/store-hour.d.ts +++ b/types/resources/store-hour.d.ts @@ -1,5 +1,5 @@ export default class StoreHour extends Resource { - constructor(attributes: {}, adapter: any, options?: {}); + constructor(attributes?: {}, adapter?: any, options?: {}); get day(): any; get isClosed(): boolean; get is24Hours(): boolean; @@ -12,4 +12,4 @@ export default class StoreHour extends Resource { destroy(): void; reload(): void; } -import Resource from '../resource'; +import Resource from '../resource.js'; diff --git a/types/resources/store-location.d.ts b/types/resources/store-location.d.ts index 7ca4a9b..ef55c2c 100644 --- a/types/resources/store-location.d.ts +++ b/types/resources/store-location.d.ts @@ -1,11 +1,14 @@ export default class StoreLocation extends Resource { - constructor(attributes: {}, adapter: any, options?: {}); + constructor(attributes?: {}, adapter?: any, options?: {}); get latitude(): any; get longitude(): any; - get hours(): Collection; + get hours(): Collection; + /** Raw embedded merchant payload, normalized across API response versions. */ get storeData(): any; + /** Public store identifier for this location. */ get storeId(): any; - get merchant(): Store | null; + /** Typed embedded merchant when requested with `with_store`. */ + get merchant(): any; get isAlwaysOpen(): boolean; get today(): any; get schedule(): {}; @@ -13,6 +16,5 @@ export default class StoreLocation extends Resource { update(): void; destroy(): void; } -import Resource from '../resource'; +import Resource from '../resource.js'; 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..6c776b8 100644 --- a/types/resources/store.d.ts +++ b/types/resources/store.d.ts @@ -1,9 +1,13 @@ 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?: {}, adapter?: any, options?: {}); + getReviews(params?: {}): Promise>; + getTags(params?: {}): Promise; + getLocations(params?: {}): Promise>; + getLocation(id: any): Promise; + getPaymentGateways(params?: {}): Promise>; + getPaymentGateway(id: any): Promise; } -import Resource from '../resource'; +import Resource from '../resource.js'; +import { Collection } from '@fleetbase/sdk'; +import StoreLocation from './store-location.js'; +import PaymentGateway from './payment-gateway.js'; diff --git a/types/store.d.ts b/types/store.d.ts index 25b2a5e..4e708d5 100644 --- a/types/store.d.ts +++ b/types/store.d.ts @@ -1,5 +1,6 @@ export default class StorefrontStore extends Store { constructor(...args: any[]); - serialize(json: any): import('./resolver').Resolver; + extendActions(actions?: any[]): this; + serialize(json: any): any; } 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..461737c 100644 --- a/types/storefront.d.ts +++ b/types/storefront.d.ts @@ -1,3 +1,4 @@ +import './fleetbase-sdk.js'; /** * // instance * const storefront = new Storefront(); @@ -23,36 +24,43 @@ export default class Storefront { debug: boolean; }; adapter: any; + initializeStores(): this; products: StorefrontStore; categories: StorefrontStore; - reviews: any; - customers: any; - cart: any; - checkout: any; - initializeStores(): Storefront; + foodTrucks: StorefrontStore; + reviews: StorefrontStore; + customers: StorefrontStore; + cart: StorefrontStore; + checkout: StorefrontStore; + orders: StorefrontStore; /** loads information about this storefront */ - about(options?: { resource?: boolean }): any; - getOwner(): Promise; + about(options?: {}): any; + /** loads the storefront owner as a typed Store or Network resource */ + getOwner(): any; /** lookup a specific store or network provided the ID */ - lookup(id: string, options?: { resource?: boolean }): any; - lookupResource(id: string): Promise; + lookup(id: any, options?: {}): any; + /** lookup a store or network as a typed resource */ + lookupResource(id: any): any; /** search products in store or network */ search(query: any, options?: {}): any; hydrateOwner(attributes?: {}): Store | Network; - setAdapter(adapter: any): Storefront; + setAdapter(adapter: any): this; getAdapter(): any; } -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 }; +import StorefrontStore from './store.js'; +import { Store } from './resources.js'; +import { Network } from './resources.js'; +import { Product } from './resources.js'; +import { Category } from './resources.js'; +import { Customer } from './resources.js'; +import { Cart } from './resources.js'; +import { StoreLocation } from './resources.js'; +import { StoreHour } from './resources.js'; +import { DeliveryServiceQuote } from './resources.js'; +import { Checkout } from './resources.js'; +import { PaymentGateway } from './resources.js'; +import { Review } from './resources.js'; +import { FoodTruck } from './resources.js'; +import { Order } from './resources.js'; +import { lookup } from '@fleetbase/sdk'; +export { Product, Category, Customer, Cart, Store, StoreLocation, StoreHour, DeliveryServiceQuote, Checkout, PaymentGateway, Review, Network, FoodTruck, Order, lookup }; diff --git a/types/utils/array.d.ts b/types/utils/array.d.ts new file mode 100644 index 0000000..94d3789 --- /dev/null +++ b/types/utils/array.d.ts @@ -0,0 +1 @@ +export const isArray: (arg: any) => arg is any[]; 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..b2e8b3a 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 function formatCurrency(amount?: number, currency?: string, currencyDisplay?: string): string; +export default formatCurrency; diff --git a/types/utils/get-countries.d.ts b/types/utils/get-countries.d.ts index 7bb3ebb..663f3b4 100644 --- a/types/utils/get-countries.d.ts +++ b/types/utils/get-countries.d.ts @@ -1,2 +1,30 @@ +export function getCountries(_country?: any): + | { + 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; + }[]; 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..8dcae52 100644 --- a/types/utils/is-email.d.ts +++ b/types/utils/is-email.d.ts @@ -1,2 +1,2 @@ +export 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..7475ca6 100644 --- a/types/utils/is-empty.d.ts +++ b/types/utils/is-empty.d.ts @@ -1,2 +1,2 @@ +export function isEmpty(obj: any): 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..c8542d1 100644 --- a/types/utils/is-key-valid.d.ts +++ b/types/utils/is-key-valid.d.ts @@ -1,2 +1,2 @@ +export function isKeyValid(key: any): 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..734f489 100644 --- a/types/utils/is-phone.d.ts +++ b/types/utils/is-phone.d.ts @@ -1,2 +1,2 @@ +export 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..eafa43e --- /dev/null +++ b/vitest.config.js @@ -0,0 +1,20 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + environment: 'node', + globals: true, + coverage: { + provider: 'v8', + include: ['src/**/*.js'], + exclude: ['src/index.js'], + thresholds: { + statements: 100, + branches: 100, + functions: 100, + lines: 100, + }, + reporter: ['text', 'json-summary', 'lcov'], + }, + }, +}); From a3633b2b37927d29bb536dfb3044df83a1e0efe3 Mon Sep 17 00:00:00 2001 From: "Ronald A. Richardson" Date: Mon, 31 Aug 2026 19:40:33 +0800 Subject: [PATCH 3/8] ci: modernize package validation and releases --- .changeset/config.json | 11 ++ .changeset/modernize-storefront-sdk.md | 5 + .github/dependabot.yml | 19 +++ .github/workflows/ci.yml | 225 +++++++++++++++---------- .github/workflows/codeql.yml | 30 ++++ .github/workflows/publish.yml | 40 +++++ .github/workflows/release-pr.yml | 36 ++++ CHANGELOG.md | 7 + CONTRIBUTING.md | 44 +++++ README.md | 215 ++++++++++++++++------- SECURITY.md | 20 +++ dist/@storefront.min.js.map | 2 +- dist/cjs/storefront.cjs | 30 +++- dist/cjs/storefront.cjs.map | 2 +- dist/esm/storefront.js | 30 +++- dist/esm/storefront.js.map | 2 +- docs/compatibility.md | 27 +++ docs/migration-v1.2.md | 34 ++++ docs/releasing.md | 31 ++++ package.json | 14 +- pnpm-lock.yaml | 194 +++++++++++++++++---- scripts/verify-browser-bundle.mjs | 19 +++ scripts/verify-packed-package.mjs | 123 ++++++++++++++ src/storefront.js | 30 +++- types-internal/fleetbase-sdk.d.ts | 2 +- types/fleetbase-sdk.d.ts | 2 +- types/resources/cart.d.ts | 2 +- types/storefront.d.ts | 46 +++-- 28 files changed, 1033 insertions(+), 209 deletions(-) create mode 100644 .changeset/config.json create mode 100644 .changeset/modernize-storefront-sdk.md create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/codeql.yml create mode 100644 .github/workflows/publish.yml create mode 100644 .github/workflows/release-pr.yml create mode 100644 CHANGELOG.md create mode 100644 CONTRIBUTING.md create mode 100644 SECURITY.md create mode 100644 docs/compatibility.md create mode 100644 docs/migration-v1.2.md create mode 100644 docs/releasing.md create mode 100644 scripts/verify-browser-bundle.mjs create mode 100644 scripts/verify-packed-package.mjs diff --git a/.changeset/config.json b/.changeset/config.json new file mode 100644 index 0000000..19f9284 --- /dev/null +++ b/.changeset/config.json @@ -0,0 +1,11 @@ +{ + "$schema": "https://unpkg.com/@changesets/config@3.1.2/schema.json", + "changelog": "@changesets/cli/changelog", + "commit": false, + "fixed": [], + "linked": [], + "access": "public", + "baseBranch": "main", + "updateInternalDependencies": "patch", + "ignore": [] +} diff --git a/.changeset/modernize-storefront-sdk.md b/.changeset/modernize-storefront-sdk.md new file mode 100644 index 0000000..b55a6e9 --- /dev/null +++ b/.changeset/modernize-storefront-sdk.md @@ -0,0 +1,5 @@ +--- +'@fleetbase/storefront': minor +--- + +Modernize the Storefront SDK while preserving the existing client and resource APIs. Add current Storefront API helpers, deterministic 100% behavioral coverage, generated TypeScript declarations, genuine CommonJS support, cleaner package contents, and secure release automation. 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..0818ff5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,109 +1,164 @@ -name: storefront-js +name: CI on: push: - branches: [main, dev-**] - tags: - - 'v*' + branches: [main, 'dev-**', 'feature/**'] pull_request: - branches: [main, dev-**] + branches: [main] + +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@v6 + - uses: pnpm/action-setup@v4 + with: + version: ${{ env.PNPM_VERSION }} + - uses: actions/setup-node@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@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@v6 + - uses: pnpm/action-setup@v4 with: - node-version: ${{ matrix.node-version }} - - uses: actions/cache@v3 - id: npm-cache + version: ${{ env.PNPM_VERSION }} + - uses: actions/setup-node@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 - 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 + node-version: ${{ matrix.node }} + cache: pnpm + - run: pnpm install --frozen-lockfile + - run: pnpm test + - run: pnpm run build + - run: pnpm run test:browser + + package: + name: Packed artifact 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@v6 + - uses: pnpm/action-setup@v4 with: - node-version: 18.x - - - name: Setup pnpm - uses: pnpm/action-setup@v4 + version: ${{ env.PNPM_VERSION }} + - uses: actions/setup-node@v6 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 - - github_publish: - needs: build + 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 + - uses: actions/upload-artifact@v4 + with: + 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@v6 + - uses: actions/setup-node@v6 with: - node-version: 18.x - - - name: Setup pnpm + node-version: 24 + - if: matrix.manager == 'pnpm' uses: pnpm/action-setup@v4 with: - version: 9.5.0 - - - name: Install Dependencies - run: pnpm install - - - name: Build - run: pnpm run bundle - - - name: Configure npm for GitHub registry + version: ${{ env.PNPM_VERSION }} + - if: matrix.manager == 'yarn' + name: Install Yarn run: | - echo "@fleetbase:registry=https://npm.pkg.github.com/" >> ~/.npmrc - echo "//npm.pkg.github.com/:_authToken=${{ secrets.GITHUB_TOKEN }}" >> ~/.npmrc + 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@v2 + with: + bun-version: 1.2.22 + - run: npm install --ignore-scripts + - uses: actions/download-artifact@v5 + with: + name: npm-package + path: artifacts + - run: node scripts/verify-packed-package.mjs ${{ matrix.manager }} artifacts/*.tgz - - name: Publish to GitHub registry - run: npm publish + security: + name: Production dependency audit + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - uses: actions/checkout@v6 + - uses: pnpm/action-setup@v4 + with: + version: ${{ env.PNPM_VERSION }} + - uses: actions/setup-node@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@v6 + - uses: actions/dependency-review-action@v4 + with: + fail-on-severity: moderate diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 0000000..474c9dc --- /dev/null +++ b/.github/workflows/codeql.yml @@ -0,0 +1,30 @@ +name: CodeQL + +on: + push: + branches: [main] + pull_request: + branches: [main] + schedule: + - cron: '17 3 * * 1' + +permissions: + actions: read + contents: read + security-events: write + +concurrency: + group: codeql-${{ github.ref }} + cancel-in-progress: true + +jobs: + analyze: + name: JavaScript analysis + runs-on: ubuntu-latest + timeout-minutes: 20 + steps: + - uses: actions/checkout@v6 + - uses: github/codeql-action/init@v4 + with: + languages: javascript-typescript + - uses: github/codeql-action/analyze@v4 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..03def6c --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,40 @@ +name: Publish + +on: + release: + types: [published] + +permissions: + contents: read + 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@v6 + with: + ref: ${{ github.event.release.tag_name }} + - uses: pnpm/action-setup@v4 + with: + version: 9.15.4 + - uses: actions/setup-node@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.event.release.tag_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 + - run: npm publish --access public diff --git a/.github/workflows/release-pr.yml b/.github/workflows/release-pr.yml new file mode 100644 index 0000000..4b98e3d --- /dev/null +++ b/.github/workflows/release-pr.yml @@ -0,0 +1,36 @@ +name: Release PR + +on: + push: + branches: [main] + +permissions: + contents: write + pull-requests: write + +concurrency: + group: release-pr + cancel-in-progress: false + +jobs: + version: + name: Maintain release PR + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - uses: actions/checkout@v6 + - uses: pnpm/action-setup@v4 + with: + version: 9.15.4 + - uses: actions/setup-node@v6 + with: + node-version: 24 + cache: pnpm + - run: pnpm install --frozen-lockfile + - uses: changesets/action@v1 + with: + version: pnpm run version-packages + title: 'chore: release packages' + commit: 'chore: release packages' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..9793b05 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,7 @@ +# Changelog + +This file is maintained by Changesets. Each release PR records the user-visible changes included in the next package version. + +## 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..793c22a --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,44 @@ +# 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 +``` + +## 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 Changeset and migration documentation. + +## Changesets + +User-visible changes require a Changeset: + +```sh +pnpm changeset +``` + +Use an empty Changeset only for internal changes that do not affect consumers. Release PRs are generated automatically from Changesets. + +## 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/README.md b/README.md index 7e8dcf6..cb84dd4 100644 --- a/README.md +++ b/README.md @@ -1,104 +1,193 @@

- + 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 + CodeQL + 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 packed tarball through npm, pnpm, Yarn, and Bun. -## Create a custom adapter +See [CONTRIBUTING.md](CONTRIBUTING.md) for the development workflow, [SECURITY.md](SECURITY.md) for vulnerability reporting, and [docs/releasing.md](docs/releasing.md) for the release process. 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/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.map b/dist/@storefront.min.js.map index 59282bd..15d802e 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.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.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/order.js","../src/resources/checkout.js","../src/resources/food-truck.js","../src/resources/order-actions.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 const objectType = typeof obj;\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\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 {import('@fleetbase/sdk').Adapter} adapter\n * @return {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 = undefined, options = {}) {\n super(attributes, adapter, 'review', options);\n }\n\n getMedia() {\n return this.getPhotos();\n }\n\n getPhotos() {\n return this.getAttribute('photos') ?? [];\n }\n\n getVideos() {\n return this.getMedia().filter((media) => media?.type?.startsWith('video/'));\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 * **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","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 = undefined, 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\n if (!isValid(start) || !isValid(end)) {\n return false;\n }\n\n const diff = Math.abs(start.getTime() - end.getTime());\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 if (typeof start !== 'string') {\n return null;\n }\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 if (typeof end !== 'string') {\n return null;\n }\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.getAttribute('start')} - ${this.getAttribute('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 = undefined, 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.length > 0 && 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 if (schedule[hour.day]) {\n schedule[hour.day].pushObject(hour);\n }\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 = undefined, 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 get isQPayGateway() {\n return this.type === 'qpay' || this.code === 'qpay';\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 = undefined, 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 getTags(params = {}) {\n return this.adapter.get('tags', params);\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, this.adapter);\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 = undefined, 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 images() {\n return this.getAttribute('images') ?? [];\n }\n\n videos() {\n return this.getAttribute('videos') ?? [];\n }\n\n hours() {\n return this.getAttribute('hours') ?? [];\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 = undefined, 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 = undefined, 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 {import('@fleetbase/sdk').Adapter} adapter\n * @return {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 return this.performAuthorizedRequest('customers/register-device', { token, platform }, 'POST');\n }\n\n performAuthorizedRequest(endpoint, params = {}, method = 'GET', options = {}) {\n const requestOptions = {\n ...options,\n headers: {\n ...options.headers,\n 'Customer-Token': this.token,\n },\n };\n\n return this.adapter[method.toLowerCase()](endpoint, params, requestOptions);\n }\n\n async getSavedPlaces() {\n const places = await this.performAuthorizedRequest('customers/places');\n return new Collection(places.map((attributes) => new Place(attributes, this.adapter)));\n }\n\n async getOrderHistory(params = {}) {\n const orders = await this.performAuthorizedRequest('customers/orders', params);\n return new Collection(orders.map((attributes) => new Order(attributes, this.adapter)));\n }\n\n getStripeEphemeralKey(params = {}) {\n return this.performAuthorizedRequest('customers/stripe-ephemeral-key', params, 'POST');\n }\n\n getStripeSetupIntent(params = {}) {\n return this.performAuthorizedRequest('customers/stripe-setup-intent', params, 'POST');\n }\n\n startAccountClosure(params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/account-closure', params, 'POST', options);\n }\n\n confirmAccountClosure(code, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/confirm-account-closure', { code, ...params }, 'POST', options);\n }\n\n requestPhoneVerification(phone, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/request-phone-verification', { phone, ...params }, 'POST', options);\n }\n\n verifyPhoneNumber(code, phone, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/verify-phone-number', { code, phone, ...params }, 'POST', options);\n }\n\n updateContactAlias(attributes = {}, options = {}) {\n return this.performAuthorizedRequest(`contacts/${this.id}`, attributes, 'PUT', options).then((response) => {\n this.syncAttributes(response);\n return this;\n });\n }\n}\n\nregister('resource', 'Customer', Customer);\n","export function isPhone(phone = '') {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/.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 = undefined, 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 return this.contents().reduce((subtotal, cartItem) => subtotal + Number(cartItem?.subtotal || 0), 0);\n }\n\n contents() {\n const items = this.getAttribute('items', []);\n return isArray(items) ? items : [];\n }\n\n hasProduct(productId) {\n return this.contents().findIndex((cartItem) => cartItem.product_id === productId) !== -1;\n }\n\n get isEmpty() {\n return this.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 = undefined, 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 = undefined, 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 || (attributes && typeof attributes.get === 'function' && typeof attributes.post === 'function')) {\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 {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 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 }\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 { Order as FleetbaseOrder, register } from '@fleetbase/sdk';\n\nexport default class Order extends FleetbaseOrder {\n constructor(attributes = {}, adapter = undefined, options = {}) {\n super(attributes, adapter, options);\n }\n}\n\nregister('resource', 'Order', Order);\n","import Resource from '../resource.js';\nimport Order from './order.js';\nimport { 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, this.adapter));\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 getStatus: function (checkout, token, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.get(`${this.namespace}/status`, { checkout, token }, options);\n },\n\n captureQPay: function (checkout, params = {}, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.post(`${this.namespace}/capture-qpay`, { checkout, ...params }, options);\n },\n\n captureQPayCallback: function (checkout, params = {}, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.get(`${this.namespace}/capture-qpay`, { checkout, ...params }, options);\n },\n});\n\nexport default class Checkout extends Resource {\n constructor(attributes = {}, adapter = undefined, 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 createStripeSetupIntent() {\n return this.store.createStripeSetupIntent(...arguments);\n }\n\n updateStripePaymentIntent() {\n return this.store.updateStripePaymentIntent(...arguments);\n }\n\n getStatus() {\n return this.store.getStatus(...arguments);\n }\n\n captureQPay() {\n return this.store.captureQPay(...arguments);\n }\n\n captureQPayCallback() {\n return this.store.captureQPayCallback(...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 = undefined, options = {}) {\n super(attributes, adapter, 'food-truck', options);\n }\n}\n\nregister('resource', 'FoodTruck', FoodTruck);\n","import { StoreActions, isResource } from '@fleetbase/sdk';\n\nfunction idFor(value) {\n return isResource(value) ? value.id : value;\n}\n\nexport const orderActions = new StoreActions({\n create: undefined,\n update: undefined,\n findAll: undefined,\n query: undefined,\n queryRecord: undefined,\n\n completePickup: function (order, params = {}, options = {}) {\n return this.adapter.put(`${this.namespace}/picked-up`, { order: idFor(order), ...params }, options);\n },\n\n getReceipt: function (order, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/receipt`, { order: idFor(order), ...params }, options);\n },\n});\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, Order } 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 { orderActions } from './resources/order-actions.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 this.orders = new StorefrontStore('order', this.adapter).extendActions(orderActions);\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, Order, 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":["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","undefined","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","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","storeKey","detectAdapter","initializeStores","categories","foodTrucks","customers","about","hydrateOwner","getOwner","lookupResource","is_network","newInstance"],"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.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.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.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/order.js","../src/resources/checkout.js","../src/resources/food-truck.js","../src/resources/order-actions.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 const objectType = typeof obj;\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\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 {import('@fleetbase/sdk').Adapter} adapter\n * @return {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 = undefined, options = {}) {\n super(attributes, adapter, 'review', options);\n }\n\n getMedia() {\n return this.getPhotos();\n }\n\n getPhotos() {\n return this.getAttribute('photos') ?? [];\n }\n\n getVideos() {\n return this.getMedia().filter((media) => media?.type?.startsWith('video/'));\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 * **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","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 = undefined, 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\n if (!isValid(start) || !isValid(end)) {\n return false;\n }\n\n const diff = Math.abs(start.getTime() - end.getTime());\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 if (typeof start !== 'string') {\n return null;\n }\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 if (typeof end !== 'string') {\n return null;\n }\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.getAttribute('start')} - ${this.getAttribute('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 = undefined, 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.length > 0 && 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 if (schedule[hour.day]) {\n schedule[hour.day].pushObject(hour);\n }\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 = undefined, 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 get isQPayGateway() {\n return this.type === 'qpay' || this.code === 'qpay';\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 = undefined, 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 getTags(params = {}) {\n return this.adapter.get('tags', params);\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, this.adapter);\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 = undefined, 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 images() {\n return this.getAttribute('images') ?? [];\n }\n\n videos() {\n return this.getAttribute('videos') ?? [];\n }\n\n hours() {\n return this.getAttribute('hours') ?? [];\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 = undefined, 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 = undefined, 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 {import('@fleetbase/sdk').Adapter} adapter\n * @return {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 return this.performAuthorizedRequest('customers/register-device', { token, platform }, 'POST');\n }\n\n performAuthorizedRequest(endpoint, params = {}, method = 'GET', options = {}) {\n const requestOptions = {\n ...options,\n headers: {\n ...options.headers,\n 'Customer-Token': this.token,\n },\n };\n\n return this.adapter[method.toLowerCase()](endpoint, params, requestOptions);\n }\n\n async getSavedPlaces() {\n const places = await this.performAuthorizedRequest('customers/places');\n return new Collection(places.map((attributes) => new Place(attributes, this.adapter)));\n }\n\n async getOrderHistory(params = {}) {\n const orders = await this.performAuthorizedRequest('customers/orders', params);\n return new Collection(orders.map((attributes) => new Order(attributes, this.adapter)));\n }\n\n getStripeEphemeralKey(params = {}) {\n return this.performAuthorizedRequest('customers/stripe-ephemeral-key', params, 'POST');\n }\n\n getStripeSetupIntent(params = {}) {\n return this.performAuthorizedRequest('customers/stripe-setup-intent', params, 'POST');\n }\n\n startAccountClosure(params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/account-closure', params, 'POST', options);\n }\n\n confirmAccountClosure(code, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/confirm-account-closure', { code, ...params }, 'POST', options);\n }\n\n requestPhoneVerification(phone, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/request-phone-verification', { phone, ...params }, 'POST', options);\n }\n\n verifyPhoneNumber(code, phone, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/verify-phone-number', { code, phone, ...params }, 'POST', options);\n }\n\n updateContactAlias(attributes = {}, options = {}) {\n return this.performAuthorizedRequest(`contacts/${this.id}`, attributes, 'PUT', options).then((response) => {\n this.syncAttributes(response);\n return this;\n });\n }\n}\n\nregister('resource', 'Customer', Customer);\n","export function isPhone(phone = '') {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/.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 = undefined, 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 return this.contents().reduce((subtotal, cartItem) => subtotal + Number(cartItem?.subtotal || 0), 0);\n }\n\n contents() {\n const items = this.getAttribute('items', []);\n return isArray(items) ? items : [];\n }\n\n hasProduct(productId) {\n return this.contents().findIndex((cartItem) => cartItem.product_id === productId) !== -1;\n }\n\n get isEmpty() {\n return this.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 = undefined, 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 = undefined, 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 || (attributes && typeof attributes.get === 'function' && typeof attributes.post === 'function')) {\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 {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 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 }\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 { Order as FleetbaseOrder, register } from '@fleetbase/sdk';\n\nexport default class Order extends FleetbaseOrder {\n constructor(attributes = {}, adapter = undefined, options = {}) {\n super(attributes, adapter, options);\n }\n}\n\nregister('resource', 'Order', Order);\n","import Resource from '../resource.js';\nimport Order from './order.js';\nimport { 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, this.adapter));\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 getStatus: function (checkout, token, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.get(`${this.namespace}/status`, { checkout, token }, options);\n },\n\n captureQPay: function (checkout, params = {}, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.post(`${this.namespace}/capture-qpay`, { checkout, ...params }, options);\n },\n\n captureQPayCallback: function (checkout, params = {}, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.get(`${this.namespace}/capture-qpay`, { checkout, ...params }, options);\n },\n});\n\nexport default class Checkout extends Resource {\n constructor(attributes = {}, adapter = undefined, 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 createStripeSetupIntent() {\n return this.store.createStripeSetupIntent(...arguments);\n }\n\n updateStripePaymentIntent() {\n return this.store.updateStripePaymentIntent(...arguments);\n }\n\n getStatus() {\n return this.store.getStatus(...arguments);\n }\n\n captureQPay() {\n return this.store.captureQPay(...arguments);\n }\n\n captureQPayCallback() {\n return this.store.captureQPayCallback(...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 = undefined, options = {}) {\n super(attributes, adapter, 'food-truck', options);\n }\n}\n\nregister('resource', 'FoodTruck', FoodTruck);\n","import { StoreActions, isResource } from '@fleetbase/sdk';\n\nfunction idFor(value) {\n return isResource(value) ? value.id : value;\n}\n\nexport const orderActions = new StoreActions({\n create: undefined,\n update: undefined,\n findAll: undefined,\n query: undefined,\n queryRecord: undefined,\n\n completePickup: function (order, params = {}, options = {}) {\n return this.adapter.put(`${this.namespace}/picked-up`, { order: idFor(order), ...params }, options);\n },\n\n getReceipt: function (order, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/receipt`, { order: idFor(order), ...params }, options);\n },\n});\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, Order } 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 { orderActions } from './resources/order-actions.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 this.orders = new StorefrontStore('order', this.adapter).extendActions(orderActions);\n\n return this;\n }\n\n /**\n * Loads information about this storefront.\n *\n * @param {{ resource?: boolean }} options\n * @returns {Promise | Store | Network>}\n */\n about(options = {}) {\n return this.adapter.get('about').then((attributes) => (options.resource ? this.hydrateOwner(attributes) : attributes));\n }\n\n /** @returns {Promise} Loads the storefront owner as a typed resource. */\n getOwner() {\n return this.about({ resource: true });\n }\n\n /**\n * Looks up a specific store or network by public ID.\n *\n * @param {string} id\n * @param {{ resource?: boolean }} options\n * @returns {Promise | Store | Network>}\n */\n lookup(id, options = {}) {\n return this.adapter.get(`lookup/${id}`).then((attributes) => (options.resource ? this.hydrateOwner(attributes) : attributes));\n }\n\n /**\n * @param {string} id\n * @returns {Promise}\n */\n lookupResource(id) {\n return this.lookup(id, { resource: true });\n }\n\n /**\n * Searches products in the current store or network.\n *\n * @param {string} query\n * @param {Record} options\n * @returns {Promise>}\n */\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, Order, 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":["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","undefined","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","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","storeKey","detectAdapter","initializeStores","categories","foodTrucks","customers","about","hydrateOwner","getOwner","lookupResource","is_network","newInstance"],"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/cjs/storefront.cjs b/dist/cjs/storefront.cjs index da2a286..bb5d362 100644 --- a/dist/cjs/storefront.cjs +++ b/dist/cjs/storefront.cjs @@ -6508,27 +6508,47 @@ class Storefront { return this; } - /** loads information about this storefront */ + /** + * 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)); } - /** loads the storefront owner as a typed Store or Network resource */ + /** @returns {Promise} Loads the storefront owner as a typed resource. */ getOwner() { return this.about({ resource: true }); } - /** lookup a specific store or network provided the ID */ + /** + * 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)); } - /** lookup a store or network as a typed resource */ + /** + * @param {string} id + * @returns {Promise} + */ lookupResource(id) { return this.lookup(id, { resource: true }); } - /** search products in store or network */ + /** + * 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))); diff --git a/dist/cjs/storefront.cjs.map b/dist/cjs/storefront.cjs.map index f3c4b73..df4cf30 100644 --- a/dist/cjs/storefront.cjs.map +++ b/dist/cjs/storefront.cjs.map @@ -1 +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.js","../../src/utils/is-phone.js","../../src/utils/format-currency.js","../../src/utils/is-key-valid.js","../../src/utils/is-empty.js","../../src/utils/array.js","../../src/resource.js","../../src/resources/review.js","../../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/_lib/normalizeDates.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/startOfISOWeekYear.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/isValid.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/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/en-US/_lib/localize.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/_lib/match.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/getDayOfYear.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/getWeekYear.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/getWeek.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/getDefaultOptions.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/transpose.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/parse/_lib/Parser.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/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/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/setWeek.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/setISOWeek.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/parse/_lib/parsers/DateParser.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/setDay.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/setISODay.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/_lib/parsers.js","../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse.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/resources/cart.js","../../src/resources/network.js","../../src/resources/delivery-service-quote.js","../../src/resources/order.js","../../src/resources/checkout.js","../../src/resources/food-truck.js","../../src/resources/order-actions.js","../../src/storefront.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 isPhone(phone = '') {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/.test(phone);\n}\n\nexport default isPhone;\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 isKeyValid(key) {\n return typeof key === 'string' && key.length > 30 && (key.startsWith('store_') || key.startsWith('network_'));\n}\n\nexport default isKeyValid;\n","export function isEmpty(obj) {\n const none = obj === null || obj === undefined;\n if (none) {\n return none;\n }\n\n const objectType = typeof obj;\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\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 {import('@fleetbase/sdk').Adapter} adapter\n * @return {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 = undefined, options = {}) {\n super(attributes, adapter, 'review', options);\n }\n\n getMedia() {\n return this.getPhotos();\n }\n\n getPhotos() {\n return this.getAttribute('photos') ?? [];\n }\n\n getVideos() {\n return this.getMedia().filter((media) => media?.type?.startsWith('video/'));\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 * **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 { 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 { 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\";\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","/**\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","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","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","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","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 { 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 { 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 { 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 { 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 { 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","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","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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 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 = undefined, 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\n if (!isValid(start) || !isValid(end)) {\n return false;\n }\n\n const diff = Math.abs(start.getTime() - end.getTime());\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 if (typeof start !== 'string') {\n return null;\n }\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 if (typeof end !== 'string') {\n return null;\n }\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.getAttribute('start')} - ${this.getAttribute('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 = undefined, 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.length > 0 && 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 if (schedule[hour.day]) {\n schedule[hour.day].pushObject(hour);\n }\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 = undefined, 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 get isQPayGateway() {\n return this.type === 'qpay' || this.code === 'qpay';\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 = undefined, 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 getTags(params = {}) {\n return this.adapter.get('tags', params);\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, this.adapter);\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 = undefined, 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 images() {\n return this.getAttribute('images') ?? [];\n }\n\n videos() {\n return this.getAttribute('videos') ?? [];\n }\n\n hours() {\n return this.getAttribute('hours') ?? [];\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 = undefined, 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 = undefined, 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 {import('@fleetbase/sdk').Adapter} adapter\n * @return {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 return this.performAuthorizedRequest('customers/register-device', { token, platform }, 'POST');\n }\n\n performAuthorizedRequest(endpoint, params = {}, method = 'GET', options = {}) {\n const requestOptions = {\n ...options,\n headers: {\n ...options.headers,\n 'Customer-Token': this.token,\n },\n };\n\n return this.adapter[method.toLowerCase()](endpoint, params, requestOptions);\n }\n\n async getSavedPlaces() {\n const places = await this.performAuthorizedRequest('customers/places');\n return new Collection(places.map((attributes) => new Place(attributes, this.adapter)));\n }\n\n async getOrderHistory(params = {}) {\n const orders = await this.performAuthorizedRequest('customers/orders', params);\n return new Collection(orders.map((attributes) => new Order(attributes, this.adapter)));\n }\n\n getStripeEphemeralKey(params = {}) {\n return this.performAuthorizedRequest('customers/stripe-ephemeral-key', params, 'POST');\n }\n\n getStripeSetupIntent(params = {}) {\n return this.performAuthorizedRequest('customers/stripe-setup-intent', params, 'POST');\n }\n\n startAccountClosure(params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/account-closure', params, 'POST', options);\n }\n\n confirmAccountClosure(code, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/confirm-account-closure', { code, ...params }, 'POST', options);\n }\n\n requestPhoneVerification(phone, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/request-phone-verification', { phone, ...params }, 'POST', options);\n }\n\n verifyPhoneNumber(code, phone, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/verify-phone-number', { code, phone, ...params }, 'POST', options);\n }\n\n updateContactAlias(attributes = {}, options = {}) {\n return this.performAuthorizedRequest(`contacts/${this.id}`, attributes, 'PUT', options).then((response) => {\n this.syncAttributes(response);\n return this;\n });\n }\n}\n\nregister('resource', 'Customer', Customer);\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 = undefined, 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 return this.contents().reduce((subtotal, cartItem) => subtotal + Number(cartItem?.subtotal || 0), 0);\n }\n\n contents() {\n const items = this.getAttribute('items', []);\n return isArray(items) ? items : [];\n }\n\n hasProduct(productId) {\n return this.contents().findIndex((cartItem) => cartItem.product_id === productId) !== -1;\n }\n\n get isEmpty() {\n return this.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 = undefined, 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 = undefined, 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 || (attributes && typeof attributes.get === 'function' && typeof attributes.post === 'function')) {\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 {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 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 }\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 { Order as FleetbaseOrder, register } from '@fleetbase/sdk';\n\nexport default class Order extends FleetbaseOrder {\n constructor(attributes = {}, adapter = undefined, options = {}) {\n super(attributes, adapter, options);\n }\n}\n\nregister('resource', 'Order', Order);\n","import Resource from '../resource.js';\nimport Order from './order.js';\nimport { 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, this.adapter));\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 getStatus: function (checkout, token, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.get(`${this.namespace}/status`, { checkout, token }, options);\n },\n\n captureQPay: function (checkout, params = {}, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.post(`${this.namespace}/capture-qpay`, { checkout, ...params }, options);\n },\n\n captureQPayCallback: function (checkout, params = {}, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.get(`${this.namespace}/capture-qpay`, { checkout, ...params }, options);\n },\n});\n\nexport default class Checkout extends Resource {\n constructor(attributes = {}, adapter = undefined, 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 createStripeSetupIntent() {\n return this.store.createStripeSetupIntent(...arguments);\n }\n\n updateStripePaymentIntent() {\n return this.store.updateStripePaymentIntent(...arguments);\n }\n\n getStatus() {\n return this.store.getStatus(...arguments);\n }\n\n captureQPay() {\n return this.store.captureQPay(...arguments);\n }\n\n captureQPayCallback() {\n return this.store.captureQPayCallback(...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 = undefined, options = {}) {\n super(attributes, adapter, 'food-truck', options);\n }\n}\n\nregister('resource', 'FoodTruck', FoodTruck);\n","import { StoreActions, isResource } from '@fleetbase/sdk';\n\nfunction idFor(value) {\n return isResource(value) ? value.id : value;\n}\n\nexport const orderActions = new StoreActions({\n create: undefined,\n update: undefined,\n findAll: undefined,\n query: undefined,\n queryRecord: undefined,\n\n completePickup: function (order, params = {}, options = {}) {\n return this.adapter.put(`${this.namespace}/picked-up`, { order: idFor(order), ...params }, options);\n },\n\n getReceipt: function (order, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/receipt`, { order: idFor(order), ...params }, options);\n },\n});\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, Order } 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 { orderActions } from './resources/order-actions.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 this.orders = new StorefrontStore('order', this.adapter).extendActions(orderActions);\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, Order, lookup };\n"],"names":["Store","extendStoreActions","lookup","classify","isArray","Resource","register","StoreActions","getDefaultOptions","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","defaultLocale","cleanEscapedString","getInternalDefaultOptions","Collection","Place","Order","ServiceQuote","Adapter","FleetbaseOrder","isResource","detectAdapter"],"mappings":"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AC,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,CA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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,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,CAA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AAC,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,C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GAAG,QAAQ;;AAEzC;AACA;AACA;AACA;AACA;AACO,MAAM,oBAAoB,GAAG,KAAK;;AAEzC;AACA;AACA;AACA;AACA;AACO,MAAM,kBAAkB,GAAG,OAAO;;AAEzC;AACA;AACA;AACA;AACA;AACO,MAAM,oBAAoB,GAAG,IAAI;;AAoGxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC;;ACrNlE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE;AAC3C,EAAE,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC;;AAEpD,EAAE,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,mBAAmB,IAAI,IAAI;AACrE,IAAI,OAAO,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC;;AAE3C,EAAE,IAAI,IAAI,YAAY,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;;AAE9D,EAAE,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC;AACxB;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE;AAC1C;AACA,EAAE,OAAO,aAAa,CAAC,OAAO,IAAI,QAAQ,EAAE,QAAQ,CAAC;AACrD;;ACxCA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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AM,CAAC,mBAAmB,EAAE,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,+EAA+E,CAAC;AACrN;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,wBAAsB;AAC5B,EAAE,uDAAuD;;AAEzD;AACA;AACA,MAAMC,4BAA0B,GAAG,mCAAmC;;AAEtE,MAAMC,qBAAmB,GAAG,cAAc;AAC1C,MAAMC,mBAAiB,GAAG,KAAK;AAC/B,MAAMC,+BAA6B,GAAG,UAAU;;AAIhD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE;AACjD,EAAE,MAAM,cAAc,GAAGL,mBAAiB,EAAE;AAC5C,EAAE,MAAM,MAAM,GAAsB,cAAc,CAAC,MAAM,IAAIM,IAAa;;AAE1E,EAAE,MAAM,qBAAqB;AAC7B,IAEI,cAAc,CAAC,qBAAqB;AACxC,IAAI,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,qBAAqB;AACzD,IAAI,CAAC;;AAEL,EAAE,MAAM,YAAY;AACpB,IAEI,cAAc,CAAC,YAAY;AAC/B,IAAI,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY;AAChD,IAAI,CAAC;;AAEL,EAAE,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;;AAEhD,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;AAC9B,IAAI,MAAM,IAAI,UAAU,CAAC,oBAAoB,CAAC;AAC9C,EAAE;;AAEF,EAAE,IAAI,KAAK,GAAG;AACd,KAAK,KAAK,CAACJ,4BAA0B;AACrC,KAAK,GAAG,CAAC,CAAC,SAAS,KAAK;AACxB,MAAM,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC;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;AAC1B,EAAE,CAAC,EAAE,IAAI,eAAe,EAAE;AAC1B,EAAE,CAAC,EAAE,IAAI,YAAY,EAAE;AACvB,EAAE,CAAC,EAAE,IAAI,YAAY,EAAE;AACvB,EAAE,CAAC,EAAE,IAAI,sBAAsB,EAAE;AACjC,EAAE,CAAC,EAAE,IAAI,sBAAsB,EAAE;AACjC,EAAE,CAAC,EAAE,IAAI,iBAAiB,EAAE;AAC5B,EAAE,CAAC,EAAE,IAAI,sBAAsB,EAAE;AACjC,EAAE,CAAC,EAAE,IAAI,2BAA2B,EAAE;AACtC,CAAC;;ACzFD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,sBAAsB;AAC5B,EAAE,uDAAuD;;AAEzD;AACA;AACA,MAAM,0BAA0B,GAAG,mCAAmC;;AAEtE,MAAM,mBAAmB,GAAG,cAAc;AAC1C,MAAM,iBAAiB,GAAG,KAAK;;AAE/B,MAAM,mBAAmB,GAAG,IAAI;AAChC,MAAM,6BAA6B,GAAG,UAAU;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE;AAClE,EAAE,MAAM,WAAW,GAAG,MAAM,aAAa,CAAgB,aAAa,EAAE,GAAG,CAAC;AAC5E,EAAE,MAAM,cAAc,GAAG,iBAAiB,EAAE;AAC5C,EAAE,MAAM,MAAM,GAAsB,cAAc,CAAC,MAAM,IAAIM,IAAa;;AAE1E,EAAE,MAAM,qBAAqB;AAC7B,IAEI,cAAc,CAAC,qBAAqB;AACxC,IAAI,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,qBAAqB;AACzD,IAAI,CAAC;;AAEL,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","x_google_ignoreList":[0,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,88,89]} \ No newline at end of file +{"version":3,"file":"storefront.cjs","sources":["../../node_modules/.pnpm/@fleetbase+sdk@1.2.13/node_modules/@fleetbase/sdk/dist/esm/fleetbase.js","../../src/store.js","../../src/utils/is-phone.js","../../src/utils/format-currency.js","../../src/utils/is-key-valid.js","../../src/utils/is-empty.js","../../src/utils/array.js","../../src/resource.js","../../src/resources/review.js","../../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/_lib/normalizeDates.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/startOfISOWeekYear.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/isValid.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/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/en-US/_lib/localize.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/_lib/match.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/getDayOfYear.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/getWeekYear.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/getWeek.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/getDefaultOptions.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/transpose.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/parse/_lib/Parser.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/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/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/setWeek.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/setISOWeek.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/parse/_lib/parsers/DateParser.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/setDay.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/setISODay.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/_lib/parsers.js","../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse.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/resources/cart.js","../../src/resources/network.js","../../src/resources/delivery-service-quote.js","../../src/resources/order.js","../../src/resources/checkout.js","../../src/resources/food-truck.js","../../src/resources/order-actions.js","../../src/storefront.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 isPhone(phone = '') {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/.test(phone);\n}\n\nexport default isPhone;\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 isKeyValid(key) {\n return typeof key === 'string' && key.length > 30 && (key.startsWith('store_') || key.startsWith('network_'));\n}\n\nexport default isKeyValid;\n","export function isEmpty(obj) {\n const none = obj === null || obj === undefined;\n if (none) {\n return none;\n }\n\n const objectType = typeof obj;\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\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 {import('@fleetbase/sdk').Adapter} adapter\n * @return {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 = undefined, options = {}) {\n super(attributes, adapter, 'review', options);\n }\n\n getMedia() {\n return this.getPhotos();\n }\n\n getPhotos() {\n return this.getAttribute('photos') ?? [];\n }\n\n getVideos() {\n return this.getMedia().filter((media) => media?.type?.startsWith('video/'));\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 * **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 { 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 { 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\";\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","/**\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","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","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","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","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 { 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 { 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 { 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 { 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 { 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","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","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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 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 = undefined, 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\n if (!isValid(start) || !isValid(end)) {\n return false;\n }\n\n const diff = Math.abs(start.getTime() - end.getTime());\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 if (typeof start !== 'string') {\n return null;\n }\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 if (typeof end !== 'string') {\n return null;\n }\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.getAttribute('start')} - ${this.getAttribute('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 = undefined, 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.length > 0 && 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 if (schedule[hour.day]) {\n schedule[hour.day].pushObject(hour);\n }\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 = undefined, 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 get isQPayGateway() {\n return this.type === 'qpay' || this.code === 'qpay';\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 = undefined, 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 getTags(params = {}) {\n return this.adapter.get('tags', params);\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, this.adapter);\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 = undefined, 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 images() {\n return this.getAttribute('images') ?? [];\n }\n\n videos() {\n return this.getAttribute('videos') ?? [];\n }\n\n hours() {\n return this.getAttribute('hours') ?? [];\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 = undefined, 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 = undefined, 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 {import('@fleetbase/sdk').Adapter} adapter\n * @return {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 return this.performAuthorizedRequest('customers/register-device', { token, platform }, 'POST');\n }\n\n performAuthorizedRequest(endpoint, params = {}, method = 'GET', options = {}) {\n const requestOptions = {\n ...options,\n headers: {\n ...options.headers,\n 'Customer-Token': this.token,\n },\n };\n\n return this.adapter[method.toLowerCase()](endpoint, params, requestOptions);\n }\n\n async getSavedPlaces() {\n const places = await this.performAuthorizedRequest('customers/places');\n return new Collection(places.map((attributes) => new Place(attributes, this.adapter)));\n }\n\n async getOrderHistory(params = {}) {\n const orders = await this.performAuthorizedRequest('customers/orders', params);\n return new Collection(orders.map((attributes) => new Order(attributes, this.adapter)));\n }\n\n getStripeEphemeralKey(params = {}) {\n return this.performAuthorizedRequest('customers/stripe-ephemeral-key', params, 'POST');\n }\n\n getStripeSetupIntent(params = {}) {\n return this.performAuthorizedRequest('customers/stripe-setup-intent', params, 'POST');\n }\n\n startAccountClosure(params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/account-closure', params, 'POST', options);\n }\n\n confirmAccountClosure(code, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/confirm-account-closure', { code, ...params }, 'POST', options);\n }\n\n requestPhoneVerification(phone, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/request-phone-verification', { phone, ...params }, 'POST', options);\n }\n\n verifyPhoneNumber(code, phone, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/verify-phone-number', { code, phone, ...params }, 'POST', options);\n }\n\n updateContactAlias(attributes = {}, options = {}) {\n return this.performAuthorizedRequest(`contacts/${this.id}`, attributes, 'PUT', options).then((response) => {\n this.syncAttributes(response);\n return this;\n });\n }\n}\n\nregister('resource', 'Customer', Customer);\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 = undefined, 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 return this.contents().reduce((subtotal, cartItem) => subtotal + Number(cartItem?.subtotal || 0), 0);\n }\n\n contents() {\n const items = this.getAttribute('items', []);\n return isArray(items) ? items : [];\n }\n\n hasProduct(productId) {\n return this.contents().findIndex((cartItem) => cartItem.product_id === productId) !== -1;\n }\n\n get isEmpty() {\n return this.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 = undefined, 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 = undefined, 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 || (attributes && typeof attributes.get === 'function' && typeof attributes.post === 'function')) {\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 {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 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 }\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 { Order as FleetbaseOrder, register } from '@fleetbase/sdk';\n\nexport default class Order extends FleetbaseOrder {\n constructor(attributes = {}, adapter = undefined, options = {}) {\n super(attributes, adapter, options);\n }\n}\n\nregister('resource', 'Order', Order);\n","import Resource from '../resource.js';\nimport Order from './order.js';\nimport { 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, this.adapter));\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 getStatus: function (checkout, token, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.get(`${this.namespace}/status`, { checkout, token }, options);\n },\n\n captureQPay: function (checkout, params = {}, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.post(`${this.namespace}/capture-qpay`, { checkout, ...params }, options);\n },\n\n captureQPayCallback: function (checkout, params = {}, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.get(`${this.namespace}/capture-qpay`, { checkout, ...params }, options);\n },\n});\n\nexport default class Checkout extends Resource {\n constructor(attributes = {}, adapter = undefined, 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 createStripeSetupIntent() {\n return this.store.createStripeSetupIntent(...arguments);\n }\n\n updateStripePaymentIntent() {\n return this.store.updateStripePaymentIntent(...arguments);\n }\n\n getStatus() {\n return this.store.getStatus(...arguments);\n }\n\n captureQPay() {\n return this.store.captureQPay(...arguments);\n }\n\n captureQPayCallback() {\n return this.store.captureQPayCallback(...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 = undefined, options = {}) {\n super(attributes, adapter, 'food-truck', options);\n }\n}\n\nregister('resource', 'FoodTruck', FoodTruck);\n","import { StoreActions, isResource } from '@fleetbase/sdk';\n\nfunction idFor(value) {\n return isResource(value) ? value.id : value;\n}\n\nexport const orderActions = new StoreActions({\n create: undefined,\n update: undefined,\n findAll: undefined,\n query: undefined,\n queryRecord: undefined,\n\n completePickup: function (order, params = {}, options = {}) {\n return this.adapter.put(`${this.namespace}/picked-up`, { order: idFor(order), ...params }, options);\n },\n\n getReceipt: function (order, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/receipt`, { order: idFor(order), ...params }, options);\n },\n});\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, Order } 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 { orderActions } from './resources/order-actions.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 this.orders = new StorefrontStore('order', this.adapter).extendActions(orderActions);\n\n return this;\n }\n\n /**\n * Loads information about this storefront.\n *\n * @param {{ resource?: boolean }} options\n * @returns {Promise | Store | Network>}\n */\n about(options = {}) {\n return this.adapter.get('about').then((attributes) => (options.resource ? this.hydrateOwner(attributes) : attributes));\n }\n\n /** @returns {Promise} Loads the storefront owner as a typed resource. */\n getOwner() {\n return this.about({ resource: true });\n }\n\n /**\n * Looks up a specific store or network by public ID.\n *\n * @param {string} id\n * @param {{ resource?: boolean }} options\n * @returns {Promise | Store | Network>}\n */\n lookup(id, options = {}) {\n return this.adapter.get(`lookup/${id}`).then((attributes) => (options.resource ? this.hydrateOwner(attributes) : attributes));\n }\n\n /**\n * @param {string} id\n * @returns {Promise}\n */\n lookupResource(id) {\n return this.lookup(id, { resource: true });\n }\n\n /**\n * Searches products in the current store or network.\n *\n * @param {string} query\n * @param {Record} options\n * @returns {Promise>}\n */\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, Order, lookup };\n"],"names":["Store","extendStoreActions","lookup","classify","isArray","Resource","register","StoreActions","getDefaultOptions","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","defaultLocale","cleanEscapedString","getInternalDefaultOptions","Collection","Place","Order","ServiceQuote","Adapter","FleetbaseOrder","isResource","detectAdapter"],"mappings":"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AC,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,CA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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,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,CAA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AAC,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,C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GAAG,QAAQ;;AAEzC;AACA;AACA;AACA;AACA;AACO,MAAM,oBAAoB,GAAG,KAAK;;AAEzC;AACA;AACA;AACA;AACA;AACO,MAAM,kBAAkB,GAAG,OAAO;;AAEzC;AACA;AACA;AACA;AACA;AACO,MAAM,oBAAoB,GAAG,IAAI;;AAoGxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC;;ACrNlE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE;AAC3C,EAAE,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC;;AAEpD,EAAE,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,mBAAmB,IAAI,IAAI;AACrE,IAAI,OAAO,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC;;AAE3C,EAAE,IAAI,IAAI,YAAY,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;;AAE9D,EAAE,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC;AACxB;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE;AAC1C;AACA,EAAE,OAAO,aAAa,CAAC,OAAO,IAAI,QAAQ,EAAE,QAAQ,CAAC;AACrD;;ACxCA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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AM,CAAC,mBAAmB,EAAE,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,+EAA+E,CAAC;AACrN;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,wBAAsB;AAC5B,EAAE,uDAAuD;;AAEzD;AACA;AACA,MAAMC,4BAA0B,GAAG,mCAAmC;;AAEtE,MAAMC,qBAAmB,GAAG,cAAc;AAC1C,MAAMC,mBAAiB,GAAG,KAAK;AAC/B,MAAMC,+BAA6B,GAAG,UAAU;;AAIhD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE;AACjD,EAAE,MAAM,cAAc,GAAGL,mBAAiB,EAAE;AAC5C,EAAE,MAAM,MAAM,GAAsB,cAAc,CAAC,MAAM,IAAIM,IAAa;;AAE1E,EAAE,MAAM,qBAAqB;AAC7B,IAEI,cAAc,CAAC,qBAAqB;AACxC,IAAI,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,qBAAqB;AACzD,IAAI,CAAC;;AAEL,EAAE,MAAM,YAAY;AACpB,IAEI,cAAc,CAAC,YAAY;AAC/B,IAAI,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY;AAChD,IAAI,CAAC;;AAEL,EAAE,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;;AAEhD,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;AAC9B,IAAI,MAAM,IAAI,UAAU,CAAC,oBAAoB,CAAC;AAC9C,EAAE;;AAEF,EAAE,IAAI,KAAK,GAAG;AACd,KAAK,KAAK,CAACJ,4BAA0B;AACrC,KAAK,GAAG,CAAC,CAAC,SAAS,KAAK;AACxB,MAAM,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC;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;AAC1B,EAAE,CAAC,EAAE,IAAI,eAAe,EAAE;AAC1B,EAAE,CAAC,EAAE,IAAI,YAAY,EAAE;AACvB,EAAE,CAAC,EAAE,IAAI,YAAY,EAAE;AACvB,EAAE,CAAC,EAAE,IAAI,sBAAsB,EAAE;AACjC,EAAE,CAAC,EAAE,IAAI,sBAAsB,EAAE;AACjC,EAAE,CAAC,EAAE,IAAI,iBAAiB,EAAE;AAC5B,EAAE,CAAC,EAAE,IAAI,sBAAsB,EAAE;AACjC,EAAE,CAAC,EAAE,IAAI,2BAA2B,EAAE;AACtC,CAAC;;ACzFD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,sBAAsB;AAC5B,EAAE,uDAAuD;;AAEzD;AACA;AACA,MAAM,0BAA0B,GAAG,mCAAmC;;AAEtE,MAAM,mBAAmB,GAAG,cAAc;AAC1C,MAAM,iBAAiB,GAAG,KAAK;;AAE/B,MAAM,mBAAmB,GAAG,IAAI;AAChC,MAAM,6BAA6B,GAAG,UAAU;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE;AAClE,EAAE,MAAM,WAAW,GAAG,MAAM,aAAa,CAAgB,aAAa,EAAE,GAAG,CAAC;AAC5E,EAAE,MAAM,cAAc,GAAG,iBAAiB,EAAE;AAC5C,EAAE,MAAM,MAAM,GAAsB,cAAc,CAAC,MAAM,IAAIM,IAAa;;AAE1E,EAAE,MAAM,qBAAqB;AAC7B,IAEI,cAAc,CAAC,qBAAqB;AACxC,IAAI,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,qBAAqB;AACzD,IAAI,CAAC;;AAEL,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","x_google_ignoreList":[0,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,88,89]} \ No newline at end of file diff --git a/dist/esm/storefront.js b/dist/esm/storefront.js index 6b9a0c8..6fe8436 100644 --- a/dist/esm/storefront.js +++ b/dist/esm/storefront.js @@ -1035,27 +1035,47 @@ class Storefront { return this; } - /** loads information about this storefront */ + /** + * 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)); } - /** loads the storefront owner as a typed Store or Network resource */ + /** @returns {Promise} Loads the storefront owner as a typed resource. */ getOwner() { return this.about({ resource: true }); } - /** lookup a specific store or network provided the ID */ + /** + * 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)); } - /** lookup a store or network as a typed resource */ + /** + * @param {string} id + * @returns {Promise} + */ lookupResource(id) { return this.lookup(id, { resource: true }); } - /** search products in store or network */ + /** + * 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 Collection(products.map((product) => new Product(product, this.adapter))); diff --git a/dist/esm/storefront.js.map b/dist/esm/storefront.js.map index 357315e..9426987 100644 --- a/dist/esm/storefront.js.map +++ b/dist/esm/storefront.js.map @@ -1 +1 @@ -{"version":3,"file":"storefront.js","sources":["../../src/store.js","../../src/utils/is-phone.js","../../src/utils/format-currency.js","../../src/utils/is-key-valid.js","../../src/utils/is-empty.js","../../src/utils/array.js","../../src/resource.js","../../src/resources/review.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/resources/cart.js","../../src/resources/network.js","../../src/resources/delivery-service-quote.js","../../src/resources/order.js","../../src/resources/checkout.js","../../src/resources/food-truck.js","../../src/resources/order-actions.js","../../src/storefront.js"],"sourcesContent":["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 isPhone(phone = '') {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/.test(phone);\n}\n\nexport default isPhone;\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 isKeyValid(key) {\n return typeof key === 'string' && key.length > 30 && (key.startsWith('store_') || key.startsWith('network_'));\n}\n\nexport default isKeyValid;\n","export function isEmpty(obj) {\n const none = obj === null || obj === undefined;\n if (none) {\n return none;\n }\n\n const objectType = typeof obj;\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\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 {import('@fleetbase/sdk').Adapter} adapter\n * @return {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 = undefined, options = {}) {\n super(attributes, adapter, 'review', options);\n }\n\n getMedia() {\n return this.getPhotos();\n }\n\n getPhotos() {\n return this.getAttribute('photos') ?? [];\n }\n\n getVideos() {\n return this.getMedia().filter((media) => media?.type?.startsWith('video/'));\n }\n}\n\nregister('resource', 'Review', Review);\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 = undefined, 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\n if (!isValid(start) || !isValid(end)) {\n return false;\n }\n\n const diff = Math.abs(start.getTime() - end.getTime());\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 if (typeof start !== 'string') {\n return null;\n }\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 if (typeof end !== 'string') {\n return null;\n }\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.getAttribute('start')} - ${this.getAttribute('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 = undefined, 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.length > 0 && 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 if (schedule[hour.day]) {\n schedule[hour.day].pushObject(hour);\n }\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 = undefined, 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 get isQPayGateway() {\n return this.type === 'qpay' || this.code === 'qpay';\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 = undefined, 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 getTags(params = {}) {\n return this.adapter.get('tags', params);\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, this.adapter);\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 = undefined, 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 images() {\n return this.getAttribute('images') ?? [];\n }\n\n videos() {\n return this.getAttribute('videos') ?? [];\n }\n\n hours() {\n return this.getAttribute('hours') ?? [];\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 = undefined, 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 = undefined, 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 {import('@fleetbase/sdk').Adapter} adapter\n * @return {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 return this.performAuthorizedRequest('customers/register-device', { token, platform }, 'POST');\n }\n\n performAuthorizedRequest(endpoint, params = {}, method = 'GET', options = {}) {\n const requestOptions = {\n ...options,\n headers: {\n ...options.headers,\n 'Customer-Token': this.token,\n },\n };\n\n return this.adapter[method.toLowerCase()](endpoint, params, requestOptions);\n }\n\n async getSavedPlaces() {\n const places = await this.performAuthorizedRequest('customers/places');\n return new Collection(places.map((attributes) => new Place(attributes, this.adapter)));\n }\n\n async getOrderHistory(params = {}) {\n const orders = await this.performAuthorizedRequest('customers/orders', params);\n return new Collection(orders.map((attributes) => new Order(attributes, this.adapter)));\n }\n\n getStripeEphemeralKey(params = {}) {\n return this.performAuthorizedRequest('customers/stripe-ephemeral-key', params, 'POST');\n }\n\n getStripeSetupIntent(params = {}) {\n return this.performAuthorizedRequest('customers/stripe-setup-intent', params, 'POST');\n }\n\n startAccountClosure(params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/account-closure', params, 'POST', options);\n }\n\n confirmAccountClosure(code, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/confirm-account-closure', { code, ...params }, 'POST', options);\n }\n\n requestPhoneVerification(phone, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/request-phone-verification', { phone, ...params }, 'POST', options);\n }\n\n verifyPhoneNumber(code, phone, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/verify-phone-number', { code, phone, ...params }, 'POST', options);\n }\n\n updateContactAlias(attributes = {}, options = {}) {\n return this.performAuthorizedRequest(`contacts/${this.id}`, attributes, 'PUT', options).then((response) => {\n this.syncAttributes(response);\n return this;\n });\n }\n}\n\nregister('resource', 'Customer', Customer);\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 = undefined, 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 return this.contents().reduce((subtotal, cartItem) => subtotal + Number(cartItem?.subtotal || 0), 0);\n }\n\n contents() {\n const items = this.getAttribute('items', []);\n return isArray(items) ? items : [];\n }\n\n hasProduct(productId) {\n return this.contents().findIndex((cartItem) => cartItem.product_id === productId) !== -1;\n }\n\n get isEmpty() {\n return this.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 = undefined, 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 = undefined, 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 || (attributes && typeof attributes.get === 'function' && typeof attributes.post === 'function')) {\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 {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 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 }\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 { Order as FleetbaseOrder, register } from '@fleetbase/sdk';\n\nexport default class Order extends FleetbaseOrder {\n constructor(attributes = {}, adapter = undefined, options = {}) {\n super(attributes, adapter, options);\n }\n}\n\nregister('resource', 'Order', Order);\n","import Resource from '../resource.js';\nimport Order from './order.js';\nimport { 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, this.adapter));\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 getStatus: function (checkout, token, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.get(`${this.namespace}/status`, { checkout, token }, options);\n },\n\n captureQPay: function (checkout, params = {}, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.post(`${this.namespace}/capture-qpay`, { checkout, ...params }, options);\n },\n\n captureQPayCallback: function (checkout, params = {}, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.get(`${this.namespace}/capture-qpay`, { checkout, ...params }, options);\n },\n});\n\nexport default class Checkout extends Resource {\n constructor(attributes = {}, adapter = undefined, 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 createStripeSetupIntent() {\n return this.store.createStripeSetupIntent(...arguments);\n }\n\n updateStripePaymentIntent() {\n return this.store.updateStripePaymentIntent(...arguments);\n }\n\n getStatus() {\n return this.store.getStatus(...arguments);\n }\n\n captureQPay() {\n return this.store.captureQPay(...arguments);\n }\n\n captureQPayCallback() {\n return this.store.captureQPayCallback(...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 = undefined, options = {}) {\n super(attributes, adapter, 'food-truck', options);\n }\n}\n\nregister('resource', 'FoodTruck', FoodTruck);\n","import { StoreActions, isResource } from '@fleetbase/sdk';\n\nfunction idFor(value) {\n return isResource(value) ? value.id : value;\n}\n\nexport const orderActions = new StoreActions({\n create: undefined,\n update: undefined,\n findAll: undefined,\n query: undefined,\n queryRecord: undefined,\n\n completePickup: function (order, params = {}, options = {}) {\n return this.adapter.put(`${this.namespace}/picked-up`, { order: idFor(order), ...params }, options);\n },\n\n getReceipt: function (order, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/receipt`, { order: idFor(order), ...params }, options);\n },\n});\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, Order } 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 { orderActions } from './resources/order-actions.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 this.orders = new StorefrontStore('order', this.adapter).extendActions(orderActions);\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, Order, lookup };\n"],"names":["Store","isArray","Resource","Order","FleetbaseOrder"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"storefront.js","sources":["../../src/store.js","../../src/utils/is-phone.js","../../src/utils/format-currency.js","../../src/utils/is-key-valid.js","../../src/utils/is-empty.js","../../src/utils/array.js","../../src/resource.js","../../src/resources/review.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/resources/cart.js","../../src/resources/network.js","../../src/resources/delivery-service-quote.js","../../src/resources/order.js","../../src/resources/checkout.js","../../src/resources/food-truck.js","../../src/resources/order-actions.js","../../src/storefront.js"],"sourcesContent":["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 isPhone(phone = '') {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/.test(phone);\n}\n\nexport default isPhone;\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 isKeyValid(key) {\n return typeof key === 'string' && key.length > 30 && (key.startsWith('store_') || key.startsWith('network_'));\n}\n\nexport default isKeyValid;\n","export function isEmpty(obj) {\n const none = obj === null || obj === undefined;\n if (none) {\n return none;\n }\n\n const objectType = typeof obj;\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\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 {import('@fleetbase/sdk').Adapter} adapter\n * @return {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 = undefined, options = {}) {\n super(attributes, adapter, 'review', options);\n }\n\n getMedia() {\n return this.getPhotos();\n }\n\n getPhotos() {\n return this.getAttribute('photos') ?? [];\n }\n\n getVideos() {\n return this.getMedia().filter((media) => media?.type?.startsWith('video/'));\n }\n}\n\nregister('resource', 'Review', Review);\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 = undefined, 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\n if (!isValid(start) || !isValid(end)) {\n return false;\n }\n\n const diff = Math.abs(start.getTime() - end.getTime());\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 if (typeof start !== 'string') {\n return null;\n }\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 if (typeof end !== 'string') {\n return null;\n }\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.getAttribute('start')} - ${this.getAttribute('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 = undefined, 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.length > 0 && 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 if (schedule[hour.day]) {\n schedule[hour.day].pushObject(hour);\n }\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 = undefined, 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 get isQPayGateway() {\n return this.type === 'qpay' || this.code === 'qpay';\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 = undefined, 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 getTags(params = {}) {\n return this.adapter.get('tags', params);\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, this.adapter);\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 = undefined, 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 images() {\n return this.getAttribute('images') ?? [];\n }\n\n videos() {\n return this.getAttribute('videos') ?? [];\n }\n\n hours() {\n return this.getAttribute('hours') ?? [];\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 = undefined, 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 = undefined, 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 {import('@fleetbase/sdk').Adapter} adapter\n * @return {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 return this.performAuthorizedRequest('customers/register-device', { token, platform }, 'POST');\n }\n\n performAuthorizedRequest(endpoint, params = {}, method = 'GET', options = {}) {\n const requestOptions = {\n ...options,\n headers: {\n ...options.headers,\n 'Customer-Token': this.token,\n },\n };\n\n return this.adapter[method.toLowerCase()](endpoint, params, requestOptions);\n }\n\n async getSavedPlaces() {\n const places = await this.performAuthorizedRequest('customers/places');\n return new Collection(places.map((attributes) => new Place(attributes, this.adapter)));\n }\n\n async getOrderHistory(params = {}) {\n const orders = await this.performAuthorizedRequest('customers/orders', params);\n return new Collection(orders.map((attributes) => new Order(attributes, this.adapter)));\n }\n\n getStripeEphemeralKey(params = {}) {\n return this.performAuthorizedRequest('customers/stripe-ephemeral-key', params, 'POST');\n }\n\n getStripeSetupIntent(params = {}) {\n return this.performAuthorizedRequest('customers/stripe-setup-intent', params, 'POST');\n }\n\n startAccountClosure(params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/account-closure', params, 'POST', options);\n }\n\n confirmAccountClosure(code, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/confirm-account-closure', { code, ...params }, 'POST', options);\n }\n\n requestPhoneVerification(phone, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/request-phone-verification', { phone, ...params }, 'POST', options);\n }\n\n verifyPhoneNumber(code, phone, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/verify-phone-number', { code, phone, ...params }, 'POST', options);\n }\n\n updateContactAlias(attributes = {}, options = {}) {\n return this.performAuthorizedRequest(`contacts/${this.id}`, attributes, 'PUT', options).then((response) => {\n this.syncAttributes(response);\n return this;\n });\n }\n}\n\nregister('resource', 'Customer', Customer);\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 = undefined, 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 return this.contents().reduce((subtotal, cartItem) => subtotal + Number(cartItem?.subtotal || 0), 0);\n }\n\n contents() {\n const items = this.getAttribute('items', []);\n return isArray(items) ? items : [];\n }\n\n hasProduct(productId) {\n return this.contents().findIndex((cartItem) => cartItem.product_id === productId) !== -1;\n }\n\n get isEmpty() {\n return this.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 = undefined, 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 = undefined, 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 || (attributes && typeof attributes.get === 'function' && typeof attributes.post === 'function')) {\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 {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 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 }\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 { Order as FleetbaseOrder, register } from '@fleetbase/sdk';\n\nexport default class Order extends FleetbaseOrder {\n constructor(attributes = {}, adapter = undefined, options = {}) {\n super(attributes, adapter, options);\n }\n}\n\nregister('resource', 'Order', Order);\n","import Resource from '../resource.js';\nimport Order from './order.js';\nimport { 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, this.adapter));\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 getStatus: function (checkout, token, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.get(`${this.namespace}/status`, { checkout, token }, options);\n },\n\n captureQPay: function (checkout, params = {}, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.post(`${this.namespace}/capture-qpay`, { checkout, ...params }, options);\n },\n\n captureQPayCallback: function (checkout, params = {}, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.get(`${this.namespace}/capture-qpay`, { checkout, ...params }, options);\n },\n});\n\nexport default class Checkout extends Resource {\n constructor(attributes = {}, adapter = undefined, 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 createStripeSetupIntent() {\n return this.store.createStripeSetupIntent(...arguments);\n }\n\n updateStripePaymentIntent() {\n return this.store.updateStripePaymentIntent(...arguments);\n }\n\n getStatus() {\n return this.store.getStatus(...arguments);\n }\n\n captureQPay() {\n return this.store.captureQPay(...arguments);\n }\n\n captureQPayCallback() {\n return this.store.captureQPayCallback(...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 = undefined, options = {}) {\n super(attributes, adapter, 'food-truck', options);\n }\n}\n\nregister('resource', 'FoodTruck', FoodTruck);\n","import { StoreActions, isResource } from '@fleetbase/sdk';\n\nfunction idFor(value) {\n return isResource(value) ? value.id : value;\n}\n\nexport const orderActions = new StoreActions({\n create: undefined,\n update: undefined,\n findAll: undefined,\n query: undefined,\n queryRecord: undefined,\n\n completePickup: function (order, params = {}, options = {}) {\n return this.adapter.put(`${this.namespace}/picked-up`, { order: idFor(order), ...params }, options);\n },\n\n getReceipt: function (order, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/receipt`, { order: idFor(order), ...params }, options);\n },\n});\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, Order } 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 { orderActions } from './resources/order-actions.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 this.orders = new StorefrontStore('order', this.adapter).extendActions(orderActions);\n\n return this;\n }\n\n /**\n * Loads information about this storefront.\n *\n * @param {{ resource?: boolean }} options\n * @returns {Promise | Store | Network>}\n */\n about(options = {}) {\n return this.adapter.get('about').then((attributes) => (options.resource ? this.hydrateOwner(attributes) : attributes));\n }\n\n /** @returns {Promise} Loads the storefront owner as a typed resource. */\n getOwner() {\n return this.about({ resource: true });\n }\n\n /**\n * Looks up a specific store or network by public ID.\n *\n * @param {string} id\n * @param {{ resource?: boolean }} options\n * @returns {Promise | Store | Network>}\n */\n lookup(id, options = {}) {\n return this.adapter.get(`lookup/${id}`).then((attributes) => (options.resource ? this.hydrateOwner(attributes) : attributes));\n }\n\n /**\n * @param {string} id\n * @returns {Promise}\n */\n lookupResource(id) {\n return this.lookup(id, { resource: true });\n }\n\n /**\n * Searches products in the current store or network.\n *\n * @param {string} query\n * @param {Record} options\n * @returns {Promise>}\n */\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, Order, lookup };\n"],"names":["Store","isArray","Resource","Order","FleetbaseOrder"],"mappings":"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"} \ No newline at end of file diff --git a/docs/compatibility.md b/docs/compatibility.md new file mode 100644 index 0000000..c309669 --- /dev/null +++ b/docs/compatibility.md @@ -0,0 +1,27 @@ +# 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 | + +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..dc5e160 --- /dev/null +++ b/docs/releasing.md @@ -0,0 +1,31 @@ +# Release process + +## One-time repository setup + +1. Create a protected GitHub environment named `npm-production` and require release-owner approval. +2. 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. +3. After the first successful trusted publish, disable token-based publishing and revoke the old automation token. +4. Protect `main` with the required CI, supported Node, packed-artifact, compatibility, dependency-review, security, and CodeQL checks. + +## Release flow + +1. Every consumer-visible pull request adds a Changeset. +2. `release-pr.yml` maintains a version and changelog pull request on `main`. +3. Review and merge the release pull request after the normal CI gates pass. +4. Create and publish a GitHub Release whose tag exactly matches `v`. +5. `publish.yml` checks out that immutable tag, requires tag/version parity, installs without a publish cache, runs the complete verification suite, and publishes through npm OpenID Connect. +6. Verify the npm version, dist-tags, provenance, tarball integrity, and a clean install before announcing the release. + +## Prereleases + +Use Changesets prerelease mode and publish release candidates under the npm `next` dist-tag. Validate application consumers against the registry artifact before leaving prerelease mode and publishing the stable version. + +## 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. diff --git a/package.json b/package.json index 57d1519..eb743f2 100644 --- a/package.json +++ b/package.json @@ -31,8 +31,11 @@ "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", @@ -76,11 +79,12 @@ "dev": "rollup -c -w", "test": "vitest run", "test:coverage": "vitest run --coverage", + "test:browser": "node scripts/verify-browser-bundle.mjs", "test:watch": "vitest", "typecheck": "tsc --noEmit", "build:types": "tsc -p tsconfig.build.json && node scripts/create-cjs-types.mjs && prettier types --write", "package:check": "publint && attw --pack . --profile node16", - "check": "pnpm run format:check && pnpm run lint && pnpm run typecheck && pnpm run test:coverage && pnpm run bundle && pnpm run package:check", + "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", "changeset": "changeset", @@ -108,5 +112,13 @@ "rollup": "^4.63.0", "typescript": "^5.9.0", "vitest": "^4.0.0" + }, + "pnpm": { + "overrides": { + "@babel/runtime": "7.28.4", + "axios": "1.20.0", + "follow-redirects": "1.16.0", + "form-data": "4.0.6" + } } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ba7ff50..77e04cc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,12 @@ 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 + importers: .: dependencies: @@ -86,8 +92,8 @@ packages: engines: { node: '>=6.0.0' } hasBin: true - '@babel/runtime@7.26.0': - resolution: { integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw== } + '@babel/runtime@7.28.4': + resolution: { integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ== } engines: { node: '>=6.9.0' } '@babel/types@7.29.8': @@ -630,6 +636,10 @@ packages: engines: { node: '>=0.4.0' } hasBin: true + agent-base@6.0.2: + resolution: { integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== } + engines: { node: '>= 6.0.0' } + ajv@6.15.0: resolution: { integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw== } @@ -676,8 +686,8 @@ packages: asynckit@0.4.0: resolution: { integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== } - axios@1.7.9: - resolution: { integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw== } + axios@1.20.0: + resolution: { integrity: sha512-r8aOh8j9cGKpgQAqpzrUHnSIc6a59Y3Xf/cv8sy1DrHCkZHzQGEuoq1tARk6qSyDdtQGSDgpb9kFlruzPvrgwg== } balanced-match@4.0.4: resolution: { integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA== } @@ -698,6 +708,10 @@ packages: 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' } + chai@6.2.2: resolution: { integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg== } engines: { node: '>=18' } @@ -798,6 +812,10 @@ packages: resolution: { integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== } engines: { node: '>=8' } + dunder-proto@1.0.1: + resolution: { integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== } + engines: { node: '>= 0.4' } + emoji-regex@8.0.0: resolution: { integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== } @@ -812,9 +830,25 @@ packages: resolution: { integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q== } engines: { node: '>=18' } + es-define-property@1.0.1: + resolution: { integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== } + engines: { node: '>= 0.4' } + + es-errors@1.3.0: + resolution: { integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== } + engines: { node: '>= 0.4' } + es-module-lexer@2.3.2: resolution: { integrity: sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw== } + es-object-atoms@1.1.2: + resolution: { integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw== } + engines: { node: '>= 0.4' } + + es-set-tostringtag@2.1.0: + resolution: { integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== } + engines: { node: '>= 0.4' } + escalade@3.2.0: resolution: { integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== } engines: { node: '>=6' } @@ -942,8 +976,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: '*' @@ -951,8 +985,8 @@ packages: debug: optional: true - 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-extra@7.0.1: @@ -975,6 +1009,14 @@ packages: resolution: { integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== } engines: { node: 6.* || 8.* || >= 10.* } + get-intrinsic@1.3.0: + resolution: { integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== } + engines: { node: '>= 0.4' } + + 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' } @@ -991,6 +1033,10 @@ packages: resolution: { integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== } engines: { node: '>=10' } + gopd@1.2.0: + resolution: { integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== } + engines: { node: '>= 0.4' } + graceful-fs@4.2.11: resolution: { integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== } @@ -998,16 +1044,32 @@ packages: resolution: { integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== } engines: { node: '>=8' } + has-symbols@1.1.0: + resolution: { integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== } + engines: { node: '>= 0.4' } + + has-tostringtag@1.0.2: + resolution: { integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== } + engines: { node: '>= 0.4' } + hasown@2.0.2: resolution: { integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== } engines: { node: '>= 0.4' } + 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-id@4.2.1: resolution: { integrity: sha512-zPGsiS+dWoTZtZ4AtpA9Y+BdSFSNWvnouNlWNoUFyAM6xHOHmdCvqO3k8AIbdamCOv4gUFUVNPf6rJFfc4UiJw== } hasBin: true @@ -1212,6 +1274,10 @@ packages: engines: { node: '>= 16' } hasBin: true + math-intrinsics@1.1.0: + resolution: { integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== } + engines: { node: '>= 0.4' } + merge2@1.4.1: resolution: { integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== } engines: { node: '>= 8' } @@ -1367,8 +1433,9 @@ packages: engines: { node: '>=14' } hasBin: true - proxy-from-env@1.1.0: - resolution: { integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== } + proxy-from-env@2.1.0: + resolution: { integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA== } + engines: { node: '>=10' } publint@0.3.24: resolution: { integrity: sha512-9zS56KrKBoqi5Qt8h92uMP8TTM9AYZSgnmCo4u2priMqkOZvQnTsziZ2p5LJ2ywbYkAjoCDp2jda9u4cgFefIw== } @@ -1389,9 +1456,6 @@ packages: resolution: { integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA== } engines: { node: '>=6' } - regenerator-runtime@0.14.1: - resolution: { integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== } - require-directory@2.1.1: resolution: { integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== } engines: { node: '>=0.10.0' } @@ -1725,9 +1789,7 @@ snapshots: dependencies: '@babel/types': 7.29.8 - '@babel/runtime@7.26.0': - dependencies: - regenerator-runtime: 0.14.1 + '@babel/runtime@7.28.4': {} '@babel/types@7.29.8': dependencies: @@ -1920,10 +1982,11 @@ snapshots: '@fleetbase/sdk@1.2.13': dependencies: - '@babel/runtime': 7.26.0 - axios: 1.7.9 + '@babel/runtime': 7.28.4 + axios: 1.20.0 transitivePeerDependencies: - debug + - supports-color '@humanfs/core@0.19.1': {} @@ -1978,14 +2041,14 @@ snapshots: '@manypkg/find-root@1.1.0': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.28.4 '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 '@manypkg/get-packages@1.1.3': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.28.4 '@changesets/types': 4.1.0 '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 @@ -2259,6 +2322,12 @@ snapshots: acorn@8.18.0: {} + agent-base@6.0.2: + dependencies: + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + ajv@6.15.0: dependencies: fast-deep-equal: 3.1.3 @@ -2300,13 +2369,15 @@ snapshots: asynckit@0.4.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 + - supports-color balanced-match@4.0.4: {} @@ -2324,6 +2395,11 @@ snapshots: buffer-from@1.1.2: {} + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + chai@6.2.2: {} chalk@4.1.2: @@ -2406,6 +2482,12 @@ snapshots: dependencies: path-type: 4.0.0 + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + emoji-regex@8.0.0: {} emojilib@2.4.0: {} @@ -2417,8 +2499,23 @@ snapshots: environment@1.1.0: {} + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + es-module-lexer@2.3.2: {} + es-object-atoms@1.1.2: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.4 + escalade@3.2.0: {} escape-string-regexp@4.0.0: {} @@ -2552,12 +2649,14 @@ snapshots: flatted@3.3.2: {} - follow-redirects@1.15.9: {} + 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-extra@7.0.1: @@ -2579,6 +2678,24 @@ snapshots: get-caller-file@2.0.5: {} + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.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.4 + math-intrinsics: 1.1.0 + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.2 + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -2598,18 +2715,37 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 + gopd@1.2.0: {} + graceful-fs@4.2.11: {} has-flag@4.0.0: {} + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + hasown@2.0.2: dependencies: function-bind: 1.1.2 + hasown@2.0.4: + dependencies: + function-bind: 1.1.2 + highlight.js@10.7.3: {} html-escaper@2.0.2: {} + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + human-id@4.2.1: {} iconv-lite@0.7.3: @@ -2783,6 +2919,8 @@ snapshots: marked@9.1.6: {} + math-intrinsics@1.1.0: {} + merge2@1.4.1: {} micromatch@4.0.8: @@ -2906,7 +3044,7 @@ snapshots: prettier@3.9.6: {} - proxy-from-env@1.1.0: {} + proxy-from-env@2.1.0: {} publint@0.3.24: dependencies: @@ -2928,8 +3066,6 @@ snapshots: pify: 4.0.1 strip-bom: 3.0.0 - regenerator-runtime@0.14.1: {} - require-directory@2.1.1: {} resolve-from@5.0.0: {} 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-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/storefront.js b/src/storefront.js index c120b73..15066bb 100644 --- a/src/storefront.js +++ b/src/storefront.js @@ -54,27 +54,47 @@ export default class Storefront { return this; } - /** loads information about this storefront */ + /** + * 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)); } - /** loads the storefront owner as a typed Store or Network resource */ + /** @returns {Promise} Loads the storefront owner as a typed resource. */ getOwner() { return this.about({ resource: true }); } - /** lookup a specific store or network provided the ID */ + /** + * 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)); } - /** lookup a store or network as a typed resource */ + /** + * @param {string} id + * @returns {Promise} + */ lookupResource(id) { return this.lookup(id, { resource: true }); } - /** search products in store or network */ + /** + * 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 Collection(products.map((product) => new Product(product, this.adapter))); diff --git a/types-internal/fleetbase-sdk.d.ts b/types-internal/fleetbase-sdk.d.ts index 1ce0675..6671a51 100644 --- a/types-internal/fleetbase-sdk.d.ts +++ b/types-internal/fleetbase-sdk.d.ts @@ -41,7 +41,7 @@ declare module '@fleetbase/sdk' { hasAttribute(attribute: string): boolean; syncAttributes(attributes: Record): this; serialize(): Record; - destroy(options?: Record): Promise; + destroy(options?: Record): any; } export class Order extends Resource {} diff --git a/types/fleetbase-sdk.d.ts b/types/fleetbase-sdk.d.ts index 1ce0675..6671a51 100644 --- a/types/fleetbase-sdk.d.ts +++ b/types/fleetbase-sdk.d.ts @@ -41,7 +41,7 @@ declare module '@fleetbase/sdk' { hasAttribute(attribute: string): boolean; syncAttributes(attributes: Record): this; serialize(): Record; - destroy(options?: Record): Promise; + destroy(options?: Record): any; } export class Order extends Resource {} diff --git a/types/resources/cart.d.ts b/types/resources/cart.d.ts index 0d41c26..891f696 100644 --- a/types/resources/cart.d.ts +++ b/types/resources/cart.d.ts @@ -5,7 +5,7 @@ export default class Cart extends Resource { update(cartItemId: any, quantity: any, data?: {}, options?: {}): any; remove(cartItemId: any, options?: {}): any; empty(options?: {}): any; - delete(): Promise; + delete(): any; refresh(): any; subtotal(): any; contents(): any[]; diff --git a/types/storefront.d.ts b/types/storefront.d.ts index 461737c..88b72ed 100644 --- a/types/storefront.d.ts +++ b/types/storefront.d.ts @@ -33,16 +33,41 @@ export default class Storefront { cart: StorefrontStore; checkout: StorefrontStore; orders: StorefrontStore; - /** loads information about this storefront */ - about(options?: {}): any; - /** loads the storefront owner as a typed Store or Network resource */ - getOwner(): any; - /** lookup a specific store or network provided the ID */ - lookup(id: any, options?: {}): any; - /** lookup a store or network as a typed resource */ - lookupResource(id: any): any; - /** search products in store or network */ - search(query: any, options?: {}): any; + /** + * Loads information about this storefront. + * + * @param {{ resource?: boolean }} options + * @returns {Promise | Store | Network>} + */ + about(options?: { resource?: boolean }): Promise | Store | Network>; + /** @returns {Promise} Loads the storefront owner as a typed resource. */ + getOwner(): 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 | Store | Network>; + /** + * @param {string} id + * @returns {Promise} + */ + lookupResource(id: string): Promise; + /** + * Searches products in the current store or network. + * + * @param {string} query + * @param {Record} options + * @returns {Promise>} + */ + search(query: string, options?: Record): Promise>; hydrateOwner(attributes?: {}): Store | Network; setAdapter(adapter: any): this; getAdapter(): any; @@ -50,6 +75,7 @@ export default class Storefront { import StorefrontStore from './store.js'; import { Store } from './resources.js'; import { Network } from './resources.js'; +import { Collection } from '@fleetbase/sdk'; import { Product } from './resources.js'; import { Category } from './resources.js'; import { Customer } from './resources.js'; From 6432af2c0364a519d9b49efd425070e741af103c Mon Sep 17 00:00:00 2001 From: "Ronald A. Richardson" Date: Mon, 31 Aug 2026 20:24:46 +0800 Subject: [PATCH 4/8] refactor: migrate SDK source to strict TypeScript --- .github/workflows/codeql.yml | 30 - README.md | 3 +- dist/@storefront.min.js | 2 +- dist/@storefront.min.js.map | 2 +- dist/cjs/storefront.cjs | 5951 +---------------- dist/cjs/storefront.cjs.map | 2 +- dist/esm/storefront.js | 368 +- dist/esm/storefront.js.map | 2 +- docs/api-contract.md | 63 + eslint.config.js | 19 +- package.json | 5 +- pnpm-lock.yaml | 239 +- rollup.config.js | 14 +- src/cart-store.js | 49 - src/customer-store.js | 42 - src/{index.js => index.ts} | 0 src/{resource.js => resource.ts} | 8 +- src/{resources.js => resources.ts} | 0 src/resources/cart.js | 89 - src/resources/cart.ts | 92 + src/resources/category.js | 17 - src/resources/category.ts | 18 + src/resources/checkout.js | 118 - src/resources/checkout.ts | 150 + src/resources/customer.js | 142 - src/resources/customer.ts | 145 + ...ice-quote.js => delivery-service-quote.ts} | 33 +- .../{food-truck.js => food-truck.ts} | 5 +- src/resources/{network.js => network.ts} | 29 +- src/resources/order-actions.js | 21 - src/resources/order-actions.ts | 23 + src/resources/order.js | 9 - src/resources/order.ts | 10 + ...{payment-gateway.js => payment-gateway.ts} | 17 +- src/resources/{product.js => product.ts} | 39 +- src/resources/review.js | 34 - src/resources/review.ts | 36 + .../{store-hour.js => store-hour.ts} | 22 +- .../{store-location.js => store-location.ts} | 33 +- src/resources/store.js | 59 - src/resources/store.ts | 60 + src/store.js | 15 - src/store.ts | 17 + src/storefront.js | 127 - src/storefront.ts | 199 + src/types.ts | 20 + src/utils/array.js | 3 - src/utils/array.ts | 3 + ...{format-currency.js => format-currency.ts} | 2 +- .../{get-countries.js => get-countries.ts} | 4 +- src/utils/{index.js => index.ts} | 0 src/utils/{is-email.js => is-email.ts} | 0 src/utils/is-empty.js | 20 - src/utils/is-empty.ts | 20 + .../{is-key-valid.js => is-key-valid.ts} | 2 +- src/utils/{is-phone.js => is-phone.ts} | 0 tests/actions.test.js | 39 +- tests/contracts/public-api.snapshot.json | 91 + tests/public-api.test.js | 30 + tests/resources.test.js | 41 +- tests/types/consumer.ts | 6 + tests/types/tsconfig.json | 10 + tsconfig.build.json | 2 +- tsconfig.json | 9 +- tsconfig.rollup.json | 13 + types-internal/fleetbase-sdk.d.ts | 56 +- types/cart-store.d.ts | 13 - types/customer-store.d.ts | 7 - types/fleetbase-sdk.d.ts | 56 +- types/resource.d.ts | 6 +- types/resources/cart.d.ts | 28 +- types/resources/category.d.ts | 10 +- types/resources/checkout.d.ts | 38 +- types/resources/customer.d.ts | 36 +- types/resources/delivery-service-quote.d.ts | 28 +- types/resources/food-truck.d.ts | 6 +- types/resources/network.d.ts | 32 +- types/resources/order-actions.d.ts | 2 +- types/resources/order.d.ts | 5 +- types/resources/payment-gateway.d.ts | 16 +- types/resources/product.d.ts | 28 +- types/resources/review.d.ts | 15 +- types/resources/store-hour.d.ts | 12 +- types/resources/store-location.d.ts | 24 +- types/resources/store.d.ts | 22 +- types/store.d.ts | 12 +- types/storefront.d.ts | 124 +- types/types.d.ts | 20 + types/utils/array.d.ts | 2 +- types/utils/format-currency.d.ts | 2 +- types/utils/get-countries.d.ts | 5 +- types/utils/is-email.d.ts | 2 +- types/utils/is-empty.d.ts | 2 +- types/utils/is-key-valid.d.ts | 2 +- types/utils/is-phone.d.ts | 2 +- vitest.config.js | 4 +- 96 files changed, 2023 insertions(+), 7267 deletions(-) delete mode 100644 .github/workflows/codeql.yml create mode 100644 docs/api-contract.md delete mode 100644 src/cart-store.js delete mode 100644 src/customer-store.js rename src/{index.js => index.ts} (100%) rename src/{resource.js => resource.ts} (68%) rename src/{resources.js => resources.ts} (100%) delete mode 100644 src/resources/cart.js create mode 100644 src/resources/cart.ts delete mode 100644 src/resources/category.js create mode 100644 src/resources/category.ts delete mode 100644 src/resources/checkout.js create mode 100644 src/resources/checkout.ts delete mode 100644 src/resources/customer.js create mode 100644 src/resources/customer.ts rename src/resources/{delivery-service-quote.js => delivery-service-quote.ts} (58%) rename src/resources/{food-truck.js => food-truck.ts} (51%) rename src/resources/{network.js => network.ts} (51%) delete mode 100644 src/resources/order-actions.js create mode 100644 src/resources/order-actions.ts delete mode 100644 src/resources/order.js create mode 100644 src/resources/order.ts rename src/resources/{payment-gateway.js => payment-gateway.ts} (73%) rename src/resources/{product.js => product.ts} (52%) delete mode 100644 src/resources/review.js create mode 100644 src/resources/review.ts rename src/resources/{store-hour.js => store-hour.ts} (77%) rename src/resources/{store-location.js => store-location.ts} (68%) delete mode 100644 src/resources/store.js create mode 100644 src/resources/store.ts delete mode 100644 src/store.js create mode 100644 src/store.ts delete mode 100644 src/storefront.js create mode 100644 src/storefront.ts create mode 100644 src/types.ts delete mode 100644 src/utils/array.js create mode 100644 src/utils/array.ts rename src/utils/{format-currency.js => format-currency.ts} (76%) rename src/utils/{get-countries.js => get-countries.ts} (81%) rename src/utils/{index.js => index.ts} (100%) rename src/utils/{is-email.js => is-email.ts} (100%) delete mode 100644 src/utils/is-empty.js create mode 100644 src/utils/is-empty.ts rename src/utils/{is-key-valid.js => is-key-valid.ts} (77%) rename src/utils/{is-phone.js => is-phone.ts} (100%) create mode 100644 tests/contracts/public-api.snapshot.json create mode 100644 tests/public-api.test.js create mode 100644 tests/types/tsconfig.json create mode 100644 tsconfig.rollup.json delete mode 100644 types/cart-store.d.ts delete mode 100644 types/customer-store.d.ts create mode 100644 types/types.d.ts diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml deleted file mode 100644 index 474c9dc..0000000 --- a/.github/workflows/codeql.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: CodeQL - -on: - push: - branches: [main] - pull_request: - branches: [main] - schedule: - - cron: '17 3 * * 1' - -permissions: - actions: read - contents: read - security-events: write - -concurrency: - group: codeql-${{ github.ref }} - cancel-in-progress: true - -jobs: - analyze: - name: JavaScript analysis - runs-on: ubuntu-latest - timeout-minutes: 20 - steps: - - uses: actions/checkout@v6 - - uses: github/codeql-action/init@v4 - with: - languages: javascript-typescript - - uses: github/codeql-action/analyze@v4 diff --git a/README.md b/README.md index cb84dd4..a9bffa1 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,6 @@

CI - CodeQL npm version npm downloads per week minified and compressed bundle size @@ -186,7 +185,7 @@ pnpm run check `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 packed tarball through npm, pnpm, Yarn, and Bun. -See [CONTRIBUTING.md](CONTRIBUTING.md) for the development workflow, [SECURITY.md](SECURITY.md) for vulnerability reporting, and [docs/releasing.md](docs/releasing.md) for the release process. Existing consumers upgrading from v1.1 can use the [v1.2 migration guide](docs/migration-v1.2.md). +See [CONTRIBUTING.md](CONTRIBUTING.md) for the development workflow, [SECURITY.md](SECURITY.md) for vulnerability reporting, [docs/api-contract.md](docs/api-contract.md) for the audited endpoint mapping, and [docs/releasing.md](docs/releasing.md) for the release process. Existing consumers upgrading from v1.1 can use the [v1.2 migration guide](docs/migration-v1.2.md). ## License diff --git a/dist/@storefront.min.js b/dist/@storefront.min.js index 0698959..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).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:C(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)||D(t,e)||x()}function R(t){return function(t){if(Array.isArray(t))return r(t)}(t)||k(t)||D(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 D(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 C(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 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-rate",n])}return w(t,dt),g(t)}();z("resource","ServiceRate",Dt);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-quote",n])}return w(t,dt),g(t,[{key:"fromPreliminary",value:function(){}},{key:"fromPayload",value:function(){}}])}();z("resource","ServiceQuote",Ct);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 De(t){return Te.isPlainObject(t)||Te.isArray(t)}function Ce(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=Ce(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(De)}(t)||(Te.isFileList(t)||Te.endsWith(r,"[]"))&&(s=Te.toArray(t)))return r=Ce(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!!De(t)||(e.append(Le(i,r,o),u(t)),!1)}var h=[],l=Object.assign(Fe,{defaultVisitor:c,convertValue:u,isVisitable:De});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(){super(...arguments)}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"number"==typeof t.size?!t.size:"number"==typeof t.length&&"function"!==r&&!t.length}const{isArray:tn}=Array;class en 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",en);const rn=new ht({count:function(t,e={}){const r={};return t&&(r.store=t),this.adapter.get(`${this.namespace}/count`,r,e)}});class nn extends en{constructor(t={},e=void 0,r={}){super(t,e,"review",r)}getMedia(){return this.getPhotos()}getPhotos(){return this.getAttribute("photos")??[]}getVideos(){return this.getMedia().filter((t=>t?.type?.startsWith("video/")))}}z("resource","Review",nn);const on=6048e5,an=Symbol.for("constructDateFrom");function sn(t,e){return"function"==typeof t?t(e):t&&"object"==typeof t&&an in t?t[an](e):t instanceof Date?new t.constructor(e):new Date(e)}function un(t,e){return sn(e||t,t)}function cn(t,e,r){const n=un(t,r?.in);return isNaN(e)?sn(r?.in||t,NaN):e?(n.setDate(n.getDate()+e),n):n}let hn={};function ln(){return hn}function dn(t,e){const r=ln(),n=e?.weekStartsOn??e?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,i=un(t,e?.in),o=i.getDay(),a=(o=o.getTime()?n+1:r.getTime()>=s.getTime()?n:n-1}function gn(t){const e=un(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 vn(t,e){const r=un(t,e?.in);return r.setHours(0,0,0,0),r}function yn(t,e,r){const[n,i]=function(t,...e){const r=sn.bind(null,e.find((t=>"object"==typeof t)));return e.map(r)}(0,t,e),o=vn(n),a=vn(i),s=+o-gn(o),u=+a-gn(a);return Math.round((s-u)/864e5)}function mn(t){return!(!((e=t)instanceof Date||"object"==typeof e&&"[object Date]"===Object.prototype.toString.call(e))&&"number"!=typeof t||isNaN(+un(t)));var e}const wn={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 bn(t){return(e={})=>{const r=e.width?String(e.width):t.defaultWidth;return t.formats[r]||t.formats[t.defaultWidth]}}const kn={date:bn({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:bn({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:bn({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},xn={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function An(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 En(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 Sn;const On={code:"en-US",formatDistance:(t,e,r)=>{let n;const i=wn[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:kn,formatRelative:(t,e,r,n)=>xn[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:An({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:An({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:An({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:An({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:An({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:(Sn={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:t=>parseInt(t,10)},(t,e={})=>{const r=t.match(Sn.matchPattern);if(!r)return null;const n=r[0],i=t.match(Sn.parsePattern);if(!i)return null;let o=Sn.valueCallback?Sn.valueCallback(i[0]):i[0];return o=e.valueCallback?e.valueCallback(o):o,{value:o,rest:t.slice(n.length)}}),era:En({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:En({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:En({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:En({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:En({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 Tn(t,e){const r=un(t,e?.in),n=yn(r,function(t,e){const r=un(t,e?.in);return r.setFullYear(r.getFullYear(),0,1),r.setHours(0,0,0,0),r}(r));return n+1}function Rn(t,e){const r=un(t,e?.in),n=+fn(r)-+function(t,e){const r=pn(t,e),n=sn(t,0);return n.setFullYear(r,0,4),n.setHours(0,0,0,0),fn(n)}(r);return Math.round(n/on)+1}function Pn(t,e){const r=un(t,e?.in),n=r.getFullYear(),i=ln(),o=e?.firstWeekContainsDate??e?.locale?.options?.firstWeekContainsDate??i.firstWeekContainsDate??i.locale?.options?.firstWeekContainsDate??1,a=sn(e?.in||t,0);a.setFullYear(n+1,0,o),a.setHours(0,0,0,0);const s=dn(a,e),u=sn(e?.in||t,0);u.setFullYear(n,0,o),u.setHours(0,0,0,0);const c=dn(u,e);return+r>=+s?n+1:+r>=+c?n:n-1}function jn(t,e){const r=un(t,e?.in),n=+dn(r,e)-+function(t,e){const r=ln(),n=e?.firstWeekContainsDate??e?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,i=Pn(t,e),o=sn(e?.in||t,0);return o.setFullYear(i,0,n),o.setHours(0,0,0,0),dn(o,e)}(r,e);return Math.round(n/on)+1}function Dn(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 Dn("yy"===e?n%100:n,e.length)},M(t,e){const r=t.getMonth();return"M"===e?String(r+1):Dn(r+1,2)},d:(t,e)=>Dn(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)=>Dn(t.getHours()%12||12,e.length),H:(t,e)=>Dn(t.getHours(),e.length),m:(t,e)=>Dn(t.getMinutes(),e.length),s:(t,e)=>Dn(t.getSeconds(),e.length),S(t,e){const r=e.length,n=t.getMilliseconds();return Dn(Math.trunc(n*Math.pow(10,r-3)),e.length)}},Ln="midnight",Fn="noon",Nn="morning",qn="afternoon",_n="evening",Mn="night",$n={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=Pn(t,n),o=i>0?i:1-i;if("YY"===e){return Dn(o%100,2)}return"Yo"===e?r.ordinalNumber(o,{unit:"year"}):Dn(o,e.length)},R:function(t,e){return Dn(pn(t),e.length)},u:function(t,e){return Dn(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 Dn(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 Dn(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 Dn(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=jn(t,n);return"wo"===e?r.ordinalNumber(i,{unit:"week"}):Dn(i,e.length)},I:function(t,e,r){const n=Rn(t);return"Io"===e?r.ordinalNumber(n,{unit:"week"}):Dn(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=Tn(t);return"Do"===e?r.ordinalNumber(n,{unit:"dayOfYear"}):Dn(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 Dn(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 Dn(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 Dn(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?Fn:0===n?Ln: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?_n:n>=12?qn:n>=4?Nn:Mn,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"}):Dn(n,e.length)},k:function(t,e,r){let n=t.getHours();return 0===n&&(n=24),"ko"===e?r.ordinalNumber(n,{unit:"hour"}):Dn(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 Hn(n);case"XXXX":case"XX":return In(n);default:return In(n,":")}},x:function(t,e,r){const n=t.getTimezoneOffset();switch(e){case"x":return Hn(n);case"xxxx":case"xx":return In(n);default:return In(n,":")}},O:function(t,e,r){const n=t.getTimezoneOffset();switch(e){case"O":case"OO":case"OOO":return"GMT"+zn(n,":");default:return"GMT"+In(n,":")}},z:function(t,e,r){const n=t.getTimezoneOffset();switch(e){case"z":case"zz":case"zzz":return"GMT"+zn(n,":");default:return"GMT"+In(n,":")}},t:function(t,e,r){return Dn(Math.trunc(+t/1e3),e.length)},T:function(t,e,r){return Dn(+t,e.length)}};function zn(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+Dn(o,2)}function Hn(t,e){if(t%60==0){return(t>0?"-":"+")+Dn(Math.abs(t)/60,2)}return In(t,e)}function In(t,e=""){const r=t>0?"-":"+",n=Math.abs(t);return r+Dn(Math.trunc(n/60),2)+e+Dn(n%60,2)}const Bn=(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"})}},Un=(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"})}},Wn={p:Un,P:(t,e)=>{const r=t.match(/(P+)(p+)?/)||[],n=r[1],i=r[2];if(!i)return Bn(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}}",Bn(n,e)).replace("{{time}}",Un(i,e))}},Yn=/^D+$/,Qn=/^Y+$/,Gn=["D","DD","YY","YYYY"];function Jn(t){return Yn.test(t)}function Xn(t){return Qn.test(t)}function Kn(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),Gn.includes(t))throw new RangeError(n)}const Vn=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Zn=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,ti=/^'([^]*?)'?$/,ei=/''/g,ri=/[a-zA-Z]/;function ni(t,e,r){const n=ln(),i=n.locale??On,o=n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,a=n.weekStartsOn??n.locale?.options?.weekStartsOn??0,s=un(t,r?.in);if(!mn(s))throw new RangeError("Invalid time value");let u=e.match(Zn).map((t=>{const e=t[0];if("p"===e||"P"===e){return(0,Wn[e])(t,i.formatLong)}return t})).join("").match(Vn).map((t=>{if("''"===t)return{isToken:!1,value:"'"};const e=t[0];if("'"===e)return{isToken:!1,value:ii(t)};if($n[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}}));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;(Xn(n)||Jn(n))&&Kn(n,e,String(t));return(0,$n[n[0]])(s,n,i.localize,c)})).join("")}function ii(t){const e=t.match(ti);return e?e[1].replace(ei,"'"):t}class oi{subPriority=0;validate(t,e){return!0}}class ai extends oi{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 si extends oi{priority=10;subPriority=-1;constructor(t,e){super(),this.context=t||(t=>sn(e,t))}set(t,e){return e.timestampIsSet?t:sn(t,function(t,e){const r=function(t){return"function"==typeof t&&t.prototype?.constructor===t}(e)?new e(0):sn(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 ui{run(t,e,r,n){const i=this.parse(t,e,r,n);return i?{setter:new ai(i.value,this.validate,this.set,this.priority,this.subPriority),rest:i.rest}:null}validate(t,e,r){return!0}}const ci=/^(1[0-2]|0?\d)/,hi=/^(3[0-1]|[0-2]?\d)/,li=/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,di=/^(5[0-3]|[0-4]?\d)/,fi=/^(2[0-3]|[0-1]?\d)/,pi=/^(2[0-4]|[0-1]?\d)/,gi=/^(1[0-1]|0?\d)/,vi=/^(1[0-2]|0?\d)/,yi=/^[0-5]?\d/,mi=/^[0-5]?\d/,wi=/^\d/,bi=/^\d{1,2}/,ki=/^\d{1,3}/,xi=/^\d{1,4}/,Ai=/^-?\d+/,Ei=/^-?\d/,Si=/^-?\d{1,2}/,Oi=/^-?\d{1,3}/,Ti=/^-?\d{1,4}/,Ri=/^([+-])(\d{2})(\d{2})?|Z/,Pi=/^([+-])(\d{2})(\d{2})|Z/,ji=/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,Di=/^([+-])(\d{2}):(\d{2})|Z/,Ci=/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/;function Li(t,e){return t?{value:e(t.value),rest:t.rest}:t}function Fi(t,e){const r=e.match(t);return r?{value:parseInt(r[0],10),rest:e.slice(r[0].length)}:null}function Ni(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 qi(t){return Fi(Ai,t)}function _i(t,e){switch(t){case 1:return Fi(wi,e);case 2:return Fi(bi,e);case 3:return Fi(ki,e);case 4:return Fi(xi,e);default:return Fi(new RegExp("^\\d{1,"+t+"}"),e)}}function Mi(t,e){switch(t){case 1:return Fi(Ei,e);case 2:return Fi(Si,e);case 3:return Fi(Oi,e);case 4:return Fi(Ti,e);default:return Fi(new RegExp("^-?\\d{1,"+t+"}"),e)}}function $i(t){switch(t){case"morning":return 4;case"evening":return 17;case"pm":case"noon":case"afternoon":return 12;default:return 0}}function zi(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 Hi(t){return t%400==0||t%4==0&&t%100!=0}const Ii=[31,28,31,30,31,30,31,31,30,31,30,31],Bi=[31,29,31,30,31,30,31,31,30,31,30,31];function Ui(t,e,r){const n=ln(),i=r?.weekStartsOn??r?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,o=un(t,r?.in),a=o.getDay(),s=7-i;return cn(o,e<0||e>6?e-(a+s)%7:((e%7+7)%7+s)%7-(a+s)%7,r)}function Wi(t,e,r){const n=un(t,r?.in),i=function(t,e){const r=un(t,e?.in).getDay();return 0===r?7:r}(n,r);return cn(n,e-i,r)}const Yi={G:new class extends ui{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 ui{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 Li(_i(4,t),n);case"yo":return Li(r.ordinalNumber(t,{unit:"year"}),n);default:return Li(_i(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=zi(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 ui{priority=130;parse(t,e,r){const n=t=>({year:t,isTwoDigitYear:"YY"===e});switch(e){case"Y":return Li(_i(4,t),n);case"Yo":return Li(r.ordinalNumber(t,{unit:"year"}),n);default:return Li(_i(e.length,t),n)}}validate(t,e){return e.isTwoDigitYear||e.year>0}set(t,e,r,n){const i=Pn(t,n);if(r.isTwoDigitYear){const e=zi(r.year,i);return t.setFullYear(e,0,n.firstWeekContainsDate),t.setHours(0,0,0,0),dn(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),dn(t,n)}incompatibleTokens=["y","R","u","Q","q","M","L","I","d","D","i","t","T"]},R:new class extends ui{priority=130;parse(t,e){return Mi("R"===e?4:e.length,t)}set(t,e,r){const n=sn(t,0);return n.setFullYear(r,0,4),n.setHours(0,0,0,0),fn(n)}incompatibleTokens=["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"]},u:new class extends ui{priority=130;parse(t,e){return Mi("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 ui{priority=120;parse(t,e,r){switch(e){case"Q":case"QQ":return _i(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 ui{priority=120;parse(t,e,r){switch(e){case"q":case"qq":return _i(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 ui{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 Li(Fi(ci,t),n);case"MM":return Li(_i(2,t),n);case"Mo":return Li(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 ui{priority=110;parse(t,e,r){const n=t=>t-1;switch(e){case"L":return Li(Fi(ci,t),n);case"LL":return Li(_i(2,t),n);case"Lo":return Li(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 ui{priority=100;parse(t,e,r){switch(e){case"w":return Fi(di,t);case"wo":return r.ordinalNumber(t,{unit:"week"});default:return _i(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,e,r,n){return dn(function(t,e,r){const n=un(t,r?.in),i=jn(n,r)-e;return n.setDate(n.getDate()-7*i),un(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 ui{priority=100;parse(t,e,r){switch(e){case"I":return Fi(di,t);case"Io":return r.ordinalNumber(t,{unit:"week"});default:return _i(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,e,r){return fn(function(t,e,r){const n=un(t,r?.in),i=Rn(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 ui{priority=90;subPriority=1;parse(t,e,r){switch(e){case"d":return Fi(hi,t);case"do":return r.ordinalNumber(t,{unit:"date"});default:return _i(e.length,t)}}validate(t,e){const r=Hi(t.getFullYear()),n=t.getMonth();return r?e>=1&&e<=Bi[n]:e>=1&&e<=Ii[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 ui{priority=90;subpriority=1;parse(t,e,r){switch(e){case"D":case"DD":return Fi(li,t);case"Do":return r.ordinalNumber(t,{unit:"date"});default:return _i(e.length,t)}}validate(t,e){return Hi(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 ui{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=Ui(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["D","i","e","c","t","T"]},e:new class extends ui{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 Li(_i(e.length,t),i);case"eo":return Li(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=Ui(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 ui{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 Li(_i(e.length,t),i);case"co":return Li(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=Ui(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 ui{priority=90;parse(t,e,r){const n=t=>0===t?7:t;switch(e){case"i":case"ii":return _i(e.length,t);case"io":return r.ordinalNumber(t,{unit:"day"});case"iii":return Li(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 Li(r.day(t,{width:"narrow",context:"formatting"}),n);case"iiiiii":return Li(r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n);default:return Li(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=Wi(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 ui{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($i(r),0,0,0),t}incompatibleTokens=["b","B","H","k","t","T"]},b:new class extends ui{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($i(r),0,0,0),t}incompatibleTokens=["a","B","H","k","t","T"]},B:new class extends ui{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($i(r),0,0,0),t}incompatibleTokens=["a","b","t","T"]},h:new class extends ui{priority=70;parse(t,e,r){switch(e){case"h":return Fi(vi,t);case"ho":return r.ordinalNumber(t,{unit:"hour"});default:return _i(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 ui{priority=70;parse(t,e,r){switch(e){case"H":return Fi(fi,t);case"Ho":return r.ordinalNumber(t,{unit:"hour"});default:return _i(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 ui{priority=70;parse(t,e,r){switch(e){case"K":return Fi(gi,t);case"Ko":return r.ordinalNumber(t,{unit:"hour"});default:return _i(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 ui{priority=70;parse(t,e,r){switch(e){case"k":return Fi(pi,t);case"ko":return r.ordinalNumber(t,{unit:"hour"});default:return _i(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 ui{priority=60;parse(t,e,r){switch(e){case"m":return Fi(yi,t);case"mo":return r.ordinalNumber(t,{unit:"minute"});default:return _i(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 ui{priority=50;parse(t,e,r){switch(e){case"s":return Fi(mi,t);case"so":return r.ordinalNumber(t,{unit:"second"});default:return _i(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 ui{priority=30;parse(t,e){return Li(_i(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 ui{priority=10;parse(t,e){switch(e){case"X":return Ni(Ri,t);case"XX":return Ni(Pi,t);case"XXXX":return Ni(ji,t);case"XXXXX":return Ni(Ci,t);default:return Ni(Di,t)}}set(t,e,r){return e.timestampIsSet?t:sn(t,t.getTime()-gn(t)-r)}incompatibleTokens=["t","T","x"]},x:new class extends ui{priority=10;parse(t,e){switch(e){case"x":return Ni(Ri,t);case"xx":return Ni(Pi,t);case"xxxx":return Ni(ji,t);case"xxxxx":return Ni(Ci,t);default:return Ni(Di,t)}}set(t,e,r){return e.timestampIsSet?t:sn(t,t.getTime()-gn(t)-r)}incompatibleTokens=["t","T","X"]},t:new class extends ui{priority=40;parse(t){return qi(t)}set(t,e,r){return[sn(t,1e3*r),{timestampIsSet:!0}]}incompatibleTokens="*"},T:new class extends ui{priority=20;parse(t){return qi(t)}set(t,e,r){return[sn(t,r),{timestampIsSet:!0}]}incompatibleTokens="*"}},Qi=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Gi=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Ji=/^'([^]*?)'?$/,Xi=/''/g,Ki=/\S/,Vi=/[a-zA-Z]/;function Zi(t,e,r,n){const i=()=>sn(r,NaN),o=Object.assign({},ln()),a=o.locale??On,s=o.firstWeekContainsDate??o.locale?.options?.firstWeekContainsDate??1,u=o.weekStartsOn??o.locale?.options?.weekStartsOn??0;if(!e)return t?i():un(r,n?.in);const c={firstWeekContainsDate:s,weekStartsOn:u,locale:a},h=[new si(n?.in,r)],l=e.match(Gi).map((t=>{const e=t[0];if(e in Wn){return(0,Wn[e])(t,a.formatLong)}return t})).join("").match(Qi),d=[];for(let r of l){Xn(r)&&Kn(r,e,t),Jn(r)&&Kn(r,e,t);const n=r[0],o=Yi[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(Vi))throw new RangeError("Format string contains an unescaped latin alphabet character `"+n+"`");if("''"===r?r="'":"'"===n&&(r=r.match(Ji)[1].replace(Xi,"'")),0!==t.indexOf(r))return i();t=t.slice(r.length)}}if(t.length>0&&Ki.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=un(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 to extends en{constructor(t={},e=void 0,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(!mn(t)||!mn(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 Zi(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 Zi(t,e?"HH:mm:ss":"HH:mm",new Date)}get humanReadableHoursRange(){return mn(this.startDateInstance)&&mn(this.endDateInstance)?`${ni(this.startDateInstance,"p")} - ${ni(this.endDateInstance,"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",to);class eo extends en{constructor(t={},e=void 0,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(){return new et((this.getAttribute("hours")||[]).map((t=>new to(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");return"string"==typeof t?t:this.storeData?.id||this.storeData?.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=ni(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 nn(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 eo(t,this.adapter)))))))}getLocation(t){return this.adapter.get(`locations/${t}`,{store:this.id}).then((t=>new eo(t,this.adapter)))}getPaymentGateways(t={}){return this.adapter.get("gateways",t).then((t=>new et(t.map((t=>new ro(t,this.adapter))))))}getPaymentGateway(t){return this.adapter.get(`gateways/${t}`).then((t=>new ro(t,this.adapter)))}}z("resource","Store",no);class io extends en{constructor(t={},e=void 0,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 no(t,this.adapter):null}getReviews(){return this.adapter.get("reviews",{store:this.id}).then((t=>new et(t.map((t=>new nn(t,this.adapter))))))}}z("resource","Product",io);class oo extends en{constructor(t={},e=void 0,r={}){super(t,e,"category",r)}getProducts(){return this.adapter.get("products",{category:this.id}).then((t=>new et(t.map((t=>new io(t,this.adapter))))))}}z("resource","Category",oo);const ao=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 so extends en{constructor(t={},e=void 0,r={}){super(t,e,"customer",{actions:ao,...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(){return this.getAttribute("token")}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",so);const{isArray:uo}=Array,co=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 ho extends en{constructor(t={},e=void 0,r={}){super(t,e,"cart",{actions:co,...r})}add(t,e=1,r={},n={}){return t instanceof io&&(t=t.id),this.store.add(this.id,t,e,r,n)}update(t,e,r={},n={}){return this.store.update(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 uo(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",ho);class lo extends en{constructor(t={},e=void 0,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",no,t)}async getStoreLocations(t={}){return this.getResourceCollection("store-locations",eo,t)}async getCategories(t={}){return this.getResourceCollection("categories",oo,t)}async search(t,e={}){return this.getResourceCollection("search",io,{query:t,with_store:!0,...e})}async lookupStore(t){const e=await this.adapter.get(`lookup/${t}`);return new no(e,this.adapter)}async getReviews(t,e={}){return this.getResourceCollection("reviews",nn,{store:t,...e})}async getPaymentGateways(t={}){return this.getResourceCollection("gateways",ro,t)}}z("resource","Network",lo);class fo extends Ct{constructor(t={},e=void 0,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(){return this.fetchServiceQuotesFromCart(...arguments)}async fetchServiceQuotesFromCart(t,e,r,n="storefront",i=!1){t?.id&&(t=t.id),e?.id&&(e=e.id),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 tn(o)?new et(o.map((t=>new fo(t,this.adapter)))):new fo(o,this.adapter)}static async getFromCart(t,e,r,n,i="storefront",o=!1){return new fo(t).fetchServiceQuotesFromCart(e,r,n,i,o)}}z("resource","DeliveryServiceQuote",fo);class po extends gt{constructor(t={},e=void 0,r={}){super(t,e,r)}}z("resource","Order",po);const go=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 po(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 vo extends en{constructor(t={},e=void 0,r={}){super(t,e,"checkout",{actions:go,...r})}initialize(){return this.store.initialize(...arguments)}captureOrder(){return this.store.captureOrder(...arguments)}createStripeSetupIntent(){return this.store.createStripeSetupIntent(...arguments)}updateStripePaymentIntent(){return this.store.updateStripePaymentIntent(...arguments)}getStatus(){return this.store.getStatus(...arguments)}captureQPay(){return this.store.captureQPay(...arguments)}captureQPayCallback(){return this.store.captureQPayCallback(...arguments)}}z("resource","Checkout",vo);class yo extends en{constructor(t={},e=void 0,r={}){super(t,e,"food-truck",r)}}function mo(t){return lt(t)?t.id:t}z("resource","FoodTruck",yo);const wo=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:mo(t),...e},r)},getReceipt:function(t,e={},r={}){return this.adapter.post(`${this.namespace}/receipt`,{order:mo(t),...e},r)}});class bo{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(rn),this.customers=new Kr("customer",this.adapter).extendActions(ao),this.cart=new Kr("cart",this.adapter).extendActions(co),this.checkout=new Kr("checkout",this.adapter).extendActions(go),this.orders=new Kr("order",this.adapter).extendActions(wo),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 io(t,this.adapter))))))}hydrateOwner(t={}){return!0===t?.is_network?new lo(t,this.adapter):new no(t,this.adapter)}static newInstance(){return new bo(...arguments)}setAdapter(t){return this.adapter=t,this.initializeStores()}getAdapter(){return this.adapter}}t.Cart=ho,t.Category=oo,t.Checkout=vo,t.Customer=so,t.DeliveryServiceQuote=fo,t.FoodTruck=yo,t.Network=lo,t.Order=po,t.PaymentGateway=ro,t.Product=io,t.Review=nn,t.Store=no,t.StoreHour=to,t.StoreLocation=eo,t.default=bo,t.lookup=I,Object.defineProperty(t,"__esModule",{value:!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).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 15d802e..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.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.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/order.js","../src/resources/checkout.js","../src/resources/food-truck.js","../src/resources/order-actions.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 const objectType = typeof obj;\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\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 {import('@fleetbase/sdk').Adapter} adapter\n * @return {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 = undefined, options = {}) {\n super(attributes, adapter, 'review', options);\n }\n\n getMedia() {\n return this.getPhotos();\n }\n\n getPhotos() {\n return this.getAttribute('photos') ?? [];\n }\n\n getVideos() {\n return this.getMedia().filter((media) => media?.type?.startsWith('video/'));\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 * **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","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 = undefined, 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\n if (!isValid(start) || !isValid(end)) {\n return false;\n }\n\n const diff = Math.abs(start.getTime() - end.getTime());\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 if (typeof start !== 'string') {\n return null;\n }\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 if (typeof end !== 'string') {\n return null;\n }\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.getAttribute('start')} - ${this.getAttribute('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 = undefined, 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.length > 0 && 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 if (schedule[hour.day]) {\n schedule[hour.day].pushObject(hour);\n }\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 = undefined, 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 get isQPayGateway() {\n return this.type === 'qpay' || this.code === 'qpay';\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 = undefined, 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 getTags(params = {}) {\n return this.adapter.get('tags', params);\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, this.adapter);\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 = undefined, 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 images() {\n return this.getAttribute('images') ?? [];\n }\n\n videos() {\n return this.getAttribute('videos') ?? [];\n }\n\n hours() {\n return this.getAttribute('hours') ?? [];\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 = undefined, 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 = undefined, 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 {import('@fleetbase/sdk').Adapter} adapter\n * @return {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 return this.performAuthorizedRequest('customers/register-device', { token, platform }, 'POST');\n }\n\n performAuthorizedRequest(endpoint, params = {}, method = 'GET', options = {}) {\n const requestOptions = {\n ...options,\n headers: {\n ...options.headers,\n 'Customer-Token': this.token,\n },\n };\n\n return this.adapter[method.toLowerCase()](endpoint, params, requestOptions);\n }\n\n async getSavedPlaces() {\n const places = await this.performAuthorizedRequest('customers/places');\n return new Collection(places.map((attributes) => new Place(attributes, this.adapter)));\n }\n\n async getOrderHistory(params = {}) {\n const orders = await this.performAuthorizedRequest('customers/orders', params);\n return new Collection(orders.map((attributes) => new Order(attributes, this.adapter)));\n }\n\n getStripeEphemeralKey(params = {}) {\n return this.performAuthorizedRequest('customers/stripe-ephemeral-key', params, 'POST');\n }\n\n getStripeSetupIntent(params = {}) {\n return this.performAuthorizedRequest('customers/stripe-setup-intent', params, 'POST');\n }\n\n startAccountClosure(params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/account-closure', params, 'POST', options);\n }\n\n confirmAccountClosure(code, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/confirm-account-closure', { code, ...params }, 'POST', options);\n }\n\n requestPhoneVerification(phone, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/request-phone-verification', { phone, ...params }, 'POST', options);\n }\n\n verifyPhoneNumber(code, phone, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/verify-phone-number', { code, phone, ...params }, 'POST', options);\n }\n\n updateContactAlias(attributes = {}, options = {}) {\n return this.performAuthorizedRequest(`contacts/${this.id}`, attributes, 'PUT', options).then((response) => {\n this.syncAttributes(response);\n return this;\n });\n }\n}\n\nregister('resource', 'Customer', Customer);\n","export function isPhone(phone = '') {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/.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 = undefined, 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 return this.contents().reduce((subtotal, cartItem) => subtotal + Number(cartItem?.subtotal || 0), 0);\n }\n\n contents() {\n const items = this.getAttribute('items', []);\n return isArray(items) ? items : [];\n }\n\n hasProduct(productId) {\n return this.contents().findIndex((cartItem) => cartItem.product_id === productId) !== -1;\n }\n\n get isEmpty() {\n return this.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 = undefined, 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 = undefined, 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 || (attributes && typeof attributes.get === 'function' && typeof attributes.post === 'function')) {\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 {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 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 }\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 { Order as FleetbaseOrder, register } from '@fleetbase/sdk';\n\nexport default class Order extends FleetbaseOrder {\n constructor(attributes = {}, adapter = undefined, options = {}) {\n super(attributes, adapter, options);\n }\n}\n\nregister('resource', 'Order', Order);\n","import Resource from '../resource.js';\nimport Order from './order.js';\nimport { 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, this.adapter));\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 getStatus: function (checkout, token, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.get(`${this.namespace}/status`, { checkout, token }, options);\n },\n\n captureQPay: function (checkout, params = {}, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.post(`${this.namespace}/capture-qpay`, { checkout, ...params }, options);\n },\n\n captureQPayCallback: function (checkout, params = {}, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.get(`${this.namespace}/capture-qpay`, { checkout, ...params }, options);\n },\n});\n\nexport default class Checkout extends Resource {\n constructor(attributes = {}, adapter = undefined, 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 createStripeSetupIntent() {\n return this.store.createStripeSetupIntent(...arguments);\n }\n\n updateStripePaymentIntent() {\n return this.store.updateStripePaymentIntent(...arguments);\n }\n\n getStatus() {\n return this.store.getStatus(...arguments);\n }\n\n captureQPay() {\n return this.store.captureQPay(...arguments);\n }\n\n captureQPayCallback() {\n return this.store.captureQPayCallback(...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 = undefined, options = {}) {\n super(attributes, adapter, 'food-truck', options);\n }\n}\n\nregister('resource', 'FoodTruck', FoodTruck);\n","import { StoreActions, isResource } from '@fleetbase/sdk';\n\nfunction idFor(value) {\n return isResource(value) ? value.id : value;\n}\n\nexport const orderActions = new StoreActions({\n create: undefined,\n update: undefined,\n findAll: undefined,\n query: undefined,\n queryRecord: undefined,\n\n completePickup: function (order, params = {}, options = {}) {\n return this.adapter.put(`${this.namespace}/picked-up`, { order: idFor(order), ...params }, options);\n },\n\n getReceipt: function (order, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/receipt`, { order: idFor(order), ...params }, options);\n },\n});\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, Order } 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 { orderActions } from './resources/order-actions.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 this.orders = new StorefrontStore('order', this.adapter).extendActions(orderActions);\n\n return this;\n }\n\n /**\n * Loads information about this storefront.\n *\n * @param {{ resource?: boolean }} options\n * @returns {Promise | Store | Network>}\n */\n about(options = {}) {\n return this.adapter.get('about').then((attributes) => (options.resource ? this.hydrateOwner(attributes) : attributes));\n }\n\n /** @returns {Promise} Loads the storefront owner as a typed resource. */\n getOwner() {\n return this.about({ resource: true });\n }\n\n /**\n * Looks up a specific store or network by public ID.\n *\n * @param {string} id\n * @param {{ resource?: boolean }} options\n * @returns {Promise | Store | Network>}\n */\n lookup(id, options = {}) {\n return this.adapter.get(`lookup/${id}`).then((attributes) => (options.resource ? this.hydrateOwner(attributes) : attributes));\n }\n\n /**\n * @param {string} id\n * @returns {Promise}\n */\n lookupResource(id) {\n return this.lookup(id, { resource: true });\n }\n\n /**\n * Searches products in the current store or network.\n *\n * @param {string} query\n * @param {Record} options\n * @returns {Promise>}\n */\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, Order, 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":["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","undefined","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","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","storeKey","detectAdapter","initializeStores","categories","foodTrucks","customers","about","hydrateOwner","getOwner","lookupResource","is_network","newInstance"],"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":"2PAAA,SAASA,EAAEA,EAAEC,GAAGC,KAAKC,EAAEH,EAAEE,KAAKE,EAAEH,CAAC,CAAC,SAASA,EAAED,EAAEC,IAAI,MAAMA,GAAGA,EAAED,EAAEK,UAAUJ,EAAED,EAAEK,QAAQ,IAAI,IAAIC,EAAE,EAAEC,EAAEC,MAAMP,GAAGK,EAAEL,EAAEK,IAAIC,EAAED,GAAGN,EAAEM,GAAG,OAAOC,CAAC,CAAC,SAASD,EAAEN,GAAG,GAAGQ,MAAMC,QAAQT,GAAG,OAAOA,CAAC,CAAC,SAASO,EAAEP,GAAG,QAAG,IAASA,EAAE,MAAM,IAAIU,eAAe,6DAA6D,OAAOV,CAAC,CAAC,SAASW,EAAEV,GAAG,IAAIK,EAAE,GAAGC,GAAE,EAAG,SAASI,EAAEL,EAAEK,GAAG,OAAOJ,GAAE,EAAGI,EAAE,IAAIC,SAAO,SAAWZ,GAAGA,EAAEC,EAAEK,GAAGK,GAAI,IAAG,CAACE,MAAK,EAAGC,MAAM,IAAId,EAAEW,EAAE,GAAG,CAAC,OAAOL,EAAE,oBAAoBS,QAAQA,OAAOC,UAAU,cAAc,WAAW,OAAOd,IAAI,EAAEI,EAAEW,KAAK,SAASjB,GAAG,OAAOO,GAAGA,GAAE,EAAGP,GAAGW,EAAE,OAAOX,EAAE,EAAE,mBAAmBC,EAAEiB,QAAQZ,EAAEY,MAAM,SAASlB,GAAG,GAAGO,EAAE,MAAMA,GAAE,EAAGP,EAAE,OAAOW,EAAE,QAAQX,EAAE,GAAG,mBAAmBC,EAAEkB,SAASb,EAAEa,OAAO,SAASnB,GAAG,OAAOO,GAAGA,GAAE,EAAGP,GAAGW,EAAE,SAASX,EAAE,GAAGM,CAAC,CAAC,SAASc,EAAEpB,GAAG,IAAIC,EAAEK,EAAEC,EAAEI,EAAE,EAAE,IAAI,oBAAoBI,SAAST,EAAES,OAAOM,cAAcd,EAAEQ,OAAOC,UAAUL,KAAK,CAAC,GAAGL,GAAG,OAAOL,EAAED,EAAEM,IAAI,OAAOL,EAAEqB,KAAKtB,GAAG,GAAGO,GAAG,OAAON,EAAED,EAAEO,IAAI,OAAO,IAAIgB,EAAEtB,EAAEqB,KAAKtB,IAAIM,EAAE,kBAAkBC,EAAE,YAAY,CAAC,MAAM,IAAIiB,UAAU,+BAA+B,CAAC,SAASD,EAAEvB,GAAG,SAASC,EAAED,GAAG,GAAGyB,OAAOzB,KAAKA,EAAE,OAAOY,QAAQc,OAAO,IAAIF,UAAUxB,EAAE,uBAAuB,IAAIC,EAAED,EAAEa,KAAK,OAAOD,QAAQe,QAAQ3B,EAAEc,OAAOc,MAAI,SAAW5B,GAAG,MAAM,CAACc,MAAMd,EAAEa,KAAKZ,EAAG,GAAE,CAAC,OAAOsB,EAAE,SAASvB,GAAGE,KAAK2B,EAAE7B,EAAEE,KAAKI,EAAEN,EAAEiB,IAAI,EAAEM,EAAEO,UAAU,CAACD,EAAE,KAAKvB,EAAE,KAAKW,KAAK,WAAW,OAAOhB,EAAEC,KAAKI,EAAEyB,MAAM7B,KAAK2B,EAAEG,WAAW,EAAEb,OAAO,SAASnB,GAAG,IAAIM,EAAEJ,KAAK2B,EAAEV,OAAO,YAAO,IAASb,EAAEM,QAAQe,QAAQ,CAACb,MAAMd,EAAEa,MAAK,IAAKZ,EAAEK,EAAEyB,MAAM7B,KAAK2B,EAAEG,WAAW,EAAEd,MAAM,SAASlB,GAAG,IAAIM,EAAEJ,KAAK2B,EAAEV,OAAO,YAAO,IAASb,EAAEM,QAAQc,OAAO1B,GAAGC,EAAEK,EAAEyB,MAAM7B,KAAK2B,EAAEG,WAAW,GAAG,IAAIT,EAAEvB,EAAE,CAAC,SAAS6B,EAAE7B,EAAEC,EAAEK,EAAEC,EAAEI,EAAES,EAAEG,GAAG,IAAI,IAAIM,EAAE7B,EAAEoB,GAAGG,GAAGU,EAAEJ,EAAEf,KAAK,CAAC,MAAMd,GAAG,YAAYM,EAAEN,EAAE,CAAC6B,EAAEhB,KAAKZ,EAAEgC,GAAGrB,QAAQe,QAAQM,GAAGL,KAAKrB,EAAEI,EAAE,CAAC,SAASsB,EAAEjC,GAAG,OAAO,WAAW,IAAIC,EAAEC,KAAKI,EAAE0B,UAAU,OAAO,IAAIpB,SAAO,SAAWL,EAAEI,GAAG,IAAIS,EAAEpB,EAAE+B,MAAM9B,EAAEK,GAAG,SAASiB,EAAEvB,GAAG6B,EAAET,EAAEb,EAAEI,EAAEY,EAAEU,EAAE,OAAOjC,EAAE,CAAC,SAASiC,EAAEjC,GAAG6B,EAAET,EAAEb,EAAEI,EAAEY,EAAEU,EAAE,QAAQjC,EAAE,CAACuB,OAAE,EAAQ,GAAE,CAAC,CAAC,SAASW,EAAEjC,GAAG,OAAO,IAAID,EAAEC,EAAE,EAAE,CAAC,SAASkC,EAAEnC,EAAEC,EAAEK,GAAG,OAAOL,EAAEmC,EAAEnC,GAAG,SAASD,EAAEC,GAAG,GAAGA,IAAI,iBAAiBA,GAAG,mBAAmBA,GAAG,OAAOA,EAAE,QAAG,IAASA,EAAE,MAAM,IAAIuB,UAAU,4DAA4D,OAAOjB,EAAEP,EAAE,CAAjL,CAAmLA,EAAEqC,IAAIC,QAAQC,UAAUtC,EAAEK,GAAG,GAAG8B,EAAEpC,GAAGwC,aAAavC,EAAE8B,MAAM/B,EAAEM,GAAG,CAAC,SAASmC,EAAEzC,EAAEC,GAAG,KAAKD,aAAaC,GAAG,MAAM,IAAIuB,UAAU,oCAAoC,CAAC,SAASkB,EAAE1C,EAAEC,EAAEK,GAAG,GAAG+B,IAAI,OAAOC,QAAQC,UAAUR,MAAM,KAAKC,WAAW,IAAIzB,EAAE,CAAC,MAAMA,EAAEoC,KAAKZ,MAAMxB,EAAEN,GAAG,IAAIU,EAAE,IAAIX,EAAE4C,KAAKb,MAAM/B,EAAEO,IAAI,OAAOD,GAAGuC,EAAElC,EAAEL,EAAEwB,WAAWnB,CAAC,CAAC,SAASmC,EAAE9C,EAAEC,GAAG,IAAI,IAAIK,EAAE,EAAEA,EAAEL,EAAEI,OAAOC,IAAI,CAAC,IAAIC,EAAEN,EAAEK,GAAGC,EAAEwC,WAAWxC,EAAEwC,aAAY,EAAGxC,EAAEyC,cAAa,EAAG,UAAUzC,IAAIA,EAAE0C,UAAS,GAAIxB,OAAOyB,eAAelD,EAAEmD,EAAE5C,EAAE6C,KAAK7C,EAAE,CAAC,CAAC,SAASJ,EAAEH,EAAEC,EAAEK,GAAG,OAAOL,GAAG6C,EAAE9C,EAAE8B,UAAU7B,GAAGK,GAAGwC,EAAE9C,EAAEM,GAAGmB,OAAOyB,eAAelD,EAAE,YAAY,CAACiD,UAAS,IAAKjD,CAAC,CAAC,SAASqD,EAAErD,EAAEC,GAAG,IAAIK,EAAE,oBAAoBS,QAAQf,EAAEe,OAAOC,WAAWhB,EAAE,cAAc,IAAIM,EAAE,CAAC,GAAGE,MAAMC,QAAQT,KAAKM,EAAEgD,EAAEtD,KAAKC,EAAE,CAACK,IAAIN,EAAEM,GAAG,IAAIC,EAAE,EAAEI,EAAE,WAAW,EAAE,MAAM,CAACkB,EAAElB,EAAEL,EAAE,WAAW,OAAOC,GAAGP,EAAEK,OAAO,CAACQ,MAAK,GAAI,CAACA,MAAK,EAAGC,MAAMd,EAAEO,KAAK,EAAEN,EAAE,SAASD,GAAG,MAAMA,CAAC,EAAE0C,EAAE/B,EAAE,CAAC,MAAM,IAAIa,UAAU,wIAAwI,CAAC,IAAIJ,EAAEG,GAAE,EAAGM,GAAE,EAAG,MAAM,CAACA,EAAE,WAAWvB,EAAEA,EAAEgB,KAAKtB,EAAE,EAAEM,EAAE,WAAW,IAAIN,EAAEM,EAAEW,OAAO,OAAOM,EAAEvB,EAAEa,KAAKb,CAAC,EAAEC,EAAE,SAASD,GAAG6B,GAAE,EAAGT,EAAEpB,CAAC,EAAE0C,EAAE,WAAW,IAAInB,GAAG,MAAMjB,EAAEa,QAAQb,EAAEa,QAAQ,CAAC,QAAQ,GAAGU,EAAE,MAAMT,CAAC,CAAC,EAAE,CAAC,SAASmC,EAAEvD,EAAEC,EAAEK,GAAG,OAAOL,EAAEkD,EAAElD,MAAMD,EAAEyB,OAAOyB,eAAelD,EAAEC,EAAE,CAACa,MAAMR,EAAEyC,YAAW,EAAGC,cAAa,EAAGC,UAAS,IAAKjD,EAAEC,GAAGK,EAAEN,CAAC,CAAC,SAASoC,EAAEpC,GAAG,OAAOoC,EAAEX,OAAO+B,eAAe/B,OAAOgC,eAAeb,OAAO,SAAS5C,GAAG,OAAOA,EAAE0D,WAAWjC,OAAOgC,eAAezD,EAAE,EAAEoC,EAAEpC,EAAE,CAAC,SAAS2D,EAAE3D,EAAEC,GAAG,GAAG,mBAAmBA,GAAG,OAAOA,EAAE,MAAM,IAAIuB,UAAU,sDAAsDxB,EAAE8B,UAAUL,OAAOmC,OAAO3D,GAAGA,EAAE6B,UAAU,CAACU,YAAY,CAAC1B,MAAMd,EAAEiD,UAAS,EAAGD,cAAa,KAAMvB,OAAOyB,eAAelD,EAAE,YAAY,CAACiD,UAAS,IAAKhD,GAAG4C,EAAE7C,EAAEC,EAAE,CAAC,SAASoC,IAAI,IAAI,IAAIrC,GAAG6D,QAAQ/B,UAAUgC,QAAQxC,KAAKgB,QAAQC,UAAUsB,QAAQ,eAAgB,IAAG,CAAC,MAAM7D,GAAG,CAAC,OAAOqC,EAAE,WAAW,QAAQrC,CAAC,IAAI,CAAC,SAAS+D,EAAE/D,GAAG,GAAG,oBAAoBe,QAAQ,MAAMf,EAAEe,OAAOC,WAAW,MAAMhB,EAAE,cAAc,OAAOQ,MAAMwD,KAAKhE,EAAE,CAAC,SAASI,IAAI,MAAM,IAAIoB,UAAU,4IAA4I,CAAC,SAASyC,EAAEjE,EAAEC,GAAG,IAAIK,EAAEmB,OAAOyC,KAAKlE,GAAG,GAAGyB,OAAO0C,sBAAsB,CAAC,IAAI5D,EAAEkB,OAAO0C,sBAAsBnE,GAAGC,IAAIM,EAAEA,EAAE6D,QAAM,SAAWnE,GAAG,OAAOwB,OAAO4C,yBAAyBrE,EAAEC,GAAG8C,UAAW,KAAIzC,EAAEqC,KAAKZ,MAAMzB,EAAEC,EAAE,CAAC,OAAOD,CAAC,CAAC,SAASgE,EAAEtE,GAAG,IAAI,IAAIC,EAAE,EAAEA,EAAE+B,UAAU3B,OAAOJ,IAAI,CAAC,IAAIK,EAAE,MAAM0B,UAAU/B,GAAG+B,UAAU/B,GAAG,CAAA,EAAGA,EAAE,EAAEgE,EAAExC,OAAOnB,IAAG,GAAIiE,SAAO,SAAWtE,GAAGsD,EAAEvD,EAAEC,EAAEK,EAAEL,GAAI,IAAGwB,OAAO+C,0BAA0B/C,OAAOgD,iBAAiBzE,EAAEyB,OAAO+C,0BAA0BlE,IAAI2D,EAAExC,OAAOnB,IAAIiE,SAAO,SAAWtE,GAAGwB,OAAOyB,eAAelD,EAAEC,EAAEwB,OAAO4C,yBAAyB/D,EAAEL,GAAI,GAAE,CAAC,OAAOD,CAAC,CAAC,SAAS0E,IAAIA,EAAE,WAAW,OAAOzE,CAAC,EAAE,IAAID,EAAEC,EAAE,CAAA,EAAGK,EAAEmB,OAAOK,UAAUvB,EAAED,EAAEqE,eAAehE,EAAEc,OAAOyB,gBAAgB,SAASlD,EAAEC,EAAEK,GAAGN,EAAEC,GAAGK,EAAEQ,KAAK,EAAEM,EAAE,mBAAmBL,OAAOA,OAAO,CAAA,EAAGQ,EAAEH,EAAEJ,UAAU,aAAaa,EAAET,EAAEC,eAAe,kBAAkBY,EAAEb,EAAEwD,aAAa,gBAAgB,SAAS1C,EAAElC,EAAEC,EAAEK,GAAG,OAAOmB,OAAOyB,eAAelD,EAAEC,EAAE,CAACa,MAAMR,EAAEyC,YAAW,EAAGC,cAAa,EAAGC,UAAS,IAAKjD,EAAEC,EAAE,CAAC,IAAIiC,EAAE,CAAA,EAAG,GAAG,CAAC,MAAMlC,GAAGkC,EAAE,SAASlC,EAAEC,EAAEK,GAAG,OAAON,EAAEC,GAAGK,CAAC,CAAC,CAAC,SAAS6B,EAAEnC,EAAEC,EAAEK,EAAEC,GAAG,IAAIa,EAAEnB,GAAGA,EAAE6B,qBAAqBM,EAAEnC,EAAEmC,EAAEb,EAAEE,OAAOmC,OAAOxC,EAAEU,WAAWD,EAAE,IAAIgD,EAAEtE,GAAG,IAAI,OAAOI,EAAEY,EAAE,UAAU,CAACT,MAAMgE,EAAE9E,EAAEM,EAAEuB,KAAKN,CAAC,CAAC,SAASkB,EAAEzC,EAAEC,EAAEK,GAAG,IAAI,MAAM,CAACyE,KAAK,SAASC,IAAIhF,EAAEsB,KAAKrB,EAAEK,GAAG,CAAC,MAAMN,GAAG,MAAM,CAAC+E,KAAK,QAAQC,IAAIhF,EAAE,CAAC,CAACC,EAAEgF,KAAK9C,EAAE,IAAIO,EAAE,iBAAiBI,EAAE,iBAAiB3C,EAAE,YAAYkD,EAAE,YAAYE,EAAE,CAAA,EAAG,SAASnB,IAAI,CAAC,SAASuB,IAAI,CAAC,SAAStB,IAAI,CAAC,IAAI0B,EAAE,CAAA,EAAG7B,EAAE6B,EAAExC,GAAC,WAAa,OAAOrB,IAAK,IAAG,IAAIE,EAAEqB,OAAOgC,eAAeQ,EAAE7D,GAAGA,EAAEA,EAAE8E,EAAE,MAAMjB,GAAGA,IAAI3D,GAAGC,EAAEe,KAAK2C,EAAE1C,KAAKwC,EAAEE,GAAG,IAAIK,EAAEjC,EAAEP,UAAUM,EAAEN,UAAUL,OAAOmC,OAAOG,GAAG,SAASlB,EAAE7C,GAAG,CAAC,OAAO,QAAQ,UAAUuE,kBAAkBtE,GAAGiC,EAAElC,EAAEC,YAAYD,GAAG,OAAOE,KAAKiF,QAAQlF,EAAED,EAAG,GAAG,GAAE,CAAC,SAASoF,EAAEpF,EAAEC,GAAG,SAASK,EAAEK,EAAES,EAAEG,EAAEM,GAAG,IAAII,EAAEQ,EAAEzC,EAAEW,GAAGX,EAAEoB,GAAG,GAAG,UAAUa,EAAE8C,KAAK,CAAC,IAAI7C,EAAED,EAAE+C,IAAI7C,EAAED,EAAEpB,MAAM,OAAOqB,GAAG,iBAAiBA,GAAG5B,EAAEe,KAAKa,EAAE,WAAWlC,EAAE0B,QAAQQ,EAAEkD,SAASzD,MAAI,SAAW5B,GAAGM,EAAE,OAAON,EAAEuB,EAAEM,EAAG,IAAA,SAAY7B,GAAGM,EAAE,QAAQN,EAAEuB,EAAEM,EAAG,IAAG5B,EAAE0B,QAAQQ,GAAGP,MAAI,SAAW5B,GAAGkC,EAAEpB,MAAMd,EAAEuB,EAAEW,EAAG,aAAYlC,GAAG,OAAOM,EAAE,QAAQN,EAAEuB,EAAEM,EAAG,GAAE,CAACA,EAAEI,EAAE+C,IAAI,CAAC,IAAI5D,EAAET,EAAET,KAAK,UAAU,CAACY,MAAM,SAASd,EAAEO,GAAG,SAASI,IAAI,OAAO,IAAIV,GAAC,SAAWA,EAAEU,GAAGL,EAAEN,EAAEO,EAAEN,EAAEU,EAAG,GAAE,CAAC,OAAOS,EAAEA,EAAEA,EAAEQ,KAAKjB,EAAEA,GAAGA,GAAG,GAAG,CAAC,SAASmE,EAAE7E,EAAEK,EAAEC,GAAG,IAAII,EAAE+B,EAAE,OAAO,SAAStB,EAAEG,GAAG,GAAGZ,IAAIR,EAAE,MAAMmF,MAAM,gCAAgC,GAAG3E,IAAI0C,EAAE,CAAC,GAAG,UAAUjC,EAAE,MAAMG,EAAE,MAAM,CAACT,MAAMd,EAAEa,MAAK,EAAG,CAAC,IAAIN,EAAEgF,OAAOnE,EAAEb,EAAEyE,IAAIzD,IAAI,CAAC,IAAIM,EAAEtB,EAAEiF,SAAS,GAAG3D,EAAE,CAAC,IAAII,EAAEkB,EAAEtB,EAAEtB,GAAG,GAAG0B,EAAE,CAAC,GAAGA,IAAIsB,EAAE,SAAS,OAAOtB,CAAC,CAAC,CAAC,GAAG,SAAS1B,EAAEgF,OAAOhF,EAAEkF,KAAKlF,EAAEmF,MAAMnF,EAAEyE,SAAS,GAAG,UAAUzE,EAAEgF,OAAO,CAAC,GAAG5E,IAAI+B,EAAE,MAAM/B,EAAE0C,EAAE9C,EAAEyE,IAAIzE,EAAEoF,kBAAkBpF,EAAEyE,IAAI,KAAK,WAAWzE,EAAEgF,QAAQhF,EAAEqF,OAAO,SAASrF,EAAEyE,KAAKrE,EAAER,EAAE,IAAI+B,EAAEO,EAAExC,EAAEK,EAAEC,GAAG,GAAG,WAAW2B,EAAE6C,KAAK,CAAC,GAAGpE,EAAEJ,EAAEM,KAAKwC,EAAEP,EAAEZ,EAAE8C,MAAMzB,EAAE,SAAS,MAAM,CAACzC,MAAMoB,EAAE8C,IAAInE,KAAKN,EAAEM,KAAK,CAAC,UAAUqB,EAAE6C,OAAOpE,EAAE0C,EAAE9C,EAAEgF,OAAO,QAAQhF,EAAEyE,IAAI9C,EAAE8C,IAAI,CAAC,CAAC,CAAC,SAAS7B,EAAElD,EAAEK,GAAG,IAAIC,EAAED,EAAEiF,OAAO5E,EAAEV,EAAEe,SAAST,GAAG,GAAGI,IAAIX,EAAE,OAAOM,EAAEkF,SAAS,KAAK,UAAUjF,GAAGN,EAAEe,SAASG,SAASb,EAAEiF,OAAO,SAASjF,EAAE0E,IAAIhF,EAAEmD,EAAElD,EAAEK,GAAG,UAAUA,EAAEiF,SAAS,WAAWhF,IAAID,EAAEiF,OAAO,QAAQjF,EAAE0E,IAAI,IAAIxD,UAAU,oCAAoCjB,EAAE,aAAagD,EAAE,IAAInC,EAAEqB,EAAE9B,EAAEV,EAAEe,SAASV,EAAE0E,KAAK,GAAG,UAAU5D,EAAE2D,KAAK,OAAOzE,EAAEiF,OAAO,QAAQjF,EAAE0E,IAAI5D,EAAE4D,IAAI1E,EAAEkF,SAAS,KAAKjC,EAAE,IAAIhC,EAAEH,EAAE4D,IAAI,OAAOzD,EAAEA,EAAEV,MAAMP,EAAEL,EAAE4F,YAAYtE,EAAET,MAAMR,EAAEW,KAAKhB,EAAE6F,QAAQ,WAAWxF,EAAEiF,SAASjF,EAAEiF,OAAO,OAAOjF,EAAE0E,IAAIhF,GAAGM,EAAEkF,SAAS,KAAKjC,GAAGhC,GAAGjB,EAAEiF,OAAO,QAAQjF,EAAE0E,IAAI,IAAIxD,UAAU,oCAAoClB,EAAEkF,SAAS,KAAKjC,EAAE,CAAC,SAASwC,EAAE/F,GAAG,IAAIC,EAAE,CAAC+F,OAAOhG,EAAE,IAAI,KAAKA,IAAIC,EAAEgG,SAASjG,EAAE,IAAI,KAAKA,IAAIC,EAAEiG,WAAWlG,EAAE,GAAGC,EAAEkG,SAASnG,EAAE,IAAIE,KAAKkG,WAAWzD,KAAK1C,EAAE,CAAC,SAASqD,EAAEtD,GAAG,IAAIC,EAAED,EAAEqG,YAAY,CAAA,EAAGpG,EAAE8E,KAAK,gBAAgB9E,EAAE+E,IAAIhF,EAAEqG,WAAWpG,CAAC,CAAC,SAAS4E,EAAE7E,GAAGE,KAAKkG,WAAW,CAAC,CAACJ,OAAO,SAAShG,EAAEuE,QAAQwB,EAAE7F,MAAMA,KAAKoG,OAAM,EAAG,CAAC,SAASpB,EAAEjF,GAAG,GAAGA,GAAG,KAAKA,EAAE,CAAC,IAAIK,EAAEL,EAAEsB,GAAG,GAAGjB,EAAE,OAAOA,EAAEgB,KAAKrB,GAAG,GAAG,mBAAmBA,EAAEgB,KAAK,OAAOhB,EAAE,IAAIsG,MAAMtG,EAAEI,QAAQ,CAAC,IAAIM,GAAE,EAAGS,EAAE,SAASd,IAAI,OAAOK,EAAEV,EAAEI,QAAQ,GAAGE,EAAEe,KAAKrB,EAAEU,GAAG,OAAOL,EAAEQ,MAAMb,EAAEU,GAAGL,EAAEO,MAAK,EAAGP,EAAE,OAAOA,EAAEQ,MAAMd,EAAEM,EAAEO,MAAK,EAAGP,CAAC,EAAE,OAAOc,EAAEH,KAAKG,CAAC,CAAC,CAAC,MAAM,IAAII,iBAAiBvB,EAAE,mBAAmB,CAAC,OAAO0D,EAAE7B,UAAUO,EAAE1B,EAAE2D,EAAE,cAAc,CAACxD,MAAMuB,EAAEW,cAAa,IAAKrC,EAAE0B,EAAE,cAAc,CAACvB,MAAM6C,EAAEX,cAAa,IAAKW,EAAE6C,YAAYtE,EAAEG,EAAEJ,EAAE,qBAAqBhC,EAAEwG,oBAAoB,SAASzG,GAAG,IAAIC,EAAE,mBAAmBD,GAAGA,EAAEwC,YAAY,QAAQvC,IAAIA,IAAI0D,GAAG,uBAAuB1D,EAAEuG,aAAavG,EAAEyG,MAAM,EAAEzG,EAAE0G,KAAK,SAAS3G,GAAG,OAAOyB,OAAO+B,eAAe/B,OAAO+B,eAAexD,EAAEqC,IAAIrC,EAAE0D,UAAUrB,EAAEH,EAAElC,EAAEiC,EAAE,sBAAsBjC,EAAE8B,UAAUL,OAAOmC,OAAOU,GAAGtE,CAAC,EAAEC,EAAE2G,MAAM,SAAS5G,GAAG,MAAM,CAACqF,QAAQrF,EAAE,EAAE6C,EAAEuC,EAAEtD,WAAWI,EAAEkD,EAAEtD,UAAUD,GAAC,WAAa,OAAO3B,IAAK,IAAGD,EAAE4G,cAAczB,EAAEnF,EAAE6G,MAAM,SAAS9G,EAAEM,EAAEC,EAAEI,EAAES,QAAG,IAASA,IAAIA,EAAER,SAAS,IAAIW,EAAE,IAAI6D,EAAEjD,EAAEnC,EAAEM,EAAEC,EAAEI,GAAGS,GAAG,OAAOnB,EAAEwG,oBAAoBnG,GAAGiB,EAAEA,EAAEN,OAAOW,MAAI,SAAW5B,GAAG,OAAOA,EAAEa,KAAKb,EAAEc,MAAMS,EAAEN,MAAO,GAAE,EAAE4B,EAAEyB,GAAGpC,EAAEoC,EAAErC,EAAE,aAAaC,EAAEoC,EAAE/C,GAAC,WAAa,OAAOrB,IAAK,IAAGgC,EAAEoC,EAAE,YAAU,WAAa,MAAM,oBAAqB,IAAGrE,EAAEiE,KAAK,SAASlE,GAAG,IAAIC,EAAEwB,OAAOzB,GAAGM,EAAE,GAAG,IAAI,IAAIC,KAAKN,EAAEK,EAAEqC,KAAKpC,GAAG,OAAOD,EAAEyG,UAAU,SAAS/G,IAAI,KAAKM,EAAED,QAAQ,CAAC,IAAIE,EAAED,EAAE0G,MAAM,GAAGzG,KAAKN,EAAE,OAAOD,EAAEc,MAAMP,EAAEP,EAAEa,MAAK,EAAGb,CAAC,CAAC,OAAOA,EAAEa,MAAK,EAAGb,CAAC,CAAC,EAAEC,EAAEgH,OAAO/B,EAAEL,EAAE/C,UAAU,CAACU,YAAYqC,EAAEyB,MAAM,SAASrG,GAAG,GAAGC,KAAKgH,KAAK,EAAEhH,KAAKe,KAAK,EAAEf,KAAKuF,KAAKvF,KAAKwF,MAAM1F,EAAEE,KAAKW,MAAK,EAAGX,KAAKsF,SAAS,KAAKtF,KAAKqF,OAAO,OAAOrF,KAAK8E,IAAIhF,EAAEE,KAAKkG,WAAW7B,QAAQjB,IAAIrD,EAAE,IAAI,IAAIK,KAAKJ,KAAK,MAAMI,EAAE6G,OAAO,IAAI5G,EAAEe,KAAKpB,KAAKI,KAAKiG,OAAOjG,EAAE8G,MAAM,MAAMlH,KAAKI,GAAGN,EAAE,EAAEqH,KAAK,WAAWnH,KAAKW,MAAK,EAAG,IAAIb,EAAEE,KAAKkG,WAAW,GAAGC,WAAW,GAAG,UAAUrG,EAAE+E,KAAK,MAAM/E,EAAEgF,IAAI,OAAO9E,KAAKoH,IAAI,EAAE3B,kBAAkB,SAAS1F,GAAG,GAAGC,KAAKW,KAAK,MAAMZ,EAAE,IAAIK,EAAEJ,KAAK,SAASS,EAAEJ,EAAEI,GAAG,OAAOkB,EAAEkD,KAAK,QAAQlD,EAAEmD,IAAI/E,EAAEK,EAAEW,KAAKV,EAAEI,IAAIL,EAAEiF,OAAO,OAAOjF,EAAE0E,IAAIhF,KAAKW,CAAC,CAAC,IAAI,IAAIS,EAAElB,KAAKkG,WAAW/F,OAAO,EAAEe,GAAG,IAAIA,EAAE,CAAC,IAAIG,EAAErB,KAAKkG,WAAWhF,GAAGS,EAAEN,EAAE8E,WAAW,GAAG,SAAS9E,EAAEyE,OAAO,OAAOrF,EAAE,OAAO,GAAGY,EAAEyE,QAAQ9F,KAAKgH,KAAK,CAAC,IAAIjF,EAAE1B,EAAEe,KAAKC,EAAE,YAAYW,EAAE3B,EAAEe,KAAKC,EAAE,cAAc,GAAGU,GAAGC,EAAE,CAAC,GAAGhC,KAAKgH,KAAK3F,EAAE0E,SAAS,OAAOtF,EAAEY,EAAE0E,UAAS,GAAI,GAAG/F,KAAKgH,KAAK3F,EAAE2E,WAAW,OAAOvF,EAAEY,EAAE2E,WAAW,MAAM,GAAGjE,GAAG,GAAG/B,KAAKgH,KAAK3F,EAAE0E,SAAS,OAAOtF,EAAEY,EAAE0E,UAAS,OAAQ,CAAC,IAAI/D,EAAE,MAAMoD,MAAM,0CAA0C,GAAGpF,KAAKgH,KAAK3F,EAAE2E,WAAW,OAAOvF,EAAEY,EAAE2E,WAAW,CAAC,CAAC,CAAC,EAAEN,OAAO,SAAS5F,EAAEC,GAAG,IAAI,IAAIK,EAAEJ,KAAKkG,WAAW/F,OAAO,EAAEC,GAAG,IAAIA,EAAE,CAAC,IAAIK,EAAET,KAAKkG,WAAW9F,GAAG,GAAGK,EAAEqF,QAAQ9F,KAAKgH,MAAM3G,EAAEe,KAAKX,EAAE,eAAeT,KAAKgH,KAAKvG,EAAEuF,WAAW,CAAC,IAAI9E,EAAET,EAAE,KAAK,CAAC,CAACS,IAAI,UAAUpB,GAAG,aAAaA,IAAIoB,EAAE4E,QAAQ/F,GAAGA,GAAGmB,EAAE8E,aAAa9E,EAAE,MAAM,IAAIG,EAAEH,EAAEA,EAAEiF,WAAW,CAAA,EAAG,OAAO9E,EAAEwD,KAAK/E,EAAEuB,EAAEyD,IAAI/E,EAAEmB,GAAGlB,KAAKqF,OAAO,OAAOrF,KAAKe,KAAKG,EAAE8E,WAAW3C,GAAGrD,KAAKqH,SAAShG,EAAE,EAAEgG,SAAS,SAASvH,EAAEC,GAAG,GAAG,UAAUD,EAAE+E,KAAK,MAAM/E,EAAEgF,IAAI,MAAM,UAAUhF,EAAE+E,MAAM,aAAa/E,EAAE+E,KAAK7E,KAAKe,KAAKjB,EAAEgF,IAAI,WAAWhF,EAAE+E,MAAM7E,KAAKoH,KAAKpH,KAAK8E,IAAIhF,EAAEgF,IAAI9E,KAAKqF,OAAO,SAASrF,KAAKe,KAAK,OAAO,WAAWjB,EAAE+E,MAAM9E,IAAIC,KAAKe,KAAKhB,GAAGsD,CAAC,EAAEiE,OAAO,SAASxH,GAAG,IAAI,IAAIC,EAAEC,KAAKkG,WAAW/F,OAAO,EAAEJ,GAAG,IAAIA,EAAE,CAAC,IAAIK,EAAEJ,KAAKkG,WAAWnG,GAAG,GAAGK,EAAE4F,aAAalG,EAAE,OAAOE,KAAKqH,SAASjH,EAAE+F,WAAW/F,EAAE6F,UAAU7C,EAAEhD,GAAGiD,CAAC,CAAC,EAAEkE,MAAM,SAASzH,GAAG,IAAI,IAAIC,EAAEC,KAAKkG,WAAW/F,OAAO,EAAEJ,GAAG,IAAIA,EAAE,CAAC,IAAIK,EAAEJ,KAAKkG,WAAWnG,GAAG,GAAGK,EAAE0F,SAAShG,EAAE,CAAC,IAAIO,EAAED,EAAE+F,WAAW,GAAG,UAAU9F,EAAEwE,KAAK,CAAC,IAAIpE,EAAEJ,EAAEyE,IAAI1B,EAAEhD,EAAE,CAAC,OAAOK,CAAC,CAAC,CAAC,MAAM2E,MAAM,wBAAwB,EAAEoC,cAAc,SAASzH,EAAEK,EAAEC,GAAG,OAAOL,KAAKsF,SAAS,CAACxE,SAASkE,EAAEjF,GAAG4F,WAAWvF,EAAEwF,QAAQvF,GAAG,SAASL,KAAKqF,SAASrF,KAAK8E,IAAIhF,GAAGuD,CAAC,GAAGtD,CAAC,CAAC,SAAS4C,EAAE7C,EAAEC,GAAG,OAAO4C,EAAEpB,OAAO+B,eAAe/B,OAAO+B,eAAeZ,OAAO,SAAS5C,EAAEC,GAAG,OAAOD,EAAE0D,UAAUzD,EAAED,CAAC,EAAE6C,EAAE7C,EAAEC,EAAE,CAAC,SAASmF,EAAEpF,EAAEC,GAAG,OAAOK,EAAEN,IAAI,SAASA,EAAEC,GAAG,IAAIK,EAAE,MAAMN,EAAE,KAAK,oBAAoBe,QAAQf,EAAEe,OAAOC,WAAWhB,EAAE,cAAc,GAAG,MAAMM,EAAE,CAAC,IAAIC,EAAEI,EAAES,EAAEG,EAAEM,EAAE,GAAGI,GAAE,EAAGC,GAAE,EAAG,IAAI,GAAGd,GAAGd,EAAEA,EAAEgB,KAAKtB,IAAIiB,KAAK,IAAIhB,EAAE,CAAC,GAAGwB,OAAOnB,KAAKA,EAAE,OAAO2B,GAAE,CAAE,MAAM,OAAOA,GAAG1B,EAAEa,EAAEE,KAAKhB,IAAIO,QAAQgB,EAAEc,KAAKpC,EAAEO,OAAOe,EAAExB,SAASJ,GAAGgC,GAAE,GAAI,CAAC,MAAMjC,GAAGkC,GAAE,EAAGvB,EAAEX,CAAC,CAAC,QAAQ,IAAI,IAAIiC,GAAG,MAAM3B,EAAEa,SAASI,EAAEjB,EAAEa,SAASM,OAAOF,KAAKA,GAAG,MAAM,CAAC,QAAQ,GAAGW,EAAE,MAAMvB,CAAC,CAAC,CAAC,OAAOkB,CAAC,CAAC,CAAzY,CAA2Y7B,EAAEC,IAAIqD,EAAEtD,EAAEC,IAAIG,GAAG,CAAC,SAAS0E,EAAE9E,GAAG,OAAO,SAASA,GAAG,GAAGQ,MAAMC,QAAQT,GAAG,OAAOC,EAAED,EAAE,CAA3C,CAA6CA,IAAI+D,EAAE/D,IAAIsD,EAAEtD,IAAI,WAAW,MAAM,IAAIwB,UAAU,uIAAuI,CAAtK,EAAyK,CAAC,SAAS2B,EAAEnD,GAAG,IAAIC,EAAE,SAASD,EAAEC,GAAG,GAAG,iBAAiBD,IAAIA,EAAE,OAAOA,EAAE,IAAIM,EAAEN,EAAEe,OAAO4G,aAAa,QAAG,IAASrH,EAAE,CAAC,IAAIC,EAAED,EAAEgB,KAAKtB,EAAEC,GAAc,GAAG,iBAAiBM,EAAE,OAAOA,EAAE,MAAM,IAAIiB,UAAU,+CAA+C,CAAC,OAAoBoG,OAAe5H,EAAE,CAAjQ,CAAmQA,EAAE,UAAU,MAAM,iBAAiBC,EAAEA,EAAEA,EAAE,EAAE,CAAC,SAAS8F,EAAE/F,GAAG,OAAO+F,EAAE,mBAAmBhF,QAAQ,iBAAiBA,OAAOC,SAAS,SAAShB,GAAG,cAAcA,CAAC,EAAE,SAASA,GAAG,OAAOA,GAAG,mBAAmBe,QAAQf,EAAEwC,cAAczB,QAAQf,IAAIe,OAAOe,UAAU,gBAAgB9B,CAAC,EAAE+F,EAAE/F,EAAE,CAAC,SAASsD,EAAEtD,EAAEM,GAAG,GAAGN,EAAE,CAAC,GAAG,iBAAiBA,EAAE,OAAOC,EAAED,EAAEM,GAAG,IAAIC,EAAE,CAAA,EAAGsH,SAASvG,KAAKtB,GAAGoH,MAAM,MAAM,MAAM,WAAW7G,GAAGP,EAAEwC,cAAcjC,EAAEP,EAAEwC,YAAYkE,MAAM,QAAQnG,GAAG,QAAQA,EAAEC,MAAMwD,KAAKhE,GAAG,cAAcO,GAAG,2CAA2CuH,KAAKvH,GAAGN,EAAED,EAAEM,QAAG,CAAM,CAAC,CAAC,SAASuE,EAAE7E,GAAG,OAAO,WAAW,OAAO,IAAIkF,EAAElF,EAAE+B,MAAM7B,KAAK8B,WAAW,CAAC,CAAC,SAASkD,EAAEjF,GAAG,IAAIK,EAAEC,EAAE,SAASI,EAAEL,EAAEC,GAAG,IAAI,IAAIgB,EAAEtB,EAAEK,GAAGC,GAAGsB,EAAEN,EAAET,MAAMmB,EAAEJ,aAAa7B,EAAEY,QAAQe,QAAQM,EAAEJ,EAAE1B,EAAE0B,GAAGD,MAAI,SAAW5B,GAAG,GAAGiC,EAAE,CAAC,IAAI1B,EAAE,WAAWD,EAAE,SAAS,OAAO,IAAIuB,EAAEzB,GAAGJ,EAAEa,KAAK,OAAOF,EAAEJ,EAAEP,GAAGA,EAAEC,EAAEM,GAAGP,GAAGc,KAAK,CAACM,EAAEG,EAAEV,KAAK,SAAS,SAASb,EAAG,IAAA,SAAYA,GAAGW,EAAE,QAAQX,EAAG,GAAE,CAAC,MAAMA,GAAGoB,EAAE,QAAQpB,EAAE,CAAC,CAAC,SAASoB,EAAEpB,EAAEC,GAAG,OAAOD,GAAG,IAAI,SAASM,EAAEqB,QAAQ,CAACb,MAAMb,EAAEY,MAAK,IAAK,MAAM,IAAI,QAAQP,EAAEoB,OAAOzB,GAAG,MAAM,QAAQK,EAAEqB,QAAQ,CAACb,MAAMb,EAAEY,MAAK,KAAMP,EAAEA,EAAEW,MAAMN,EAAEL,EAAE8C,IAAI9C,EAAE0E,KAAKzE,EAAE,IAAI,CAACL,KAAKiF,QAAQ,SAASnF,EAAEC,GAAG,OAAO,IAAIW,SAAO,SAAWQ,EAAEG,GAAG,IAAIM,EAAE,CAACuB,IAAIpD,EAAEgF,IAAI/E,EAAE0B,QAAQP,EAAEM,OAAOH,EAAEN,KAAK,MAAMV,EAAEA,EAAEA,EAAEU,KAAKY,GAAGvB,EAAEC,EAAEsB,EAAElB,EAAEX,EAAEC,GAAI,GAAE,EAAE,mBAAmBA,EAAEkB,SAASjB,KAAKiB,YAAO,EAAO,CAAC,SAAS4G,EAAE/H,GAAG,IAAIC,EAAE,mBAAmB+H,IAAI,IAAIA,SAAI,EAAO,OAAOD,EAAE,SAAS/H,GAAG,GAAG,OAAOA,IAAI,SAASA,GAAG,IAAI,OAAO,IAAIiI,SAASJ,SAASvG,KAAKtB,GAAGkI,QAAQ,gBAAgB,CAAC,MAAMjI,GAAG,MAAM,mBAAmBD,CAAC,CAAC,CAAlH,CAAoHA,GAAG,OAAOA,EAAE,GAAG,mBAAmBA,EAAE,MAAM,IAAIwB,UAAU,sDAAsD,QAAG,IAASvB,EAAE,CAAC,GAAGA,EAAEkI,IAAInI,GAAG,OAAOC,EAAEmI,IAAIpI,GAAGC,EAAEoI,IAAIrI,EAAEM,EAAE,CAAC,SAASA,IAAI,OAAOoC,EAAE1C,EAAEgC,UAAUI,EAAElC,MAAMsC,YAAY,CAAC,OAAOlC,EAAEwB,UAAUL,OAAOmC,OAAO5D,EAAE8B,UAAU,CAACU,YAAY,CAAC1B,MAAMR,EAAEyC,YAAW,EAAGE,UAAS,EAAGD,cAAa,KAAMH,EAAEvC,EAAEN,EAAE,EAAE+H,EAAE/H,EAAE,CAACkF,EAAEpD,UAAU,mBAAmBf,QAAQA,OAAOM,eAAe,mBAAmB,WAAW,OAAOnB,IAAI,EAAEgF,EAAEpD,UAAUb,KAAK,SAASjB,GAAG,OAAOE,KAAKiF,QAAQ,OAAOnF,EAAE,EAAEkF,EAAEpD,UAAUZ,MAAM,SAASlB,GAAG,OAAOE,KAAKiF,QAAQ,QAAQnF,EAAE,EAAEkF,EAAEpD,UAAUX,OAAO,SAASnB,GAAG,OAAOE,KAAKiF,QAAQ,SAASnF,EAAE,EAAK,IAACsI,EAAE,WAAW,SAAStI,EAAEC,GAAG,IAAIK,IAAI0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,KAAKA,UAAU,GAAGS,EAAEvC,KAAKF,GAAGuD,EAAErD,KAAK,mBAAmB,CAAC,YAAY,cAAc,OAAO,QAAQ,UAAU,SAAS,OAAO,QAAQ,QAAQ,OAAO,SAASqD,EAAErD,KAAK,cAAc,CAAC,CAAC,IAAIqI,OAAO,SAAS,MAAM,QAAQ,CAAC,IAAIA,OAAO,YAAY,MAAM,UAAU,CAAC,IAAIA,OAAO,WAAW,MAAM,SAAS,CAAC,IAAIA,OAAO,SAAS,MAAM,QAAQ,CAAC,IAAIA,OAAO,eAAe,MAAM,QAAQ,CAAC,IAAIA,OAAO,iBAAiB,MAAM,OAAO,CAAC,IAAIA,OAAO,kBAAkB,MAAM,QAAQ,CAAC,IAAIA,OAAO,SAAS,MAAM,SAAS,CAAC,IAAIA,OAAO,yBAAyB,MAAM,SAAS,CAAC,IAAIA,OAAO,YAAY,MAAM,OAAO,CAAC,IAAIA,OAAO,OAAO,MAAM,OAAO,CAAC,IAAIA,OAAO,wBAAwB,MAAM,WAAW,CAAC,IAAIA,OAAO,UAAU,MAAM,OAAO,CAAC,IAAIA,OAAO,mBAAmB,MAAM,SAAS,CAAC,IAAIA,OAAO,gBAAgB,MAAM,QAAQ,CAAC,IAAIA,OAAO,wBAAwB,MAAM,UAAU,CAAC,IAAIA,OAAO,eAAe,MAAM,SAAS,CAAC,IAAIA,OAAO,UAAU,MAAM,SAAS,CAAC,IAAIA,OAAO,KAAK,MAAM,KAAK,CAAC,IAAIA,OAAO,IAAI,MAAM,OAAOhF,EAAErD,KAAK,gBAAgB,CAAC,CAAC,IAAIqI,OAAO,SAAS,MAAM,QAAQ,CAAC,IAAIA,OAAO,YAAY,MAAM,UAAU,CAAC,IAAIA,OAAO,cAAc,MAAM,MAAM,CAAC,IAAIA,OAAO,WAAW,MAAM,QAAQ,CAAC,IAAIA,OAAO,gEAAgE,MAAM,WAAW,CAAC,IAAIA,OAAO,WAAW,MAAM,MAAM,CAAC,IAAIA,OAAO,WAAW,MAAM,MAAM,CAAC,IAAIA,OAAO,YAAY,MAAM,MAAM,CAAC,IAAIA,OAAO,aAAa,MAAM,OAAO,CAAC,IAAIA,OAAO,cAAc,MAAM,QAAQ,CAAC,IAAIA,OAAO,qBAAqB,MAAM,OAAO,CAAC,IAAIA,OAAO,YAAY,MAAM,WAAW,CAAC,IAAIA,OAAO,YAAY,MAAM,UAAU,CAAC,IAAIA,OAAO,kBAAkB,MAAM,MAAM,CAAC,IAAIA,OAAO,cAAc,MAAM,UAAU,CAAC,IAAIA,OAAO,WAAW,MAAM,MAAM,CAAC,IAAIA,OAAO,SAAS,MAAM,MAAM,CAAC,IAAIA,OAAO,WAAW,MAAM,MAAM,CAAC,IAAIA,OAAO,oBAAoB,MAAM,QAAQ,CAAC,IAAIA,OAAO,gBAAgB,MAAM,QAAQ,CAAC,IAAIA,OAAO,oBAAoB,MAAM,MAAM,CAAC,IAAIA,OAAO,UAAU,MAAM,MAAM,CAAC,IAAIA,OAAO,kBAAkB,MAAM,QAAQ,CAAC,IAAIA,OAAO,cAAc,MAAM,QAAQ,CAAC,IAAIA,OAAO,aAAa,MAAM,MAAM,CAAC,IAAIA,OAAO,KAAK,MAAM,MAAMhF,EAAErD,KAAK,qBAAqB,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,MAAM,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,OAAO,OAAO,KAAK,OAAO,MAAM,MAAM,KAAK,OAAO,OAAO,QAAQqD,EAAErD,KAAK,WAAW,IAAIqI,OAAO,cAAc,MAAMhF,EAAErD,KAAK,WAAW,IAAIqI,OAAO,IAAI,MAAMhF,EAAErD,KAAK,kBAAkB,IAAIqI,OAAO,OAAO,MAAMhF,EAAErD,KAAK,YAAY,IAAIqI,OAAO,UAAU,MAAMhF,EAAErD,KAAK,iBAAiB,IAAIqI,OAAO,OAAOrI,KAAKsI,IAAIvI,EAAEC,KAAKuI,MAAMnI,CAAC,CAAC,OAAOH,EAAEH,EAAE,CAAC,CAACoD,IAAI,MAAMtC,MAAM,WAAW,OAAOZ,KAAKsI,GAAG,GAAG,CAACpF,IAAI,aAAatC,MAAM,SAASd,EAAEC,EAAEK,EAAEC,GAAG,GAAGA,EAAEP,EAAEO,OAAO,KAAKD,EAAE4H,QAAQlI,EAAE0I,gBAAe,GAAI,IAAI,IAAI/H,EAAE,EAAEA,EAAEV,EAAEI,OAAOM,IAAI,GAAGX,EAAE2I,MAAM1I,EAAEU,GAAG,IAAI,CAACX,EAAEA,EAAE4I,QAAQ3I,EAAEU,GAAG,GAAGV,EAAEU,GAAG,IAAI,KAAK,CAAC,OAAOT,KAAKsI,IAAIxI,GAAE,IAAKE,KAAKuI,MAAMvI,KAAKF,CAAC,GAAG,CAACoD,IAAI,YAAYtC,MAAM,SAASd,GAAG,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,KAAK,OAAOhC,EAAEA,GAAGE,KAAKsI,IAAItI,KAAK2I,WAAW7I,EAAEE,KAAK4I,YAAY5I,KAAK6I,iBAAiB9I,EAAE,GAAG,CAACmD,IAAI,cAActC,MAAM,SAASd,EAAEC,GAAG,OAAOD,EAAEA,GAAGE,KAAKsI,IAAItI,KAAK2I,WAAW7I,EAAEE,KAAK8I,cAAc9I,KAAK6I,iBAAiB9I,EAAE,GAAG,CAACmD,IAAI,WAAWtC,MAAM,SAASd,EAAEC,GAAG,IAAI,IAAIK,GAAGN,EAAEA,GAAGE,KAAKsI,KAAKS,MAAM,KAAK1I,EAAE,EAAEA,EAAED,EAAED,OAAOE,IAAI,CAAC,IAAI,IAAII,EAAEL,EAAEC,GAAG0I,MAAM,KAAK7H,EAAEnB,GAAGM,EAAE,IAAID,EAAED,OAAO,EAAE,EAAEe,EAAET,EAAEN,OAAOe,IAAIT,EAAES,GAAGT,EAAES,GAAG+F,OAAO,GAAG+B,cAAcvI,EAAES,GAAG+H,UAAU,GAAG7I,EAAEC,GAAGI,EAAEyI,KAAK,GAAG,CAAC,GAAGpJ,EAAEM,EAAE8I,KAAK,OAAM,IAAKnJ,EAAE,CAAC,IAAIsB,EAAEvB,EAAEmH,OAAO,GAAGuB,cAAc7G,EAAE7B,EAAEoH,MAAM,GAAGpH,EAAEuB,EAAEM,CAAC,CAAC,OAAO3B,KAAKsI,IAAIxI,GAAE,IAAKE,KAAKuI,MAAMvI,KAAKF,CAAC,GAAG,CAACoD,IAAI,aAAatC,MAAM,SAASd,GAAG,IAAI,IAAIC,GAAGD,EAAEA,GAAGE,KAAKsI,KAAKS,MAAM,MAAM3I,EAAE,EAAEA,EAAEL,EAAEI,OAAOC,IAAIL,EAAEK,GAAGL,EAAEK,GAAGsI,QAAQ1I,KAAKmJ,UAAU,OAAOpJ,EAAEK,GAAGL,EAAEK,GAAGsI,QAAQ1I,KAAKoJ,eAAe,IAAI,OAAOtJ,EAAEC,EAAEmJ,KAAK,KAAKV,cAAcxI,KAAKsI,IAAIxI,GAAE,IAAKE,KAAKuI,MAAMvI,KAAKF,CAAC,GAAG,CAACoD,IAAI,WAAWtC,MAAM,SAASd,EAAEC,GAAG,OAAOD,GAAGA,GAAGA,GAAGA,EAAEA,GAAGE,KAAKsI,KAAKE,eAAeE,QAAQ1I,KAAKqJ,SAAS,KAAKX,QAAQ1I,KAAKsJ,SAAS,KAAKvJ,IAAID,EAAEE,KAAKuJ,WAAWzJ,IAAIE,KAAKsI,IAAIxI,GAAE,IAAKE,KAAKuI,MAAMvI,KAAKF,CAAC,GAAG,CAACoD,IAAI,aAAatC,MAAM,SAASd,GAAG,OAAOA,GAAGA,GAAGA,EAAEA,GAAGE,KAAKsI,KAAKE,eAAeS,UAAU,EAAE,GAAGD,cAAclJ,EAAEmJ,UAAU,GAAGjJ,KAAKsI,IAAIxI,GAAE,IAAKE,KAAKuI,MAAMvI,KAAKF,CAAC,GAAG,CAACoD,IAAI,YAAYtC,MAAM,SAASd,GAAG,OAAOA,GAAGA,GAAGA,EAAEA,GAAGE,KAAKsI,KAAKI,QAAQ1I,KAAKwJ,gBAAgB,MAAMhB,cAAcxI,KAAKsI,IAAIxI,GAAE,IAAKE,KAAKuI,MAAMvI,KAAKF,CAAC,GAAG,CAACoD,IAAI,UAAUtC,MAAM,SAASd,EAAEC,GAAGD,EAAEA,GAAGE,KAAKsI,KAAI,IAAKvI,GAAGD,EAAEE,KAAKyJ,SAAS3J,GAAGA,EAAEE,KAAK0J,WAAW5J,IAAIA,EAAEA,EAAE0I,cAAc,IAAI,IAAIpI,GAAGN,EAAEA,EAAE4I,QAAQ1I,KAAKsJ,SAAS,MAAMP,MAAM,KAAK1I,EAAE,EAAEA,EAAED,EAAED,OAAOE,IAAI,CAAC,IAAI,IAAII,EAAEL,EAAEC,GAAG0I,MAAM,KAAK7H,EAAE,EAAEA,EAAET,EAAEN,OAAOe,IAAIlB,KAAK2J,mBAAmB3B,QAAQvH,EAAES,GAAGsH,eAAe,IAAI/H,EAAES,GAAGlB,KAAKuJ,WAAW9I,EAAES,KAAKd,EAAEC,GAAGI,EAAEyI,KAAK,IAAI,CAAC,OAAOpJ,GAAGA,EAAEM,EAAE8I,KAAK,MAAMD,UAAU,EAAE,GAAGD,cAAclJ,EAAEmJ,UAAU,GAAGjJ,KAAKsI,IAAIxI,GAAE,IAAKE,KAAKuI,MAAMvI,KAAKF,CAAC,GAAG,CAACoD,IAAI,aAAatC,MAAM,SAASd,GAAG,IAAIC,GAAGD,EAAEA,GAAGE,KAAKsI,KAAKS,MAAM,MAAM,OAAOjJ,EAAEC,EAAEA,EAAEI,OAAO,GAAGH,KAAKsI,IAAIxI,GAAE,IAAKE,KAAKuI,MAAMvI,KAAKF,CAAC,GAAG,CAACoD,IAAI,WAAWtC,MAAM,SAASd,GAAGA,EAAEA,GAAGE,KAAKsI,IAAI,IAAIvI,EAAEC,KAAKuI,MAAM,OAAOvI,KAAKuI,OAAM,EAAGzI,EAAEE,KAAK4J,UAAU5J,KAAK0J,WAAW5J,IAAIE,KAAKuI,MAAMxI,EAAEC,KAAKsI,IAAIxI,GAAE,IAAKE,KAAKuI,MAAMvI,KAAKF,CAAC,GAAG,CAACoD,IAAI,WAAWtC,MAAM,SAASd,GAAGA,EAAEA,GAAGE,KAAKsI,IAAIxI,GAAGA,EAAE,GAAG+J,OAAO/J,GAAGgK,QAAQpB,QAAQ,YAAY,KAAK,IAAI3I,EAAEC,KAAKuI,MAAM,OAAOvI,KAAKuI,OAAM,EAAGzI,EAAEE,KAAK+J,YAAYjK,GAAGA,EAAEE,KAAKyJ,SAAS3J,GAAE,GAAIE,KAAKuI,MAAMxI,EAAEC,KAAKsI,IAAIxI,EAAEE,KAAKuI,MAAMvI,KAAKF,CAAC,GAAG,CAACoD,IAAI,aAAatC,MAAM,SAASd,GAAG,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,IAAIA,UAAU,GAAG,OAAOhC,EAAEA,GAAGE,KAAKsI,IAAIxI,EAAEE,KAAK0J,WAAW1J,KAAKgK,WAAWlK,KAAKC,EAAE,GAAG,KAAK,KAAKC,KAAKsI,IAAIxI,GAAE,IAAKE,KAAKuI,MAAMvI,KAAKF,CAAC,GAAG,CAACoD,IAAI,aAAatC,MAAM,SAASd,GAAG,IAAI,IAAIC,GAAGD,EAAEA,GAAGE,KAAKsI,KAAKS,MAAM,KAAK3I,EAAE,EAAEA,EAAEL,EAAEI,OAAOC,IAAI,CAAC,IAAIC,EAAE4J,SAASlK,EAAEK,IAAI,GAAGiG,MAAMhG,GAAG,CAAC,IAAII,EAAEV,EAAEK,GAAG6I,UAAUlJ,EAAEK,GAAGD,OAAO,GAAGe,EAAEnB,EAAEK,GAAG6I,UAAUlJ,EAAEK,GAAGD,OAAO,GAAGkB,EAAE,KAAK,MAAMZ,GAAG,MAAMA,GAAG,MAAMA,IAAI,MAAMS,EAAEG,EAAE,KAAK,MAAMH,EAAEG,EAAE,KAAK,MAAMH,IAAIG,EAAE,OAAOtB,EAAEK,IAAIiB,CAAC,CAAC,CAAC,OAAOvB,EAAEC,EAAEmJ,KAAK,KAAKlJ,KAAKsI,IAAIxI,GAAE,IAAKE,KAAKuI,MAAMvI,KAAKF,CAAC,IAAI,CAAC,CAACoD,IAAI,SAAStC,MAAM,WAAW,IAAIb,EAAEwB,OAAOwF,OAAOjF,WAAW1B,EAAE,IAAIN,EAAE,MAAK,GAAIO,EAAEyB,UAAU,GAAG,OAAO/B,EAAEmK,QAAQ,mBAAmB9J,EAAEC,GAAGD,EAAEC,GAAGwB,MAAMzB,EAAEL,GAAG,IAAI,IAAI,CAAtwL,GAA0wLoK,EAAE,WAAW,IAAIrK,EAAE,CAAC,aAAa+J,OAAOvJ,MAAMsB,UAAUsF,MAAM9F,KAAKU,YAAY,OAAOsG,EAAEgC,OAAOvI,MAAMuG,EAAExD,EAAE9E,GAAG,EAAEuK,EAAE,WAAW,IAAIvK,EAAE,CAAC,eAAe+J,OAAOvJ,MAAMsB,UAAUsF,MAAM9F,KAAKU,YAAY,OAAOsG,EAAEgC,OAAOvI,MAAMuG,EAAExD,EAAE9E,GAAG,EAA6NwK,EAAE,WAAW,IAAIxK,EAAE,CAAC,YAAY+J,OAAOvJ,MAAMsB,UAAUsF,MAAM9F,KAAKU,YAAY,OAAOsG,EAAEgC,OAAOvI,MAAMuG,EAAExD,EAAE9E,GAAG,EAAEyK,EAAE,CAACC,UAAU,CAAA,EAAGC,SAAS,CAAA,EAAGC,OAAO,GAAGC,QAAQ,CAAA,GAAI,SAASC,EAAE9K,EAAEC,EAAEK,GAAG,IAAIC,EAAE8J,EAAErK,GAAGyK,EAAElK,KAAKkK,EAAElK,GAAG,CAAA,GAAIkK,EAAElK,GAAGN,GAAGK,CAAC,CAAC,SAASyK,EAAE/K,EAAEC,GAAG,IAAIK,EAAE+J,EAAErK,GAAG,IAAIyK,EAAEnK,GAAG,MAAM,IAAIgF,MAAM,iBAAiByE,OAAOQ,EAAEvK,KAAK,IAAIyK,EAAEnK,GAAGL,GAAG,MAAM,IAAIqF,MAAM,MAAMyE,OAAOQ,EAAEvK,GAAG,YAAY+J,OAAO9J,EAAE,kBAAkB,IAAI,IAAIM,EAAEkK,EAAEnK,GAAGL,GAAGU,EAAEqB,UAAU3B,OAAOe,EAAE,IAAIZ,MAAMG,EAAE,EAAEA,EAAE,EAAE,GAAGY,EAAE,EAAEA,EAAEZ,EAAEY,IAAIH,EAAEG,EAAE,GAAGS,UAAUT,GAAG,OAAOmB,EAAEnC,EAAEa,EAAE,CAA+c,SAAS4J,EAAEhL,EAAEC,GAAG,IAAI,IAAIK,EAAE0B,UAAU3B,OAAOE,EAAE,IAAIC,MAAMF,EAAE,EAAEA,EAAE,EAAE,GAAGK,EAAE,EAAEA,EAAEL,EAAEK,IAAIJ,EAAEI,EAAE,GAAGqB,UAAUrB,GAAG,OAAOoK,EAAEhJ,WAAM,EAAO,CAAC/B,EAAEwK,EAAEvK,IAAI8J,OAAOxJ,GAAG,CAA6I,SAAS0K,EAAEjL,GAAG,IAAI,IAAIC,EAAE+B,UAAU3B,OAAOC,EAAE,IAAIE,MAAMP,EAAE,EAAEA,EAAE,EAAE,GAAGM,EAAE,EAAEA,EAAEN,EAAEM,IAAID,EAAEC,EAAE,GAAGyB,UAAUzB,GAAG,OAAOyK,EAAEjJ,WAAM,EAAO,CAAC,WAAWyI,EAAExK,IAAI+J,OAAOzJ,GAAG,CAAlpBH,GAAC,SAAWH,IAAI,OAAOyC,EAAEvC,KAAKF,GAAGE,KAAKgL,OAAOnJ,MAAM7B,KAAK8B,UAAW,GAAE,CAAC,CAACoB,IAAI,SAAStC,MAAM,SAASd,EAAEC,GAAG,IAAI,IAAIK,EAAE0B,UAAU3B,OAAOE,EAAE,IAAIC,MAAMF,EAAE,EAAEA,EAAE,EAAE,GAAGK,EAAE,EAAEA,EAAEL,EAAEK,IAAIJ,EAAEI,EAAE,GAAGqB,UAAUrB,GAAG,OAAOoK,EAAEhJ,WAAM,EAAO,CAAC/B,EAAEC,GAAG8J,OAAOxJ,GAAG,KAAmb,IAAI4K,EAAE3K,MAAMC,QAAQ2K,EAAE,IAAI,SAASC,EAAErL,EAAEC,EAAEK,GAAG,IAAIC,EAAEyB,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAG,GAAGmJ,EAAEnL,GAAG,GAAGO,EAAEF,QAAQ+K,EAAEpL,EAAEsL,OAAOvJ,MAAM/B,EAAE,CAACC,EAAEK,GAAGyJ,OAAOjF,EAAEvE,SAAS,CAACP,EAAEsL,OAAOrL,EAAEK,GAAG,IAAI,IAAIK,EAAE,EAAEA,EAAEJ,EAAEF,OAAOM,GAAGyK,EAAE,CAAC,IAAIhK,EAAEb,EAAE6G,MAAMzG,EAAEA,EAAEyK,GAAGpL,EAAEsL,OAAOvJ,MAAM/B,EAAE,CAACC,EAAEU,EAAE,GAAGoJ,OAAOjF,EAAE1D,IAAI,CAAC,MAAMmK,EAAEvL,IAAIA,EAAE4I,QAAQ3I,EAAEK,EAAEC,EAAE,CAAC,SAASiL,EAAExL,GAAG,OAAOA,CAAC,CAAC,SAASuL,EAAEvL,GAAG,OAAOA,aAAayL,EAAE,CAAC,SAASC,EAAG1L,EAAEC,GAAG,OAAOkL,EAAEnL,GAAGA,EAAEC,GAAGsL,EAAEvL,GAAGA,EAAE2L,SAAS1L,GAAG,IAAI,CAAC,SAAS2L,EAAG5L,EAAEC,GAAG,OAAO,IAAI+B,UAAU3B,OAAO,SAASC,GAAG,OAAOL,IAAIK,EAAEN,EAAE,EAAE,SAASC,GAAG,OAAO4D,QAAQ5D,EAAED,GAAG,CAAC,CAAC,SAAS6L,EAAG7L,EAAEC,GAAG,IAAI,IAAIK,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,EAAEzB,EAAEP,EAAEK,OAAOM,EAAEL,EAAEK,EAAEJ,EAAEI,IAAK,GAAGV,EAAEyL,EAAG1L,EAAEW,GAAGA,EAAEX,GAAG,OAAOW,EAAE,OAAM,CAAE,CAAC,SAASmL,EAAG9L,EAAEC,GAAG,IAAIK,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,EAAEzB,EAAEyB,UAAU3B,OAAO,EAAE2B,UAAU,QAAG,EAAOrB,EAAEX,EAAEK,OAAO,OAAOC,EAAE,IAAIA,GAAGK,GAAGkL,EAAG7L,EAAEO,GAAGN,GAAGA,EAAE,SAASD,GAAG,OAAOA,GAAGA,CAAC,EAAE,SAASA,GAAG,OAAOA,IAAIC,CAAC,EAAEK,EAAE,CAAC,SAASyL,EAAG/L,EAAEC,EAAEK,GAAG,OAAO+K,EAAErL,EAAEC,EAAE,EAAE,CAACK,IAAIA,CAAC,CAAC,SAAS0L,KAAK,OAAOtJ,EAAE+I,GAAGjL,MAAMsB,UAAUsF,MAAM9F,KAAKU,WAAW,CAAC,IAAIyJ,GAAG,WAAW,SAASzL,IAAI,OAAOyC,EAAEvC,KAAKF,GAAGO,EAAE4K,EAAEnJ,UAAU,IAAIG,EAAEjC,KAAKF,EAAE8E,EAAE9C,UAAU,KAAKG,EAAEjC,KAAKF,EAAEgC,WAAW,CAAC,OAAO2B,EAAE3D,EAAE+H,EAAEvH,QAAQL,EAAEH,EAAE,CAAC,CAACoD,IAAI,WAAWgF,IAAI,WAAW,OAAOlI,KAAKG,OAAO,CAAC,GAAG,CAAC+C,IAAI,QAAQgF,IAAI,WAAW,OAAO,IAAIlI,KAAKG,MAAM,GAAG,CAAC+C,IAAI,QAAQgF,IAAI,WAAW,OAAOsD,EAAGxL,KAAK,EAAE,GAAG,CAACkD,IAAI,OAAOgF,IAAI,WAAW,OAAOsD,EAAGxL,KAAKA,KAAKG,OAAO,EAAE,GAAG,CAAC+C,IAAI,UAAUtC,MAAM,SAASd,EAAEC,GAAG,OAAOoL,EAAEnL,KAAKF,EAAEC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,IAAI9B,IAAI,GAAG,CAACkD,IAAI,YAAYtC,MAAM,SAASd,GAAG,IAAIC,EAAEC,KAAK,OAAOF,EAAEiM,cAAcjM,GAAG,OAAO0L,EAAGzL,EAAED,EAAG,GAAE,GAAG,CAACoD,IAAI,WAAWtC,MAAM,SAASd,GAAG,OAAO0L,EAAGxL,KAAKF,EAAE,GAAG,CAACoD,IAAI,UAAUtC,MAAM,SAASd,EAAEC,GAAG,OAAO6L,EAAG5L,KAAKF,EAAEC,GAAE,EAAG,GAAG,CAACmD,IAAI,cAActC,MAAM,SAASd,EAAEC,GAAG,IAAIK,EAAEJ,KAAKG,aAAQ,IAASJ,GAAGA,GAAGK,KAAKL,EAAEK,EAAE,GAAGL,EAAE,IAAIA,GAAGK,GAAG,IAAI,IAAIC,EAAEN,EAAEM,GAAG,EAAEA,IAAI,GAAGmL,EAAGxL,KAAKK,KAAKP,EAAE,OAAOO,EAAE,OAAM,CAAE,GAAG,CAAC6C,IAAI,WAAWtC,MAAM,SAASd,EAAEC,GAAG,OAAM,IAAK6L,EAAG5L,KAAKF,EAAEC,GAAE,EAAG,GAAG,CAACmD,IAAI,SAAStC,MAAM,WAAW,OAA2C,KAAMP,EAAEsL,EAA1C3L,KAAO0L,EAAG7J,WAAM,EAAOC,WAA0BY,KAAmCtC,WAA3B,SAAI,EAAOoL,EAApExL,KAAyEK,GAAG,IAAUA,CAAC,GAAG,CAAC6C,IAAI,cAActC,MAAM,WAAW,OAAO+K,EAAG3L,KAAK0L,EAAG7J,WAAM,EAAOC,WAAW,GAAG,CAACoB,IAAI,UAAUtC,MAAM,WAAW,OAAcb,EAAE2L,EAAG7J,WAAM,EAAOC,WAAWzB,EAAEN,EAAE2C,KAAgEtC,YAAxD,IAAKuL,EAAnD3L,MAAuD,SAAWF,EAAEC,EAAEK,GAAG,OAAOC,EAAEP,EAAEC,EAAEK,EAAG,GAAE,GAAG,IAAML,EAAIM,CAAC,GAAG,CAAC6C,IAAI,QAAQtC,MAAM,WAAW,OAA2C,IAAK+K,EAAvC3L,KAAO0L,EAAG7J,WAAM,EAAOC,WAAuBY,KAAmBtC,WAAX,EAAY,GAAG,CAAC8C,IAAI,SAAStC,MAAM,SAASd,GAAG,IAAI,IAAIC,EAAE+B,UAAU3B,OAAOC,EAAE,IAAIE,MAAMP,EAAE,EAAEA,EAAE,EAAE,GAAGM,EAAE,EAAEA,EAAEN,EAAEM,IAAID,EAAEC,EAAE,GAAGyB,UAAUzB,GAAG,IAAII,EAAE,GAAG,OAAOT,KAAKqE,SAAO,SAAWtE,GAAG,IAAIM,EAAE,OAAOI,EAAEgC,KAAK,QAAQpC,EAAEN,EAAED,UAAK,IAASO,OAAE,EAAOA,EAAEe,KAAKS,MAAMxB,EAAE,CAACN,GAAG8J,OAAOzJ,IAAK,IAAGK,CAAC,GAAG,CAACyC,IAAI,UAAUtC,MAAM,WAAW,OAAOZ,KAAK+L,KAAG,SAAWjM,GAAG,OAAOA,CAAE,GAAE,GAAG,CAACoD,IAAI,UAAUtC,MAAM,WAAW,OAAOZ,KAAKkE,QAAM,SAAWpE,GAAG,OAAO,MAAMA,CAAE,GAAE,GAAG,CAACoD,IAAI,SAAStC,MAAM,WAAW,IAAId,EAAEgC,UAAU,OAAO9B,KAAKgM,MAAI,SAAWjM,EAAEK,GAAG,IAAIC,EAAEI,EAAE0C,EAAErD,GAAG,IAAI,IAAIW,EAAEkB,MAAMtB,EAAEI,EAAEL,KAAKO,MAAM,CAAC,IAAIO,EAAEb,EAAEO,MAAMS,EAAEtB,EAAEmB,GAAGS,EAAEvB,EAAEc,GAAGa,EAAEkK,QAAQ5K,EAAEM,GAAG,GAAGI,EAAE,OAAOA,CAAC,CAAC,CAAC,MAAMjC,GAAGW,EAAEV,EAAED,EAAE,CAAC,QAAQW,EAAE+B,GAAG,CAAC,OAAO,CAAE,GAAE,GAAG,CAACU,IAAI,SAAStC,MAAM,SAASd,GAAG,OAAO,SAASA,GAAG,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAGwJ,EAAElL,EAAE,GAAGC,EAAE,IAAI6L,IAAIzL,EAAE,mBAAmBV,EAAEA,EAAE,SAASD,GAAG,OAAOoI,IAAIpI,EAAEC,EAAE,EAAE,OAAOD,EAAEuE,kBAAkBvE,GAAG,IAAIC,EAAEU,EAAEX,GAAGO,EAAE4H,IAAIlI,KAAKM,EAAE8L,IAAIpM,GAAGK,EAAEqC,KAAK3C,GAAI,IAAGM,CAAC,CAA5N,CAA8NJ,KAAKF,EAAE,GAAG,CAACoD,IAAI,UAAUtC,MAAM,SAASd,GAAG,IAAIE,KAAKoM,SAAStM,GAAG,OAAOE,KAAK,IAAID,EAAED,GAAGA,EAAE,SAASC,GAAG,OAAOA,IAAID,CAAC,EAAE,SAASA,GAAG,OAAOA,GAAGA,CAAC,EAAE,OAAOE,KAAKkE,OAAOnE,EAAE,GAAG,CAACmD,IAAI,QAAQtC,MAAM,WAAW,IAAId,EAAEE,KAAKG,OAAO,OAAO,IAAIL,GAAGE,KAAK0I,QAAQ,EAAE5I,EAAE,IAAIE,IAAI,GAAG,CAACkD,IAAI,WAAWtC,MAAM,SAASd,EAAEC,GAAG,OAAO8L,EAAG7L,KAAKF,EAAEC,GAAGC,IAAI,GAAG,CAACkD,IAAI,YAAYtC,MAAM,SAASd,EAAEC,GAAG,OAAOC,KAAK0I,QAAQ5I,EAAE,EAAE,CAACC,GAAG,GAAG,CAACmD,IAAI,WAAWtC,MAAM,SAASd,EAAEC,GAAG,OAAO,SAASD,EAAEC,GAAG,OAAOoL,EAAErL,EAAEC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,EAAE,IAAIhC,CAAC,CAAzF,CAA2FE,KAAKF,EAAEC,EAAE,GAAG,CAACmD,IAAI,aAAatC,MAAM,SAASd,GAAG,OAAOE,KAAKqM,SAASrM,KAAKG,OAAOL,EAAE,GAAG,CAACoD,IAAI,cAActC,MAAM,SAASd,GAAG,OAAOE,KAAK0I,QAAQ1I,KAAKG,OAAO,EAAEL,GAAGE,IAAI,GAAG,CAACkD,IAAI,YAAYtC,MAAM,WAAW,IAAId,EAAEE,KAAKG,OAAO,GAAG,IAAIL,EAAE,OAAO,KAAK,IAAIC,EAAEyL,EAAGxL,KAAKF,EAAE,GAAG,OAAOE,KAAKsM,SAASxM,EAAE,EAAE,GAAGC,CAAC,GAAG,CAACmD,IAAI,cAActC,MAAM,WAAW,GAAG,IAAIZ,KAAKG,OAAO,OAAO,KAAK,IAAIL,EAAE0L,EAAGxL,KAAK,GAAG,OAAOA,KAAKsM,SAAS,GAAGxM,CAAC,GAAG,CAACoD,IAAI,gBAAgBtC,MAAM,SAASd,GAAG,OAAO+L,EAAG7L,KAAK,EAAEF,EAAE,GAAG,CAACoD,IAAI,iBAAiBtC,MAAM,SAASd,GAAG,OAAOE,KAAK0I,QAAQ,EAAE,EAAE5I,GAAGE,IAAI,GAAG,CAACkD,IAAI,iBAAiBtC,MAAM,WAAW,IAAId,EAAEE,KAAKG,OAAO,GAAG,IAAIL,EAAE,OAAOE,KAAK,IAAID,EAAEC,KAAKuM,UAAU1F,UAAU,OAAO7G,KAAK0I,QAAQ,EAAE5I,EAAEC,GAAGC,IAAI,GAAG,CAACkD,IAAI,aAAatC,MAAM,SAASd,GAAG,GAAG,IAAIA,EAAEK,OAAO,OAAOH,KAAKwM,QAAQ,IAAIzM,EAAEC,KAAKG,OAAO,OAAOH,KAAK0I,QAAQ,EAAE3I,EAAED,GAAGE,IAAI,GAAG,CAACkD,IAAI,eAAetC,MAAM,SAASd,GAAG,IAAI,IAAIC,EAAEC,KAAKG,QAAQ,IAAIJ,GAAG,GAAIyL,EAAGxL,KAAKD,KAAKD,GAAGE,KAAKsM,SAASvM,GAAG,OAAOC,IAAI,GAAG,CAACkD,IAAI,gBAAgBtC,MAAM,SAASd,GAAG,IAAI,IAAIC,EAAED,EAAEK,OAAO,EAAEJ,GAAG,EAAEA,IAAIC,KAAKyM,aAAa3M,EAAEC,IAAI,OAAOC,IAAI,GAAG,CAACkD,IAAI,YAAYtC,MAAM,SAASd,GAAG,OAAOE,KAAKoM,SAAStM,IAAIE,KAAK0M,WAAW5M,GAAGE,IAAI,GAAG,CAACkD,IAAI,aAAatC,MAAM,SAASd,GAAG,IAAIC,EAAEC,KAAK,OAAOF,EAAEuE,SAAO,SAAWvE,GAAG,OAAOC,EAAE4M,UAAU7M,EAAG,IAAGE,IAAI,IAAI,CAA/5H,GAAm6H,SAAS4M,GAAG9M,GAAG,IAAIC,EAAE,MAAMD,EAAE,GAAGC,EAAE,OAAOA,EAAE,GAAG,iBAAiBD,EAAE+M,KAAK,OAAO/M,EAAE+M,KAAK,IAAIzM,EAAEyF,EAAE/F,GAAG,GAAG,WAAWM,EAAE,CAAC,IAAIC,EAAEP,EAAE+M,KAAK,GAAG,iBAAiBxM,EAAE,OAAOA,CAAC,CAAC,GAAG,iBAAiBP,EAAEK,QAAQ,aAAaC,EAAE,OAAON,EAAEK,OAAO,GAAG,WAAWC,EAAE,CAAC,IAAIK,EAAEX,EAAEK,OAAO,GAAG,iBAAiBM,EAAE,OAAOA,CAAC,CAAC,QAAQ,CAAyH,SAASqM,KAAK,IAAIhN,EAAEC,EAAEK,EAAE,QAAQ,oBAAoB2M,SAAS,WAAWlH,EAAE,QAAQ/F,EAAEiN,eAAU,IAASjN,OAAE,EAAOA,EAAEkN,OAAM,KAAM,QAAQjN,EAAEgN,QAAQE,eAAU,IAASlN,GAAG,QAAQA,EAAEA,EAAEyG,YAAO,IAASzG,OAAE,EAAOA,EAAEmN,OAAO,gBAAgB,oBAAoBC,QAAQ,iBAAiB,QAAQ/M,EAAE+M,cAAS,IAAS/M,GAAG,QAAQA,EAAEA,EAAEgN,iBAAY,IAAShN,OAAE,EAAOA,EAAEiN,SAAS,CAAC,SAASC,KAAK,IAAIxN,EAAEgC,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAOgL,KAAKhC,EAAE,UAAU,cAAchL,GAAGgL,EAAE,UAAU,iBAAiBhL,EAAE,CAA0BG,GAAC,SAAWH,EAAEC,GAAGwC,EAAEvC,KAAKF,GAAGE,KAAKuN,MAAMxN,EAAEC,KAAKwN,SAAS,MAAMzN,OAAE,EAAOA,EAAEyN,SAASxN,KAAKyN,WAAWzN,KAAK0N,kBAAkB1N,KAAK2N,WAAW3N,KAAK4N,iBAAkB,GAAE,CAAC,CAAC1K,IAAI,QAAQtC,MAAM,WAAWZ,KAAK0N,kBAAkB1N,KAAK4N,iBAAiB,GAAG,CAAC1K,IAAI,kBAAkBtC,MAAM,WAAW,IAAId,EAAE,QAAQ,QAAQA,EAAEE,KAAKuN,aAAQ,IAASzN,OAAE,EAAOA,EAAE+N,qBAAqB,IAAIC,QAAM,SAAWhO,EAAEC,GAAG,OAAOA,EAAEgO,MAAM1J,SAAO,SAAWjE,GAAGN,EAAEM,GAAGL,CAAE,IAAGD,CAAE,GAAE,CAAA,EAAG,GAAG,CAACoD,IAAI,kBAAkBtC,MAAM,WAAW,IAAId,EAAEC,EAAE,CAACiO,aAAahO,KAAKkI,IAAI,iBAAiB+F,WAAWjO,KAAKkI,IAAI,SAASgG,YAAY,QAAQpO,EAAEE,KAAKwN,gBAAW,IAAS1N,GAAGA,EAAEqO,SAAS5M,OAAOwF,OAAO/G,KAAKwN,SAASW,UAAU,CAAC,EAAE,GAAGC,KAAKpO,KAAKqO,GAAG,CAAC,WAAW,cAAc,sBAAsB,eAAe,8BAA8B,gCAAgCC,OAAOtO,KAAKkI,IAAI,+BAA+BqG,WAAWvO,KAAKkI,IAAI,+BAA8B,GAAIsG,UAAUxO,KAAKkI,IAAI,+BAA+BuG,aAAazO,KAAKkI,IAAI,WAAU,GAAIwG,QAAQ1O,KAAKkI,IAAI,WAAU,GAAIyG,YAAY3O,KAAKkI,IAAI,WAAW0G,WAAW5O,KAAKkI,IAAI,gBAAgB,OAAOnI,EAAE8O,QAAQ,CAAC9O,EAAEiO,aAAajO,EAAEkO,YAAY/J,OAAOP,SAASuF,KAAK,KAAKnJ,CAAC,GAAG,CAACmD,IAAI,MAAMtC,MAAM,WAAW,OAAOZ,KAAK2N,UAAU,GAAG,CAACzK,IAAI,KAAKtC,MAAM,WAAW,IAAId,EAAEC,EAAEoD,EAAErB,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,IAAI,IAAI,IAAI/B,EAAE4B,MAAM7B,EAAEC,EAAEK,KAAKO,MAAM,CAAC,IAAIP,EAAEN,EAAEc,MAAM,GAAGqK,EAAE7K,GAAG,CAAC,IAAIC,EAAED,EAAE,GAAGK,EAAEL,EAAE,GAAG,GAAGJ,KAAKiI,IAAI5H,GAAG,OAAOL,KAAKkI,IAAI7H,EAAEI,EAAE,MAAM,GAAGT,KAAKiI,IAAI7H,GAAG,OAAOJ,KAAKkI,IAAI9H,EAAE,CAAC,CAAC,MAAMN,GAAGC,EAAEA,EAAED,EAAE,CAAC,QAAQC,EAAEyC,GAAG,CAAC,OAAO,IAAI,GAAG,CAACU,IAAI,MAAMtC,MAAM,SAASd,GAAG,OAAOA,KAAKE,KAAKyN,UAAU,GAAG,CAACvK,IAAI,MAAMtC,MAAM,SAASd,GAAG,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,IAAIA,UAAU,GAAG,OAAOhC,KAAKE,KAAKyN,WAAW1N,EAAEC,KAAKyN,WAAW3N,GAAGgP,WAAW9O,KAAKyN,WAAW3N,GAAGiP,UAAU,IAAI,GAAG,CAAC7L,IAAI,gBAAgBtC,MAAM,WAAW,IAAId,EAAEgC,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK2N,WAAWvJ,EAAEA,EAAE,GAAGpE,KAAK2N,YAAY7N,GAAGE,IAAI,GAAG,CAACkD,IAAI,eAAetC,MAAM,SAASd,EAAEC,GAAG,OAAOC,KAAK2N,WAAW7N,GAAGC,EAAEC,IAAI,GAAG,CAACkD,IAAI,eAAetC,MAAM,SAASd,GAAG,OAAOE,KAAK2N,WAAW7N,IAAI,IAAI,KAAO,IAACkP,GAAG,WAAW,SAASlP,IAAI,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,EAAE1B,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,EAAES,EAAEvC,KAAKF,GAAGE,KAAK6E,KAAK,QAAQ7E,KAAKkO,YAAY,CAAC9N,EAAEL,EAAE,CAAC,OAAOE,EAAEH,EAAE,CAAC,CAACoD,IAAI,WAAWgF,IAAI,WAAW,OAAOlI,KAAKkO,YAAY,EAAE,GAAG,CAAChL,IAAI,YAAYgF,IAAI,WAAW,OAAOlI,KAAKkO,YAAY,EAAE,GAAG,CAAChL,IAAI,MAAMtC,MAAM,WAAW,OAAOZ,KAAKiP,QAAQ,GAAG,CAAC/L,IAAI,MAAMtC,MAAM,WAAW,OAAOZ,KAAKkP,SAAS,GAAG,CAAChM,IAAI,YAAYtC,MAAM,WAAW,MAAM,CAACiE,KAAK,QAAQsK,YAAY,CAACnP,KAAKoP,MAAMpP,KAAKqP,OAAO,GAAG,CAACnM,IAAI,SAAStC,MAAM,WAAW,OAAOZ,KAAKsP,WAAW,GAAG,CAACpM,IAAI,WAAWtC,MAAM,WAAW,MAAM,IAAIiJ,OAAO7J,KAAKiP,SAAS,MAAMpF,OAAO7J,KAAKkP,UAAU,IAAI,IAAI,CAAC,CAAChM,IAAI,cAActC,MAAM,SAASb,GAAG,IAAIK,EAAE8E,EAAEnF,EAAEmO,YAAY,GAAG7N,EAAED,EAAE,GAAG,OAAO,IAAIN,EAAEM,EAAE,GAAGC,EAAE,IAAI,CAAzwB,GAA6wB,SAASkP,GAAGzP,EAAEC,GAAG,IAAIK,EAAEN,IAAI,OAAOQ,MAAMC,QAAQH,IAAI,WAAWyF,EAAEzF,GAAGoP,GAAGpP,EAAEL,GAAG,IAAI,CAAC,SAASyP,GAAG1P,EAAEC,GAAG,IAAIK,EAAEC,EAAEP,EAAEW,EAAEoF,EAAE/F,GAAGoB,EAAE,WAAWT,EAAEY,EAAE,aAAaZ,EAAEkB,EAAErB,MAAMC,QAAQT,GAAGiC,EAAE,WAAW8D,EAAE9F,IAAIA,EAAEqM,SAAS,KAAKrM,EAAEgJ,MAAM,KAAK,CAAChJ,GAAG,GAAG4B,GAAGT,EAAE,CAAC,IAAI,IAAIc,EAAE,EAAEA,EAAED,EAAE5B,OAAO6B,IAAI,CAAC,GAAG3B,QAAG,IAASA,EAAE0B,EAAEC,IAAI,OAAO,KAAK,GAAG3B,EAAE,CAAC,GAAa,WAAWwF,EAAEzF,EAAvBC,EAAEA,EAAE0B,EAAEC,OAAwB4K,GAAG,MAAMxM,OAAE,EAAOA,EAAEuN,aAAa,WAAW9H,EAAE,MAAMzF,OAAE,EAAOA,EAAEuN,kBAAa,IAAS5L,EAAEC,EAAE,GAAG,CAAC,IAAIC,EAAEF,EAAEmF,MAAMlF,EAAE,GAAGkH,KAAK,KAAK,OAAOsG,GAAGnP,EAAEsN,WAAW1L,EAAE,CAAC,GAAG,mBAAmB5B,EAAE,OAAOkP,GAAGlP,EAAE0B,EAAEmF,MAAMlF,EAAE,GAAGkH,KAAK,KAAK,CAAC,CAAC,OAAO7I,CAAC,CAAC,GAAGgB,EAAE,OAAOkO,GAAGzP,EAAEC,EAAE,CAAC,SAAS0P,GAAG3P,EAAEC,EAAEK,GAAG,IAAIC,EAAEP,EAAEW,EAAE,WAAWoF,EAAE/F,GAAGoB,EAAEZ,MAAMC,QAAQT,GAAGuB,EAAE,WAAWwE,EAAE9F,IAAIA,EAAEqM,SAAS,KAAKrM,EAAEgJ,MAAM,KAAK,CAAChJ,GAAG4B,EAAEN,EAAElB,OAAO,GAAGe,GAAGT,EAAE,CAAC,IAAI,IAAIsB,EAAE,EAAEA,EAAEJ,EAAE,EAAEI,IAAI1B,EAAEgB,EAAEU,MAAM1B,EAAEgB,EAAEU,IAAI,CAAA,GAAI1B,EAAEA,EAAEgB,EAAEU,IAAI1B,EAAEgB,EAAEM,EAAE,IAAIvB,CAAC,CAAC,OAAOA,CAAC,CAAC,SAASsP,GAAG5P,GAAG,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAG,GAAGhC,EAAE6K,QAAQM,EAAElL,GAAGA,EAAE,CAACA,IAAIkL,EAAElL,GAAG,OAAOA,aAAa4P,IAAI5P,EAAE6P,OAAO9P,GAAGA,EAAE,IAAIM,EAAEC,EAAE8C,EAAEpD,GAAG,IAAI,IAAIM,EAAEsB,MAAMvB,EAAEC,EAAED,KAAKO,MAAM,CAAC,IAAIF,EAAEL,EAAEQ,MAAMd,EAAE+P,cAAcpP,EAAE,CAAC,CAAC,MAAMX,GAAGO,EAAEN,EAAED,EAAE,CAAC,QAAQO,EAAEmC,GAAG,CAAC,CAAyI,IAAImN,GAAqB1P,GAAC,SAAWH,IAAI,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,KAAKS,EAAEvC,KAAKF,GAAGE,KAAK2K,QAAQ5K,EAAEC,KAAK0C,KAAKtC,CAAE,GAAE,CAAC,CAAC8C,IAAI,SAAStC,MAAM,WAAW,IAAId,GAAGgC,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,OAAO9B,KAAK0C,KAAK,IAAI5C,EAAE,OAAOE,KAAK,GAAG,MAAMA,MAAMA,KAAK2K,SAAS,WAAW9E,EAAE7F,KAAK2K,SAAS,IAAI,IAAI5K,KAAKC,KAAK2K,QAAQ,CAAC,IAAIvK,EAAEJ,KAAK2K,QAAQ5K,GAAwB0P,GAAG3P,EAAEC,EAA1B,mBAAmBK,EAASA,EAAEsC,KAAK5C,GAAWM,EAAE,CAAC,OAAOJ,IAAI,KAAQ,SAAS8P,GAAGhQ,GAAG,OAAOA,aAAaiQ,EAAE,CAAC,IAAIA,GAAqB9P,GAAC,SAAWH,IAAI,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE0B,UAAU3B,OAAO,EAAE2B,UAAU,QAAG,EAAOzB,EAAEyB,UAAU3B,OAAO,EAAE2B,UAAU,QAAG,EAAOrB,EAAEqB,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAGS,EAAEvC,KAAKF,GAAGE,KAAK2N,WAAW5N,EAAEC,KAAKgQ,gBAAgB,CAAA,EAAGhQ,KAAKiQ,QAAQ,GAAGjQ,KAAKkQ,WAAU,EAAGlQ,KAAKmQ,UAAS,EAAGnQ,KAAKoQ,cAAa,EAAGpQ,KAAKqQ,aAAY,EAAGrQ,KAAKsQ,SAASjQ,EAAEL,KAAKuQ,QAAQ9P,EAAET,KAAKwQ,QAAQ/P,EAAE+P,SAAS,KAAKxQ,KAAKyQ,WAAWrQ,EAAG,GAAE,CAAC,CAAC8C,IAAI,aAAatC,MAAM,SAASd,GAAG,IAAIC,EAAE,OAAOC,KAAK0Q,QAAQ5Q,EAAEE,KAAK2Q,MAAzqX,WAAa,OAAO9F,EAAEhJ,WAAM,EAAO,CAAC,QAAQ,SAASgI,OAAOvJ,MAAMsB,UAAUsF,MAAM9F,KAAKU,YAAY,CAA4kX8O,CAAE5Q,KAAKsQ,SAASxQ,EAAE,CAAC+Q,aAAa7Q,KAAK8Q,eAAepO,KAAK1C,MAAM2K,QAAQ,QAAQ5K,EAAEC,KAAKuQ,eAAU,IAASxQ,OAAE,EAAOA,EAAE4K,UAAU3K,IAAI,GAAG,CAACkD,IAAI,KAAKgF,IAAI,WAAW,OAAOlI,KAAK+Q,aAAa,KAAK,GAAG,CAAC7N,IAAI,SAAStC,MAAM,WAAW,IAAId,EAAEE,KAAKD,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAEJ,KAAKgR,gBAAgBjR,GAAG,OAAOC,KAAKiR,SAAS,CAAC,YAAY,aAAajR,KAAK2Q,MAAMjN,OAAOtD,GAAGsB,eAAe3B,GAAG,OAAOD,EAAEmR,SAAS,CAAC,YAAY,aAAY,GAAIlR,CAAE,GAAE,GAAG,CAACmD,IAAI,SAAStC,MAAM,WAAW,IAAId,EAAEE,KAAKD,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAKiR,SAAS,CAAC,YAAY,aAAajR,KAAK2Q,MAAMO,OAAOlR,KAAK2N,WAAWwD,GAAGpR,GAAG2B,MAAI,SAAW3B,GAAG,OAAOD,EAAEmR,SAAS,CAAC,YAAY,aAAY,GAAIlR,CAAE,GAAE,GAAG,CAACmD,IAAI,UAAUtC,MAAM,WAAW,IAAId,EAAEE,KAAK,OAAOA,KAAKiR,SAAS,CAAC,YAAY,iBAAiBjR,KAAK2Q,MAAMS,QAAQpR,KAAK2N,WAAWwD,IAAIzP,MAAI,SAAW3B,GAAG,OAAOD,EAAEmR,SAAS,CAAC,YAAY,iBAAgB,GAAIlR,CAAE,GAAE,GAAG,CAACmD,IAAI,SAAStC,MAAM,WAAW,IAAId,EAAEE,KAAK,OAAOA,KAAKiR,SAAS,CAAC,YAAY,gBAAgBjR,KAAK2Q,MAAMU,WAAWrR,KAAK2N,WAAWwD,IAAIzP,MAAI,SAAW3B,GAAG,OAAOD,EAAEsG,QAAQrG,CAAE,GAAE,GAAG,CAACmD,IAAI,WAAWtC,MAAM,WAAW,IAAI,IAAId,EAAEgC,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAG/B,IAAI+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,KAAKA,UAAU,GAAG1B,EAAE,CAAC,YAAY,WAAW,cAAc,gBAAgBC,EAAE,EAAEA,EAAEP,EAAEK,OAAOE,IAAI,CAAC,IAAII,EAAEX,EAAEO,GAAG,GAAG,iBAAiBI,IAAIL,EAAEgM,SAAS3L,GAAG,MAAM,IAAI2E,MAAM,GAAGyE,OAAOpJ,EAAE,0BAA0BT,KAAKS,GAAGV,CAAC,CAAC,OAAOC,IAAI,GAAG,CAACkD,IAAI,QAAQtC,MAAM,WAAW,OAAOZ,KAAKgQ,gBAAgB,CAAA,EAAGhQ,KAAKiQ,QAAQ,GAAGjQ,KAAKkQ,WAAU,EAAGlQ,KAAKmQ,UAAS,EAAGnQ,KAAKqQ,aAAY,EAAGrQ,IAAI,GAAG,CAACkD,IAAI,QAAQtC,MAAM,WAAW,OAAOZ,KAAKoG,QAAQpG,KAAKsR,UAAU,CAAA,EAAGtR,IAAI,GAAG,CAACkD,IAAI,OAAOtC,MAAM,WAAW,IAAId,EAAEgC,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG/B,EAAEC,KAAKuR,gBAAgB,OAAO3E,GAAG5M,KAAKmR,IAAInR,KAAK0D,OAAO3D,IAAG,IAAKD,EAAE0R,UAAUxR,KAAKyR,YAAYzR,KAAKkR,OAAOnR,EAAE,GAAG,CAACmD,IAAI,YAAYtC,MAAM,WAAW,IAAI,IAAId,EAAEyB,OAAOyC,KAAKhE,KAAKgQ,iBAAiBjQ,EAAE,CAAA,EAAGK,EAAE,EAAEA,EAAEN,EAAEK,OAAOC,IAAI,CAAC,IAAIC,EAAEP,EAAEM,GAAGL,EAAEM,GAAGL,KAAK+Q,aAAa1Q,EAAE,CAAC,OAAOL,KAAKkR,OAAOnR,EAAE,GAAG,CAACmD,IAAI,OAAOgF,IAAI,WAAW,OAAOlI,KAAK+Q,aAAa,OAAO,CAAA,EAAG,GAAG,CAAC7N,IAAI,YAAYgF,IAAI,WAAW,OAAOlI,KAAK0R,kBAAkB,cAAc,IAAIC,KAAK3R,KAAK+Q,aAAa,eAAe,IAAI,GAAG,CAAC7N,IAAI,YAAYgF,IAAI,WAAW,OAAOlI,KAAK0R,kBAAkB,cAAc,IAAIC,KAAK3R,KAAK+Q,aAAa,eAAe,IAAI,GAAG,CAAC7N,IAAI,WAAWgF,IAAI,WAAW,OAAOlI,KAAK4R,cAAc,CAAC,aAAa,MAAM,GAAG,CAAC1O,IAAI,UAAUgF,IAAI,WAAW,OAAO,IAAI3G,OAAOwF,OAAO,MAAM/G,UAAK,EAAOA,KAAK2N,YAAYxN,MAAM,GAAG,CAAC+C,IAAI,QAAQgF,IAAI,WAAW,OAAOlI,KAAKmR,EAAE,GAAG,CAACjO,IAAI,UAAUgF,IAAI,WAAW,OAAOlI,KAAK6R,OAAO7R,KAAK8R,QAAQ,GAAG,CAAC5O,IAAI,YAAYgF,IAAI,WAAW,OAAOlI,KAAK4R,cAAc,CAAC,UAAU,QAAQ,GAAG,CAAC1O,IAAI,gBAAgBtC,MAAM,SAASd,GAAG,IAAIC,EAAEK,EAAEJ,KAAK,MAAM,mBAAmBF,GAAGyB,OAAOyC,KAAK,QAAQjE,EAAE,MAAMC,UAAK,EAAOA,KAAK2N,kBAAa,IAAS5N,EAAEA,EAAE,IAAIsE,SAAO,SAAWtE,GAAG,IAAIM,EAAED,EAAE2Q,aAAahR,GAAGD,EAAEsB,KAAKhB,EAAEC,EAAEN,EAAG,IAAGC,IAAI,GAAG,CAACkD,IAAI,UAAUtC,MAAM,WAAW,OAAOZ,KAAKiQ,OAAO,GAAG,CAAC/M,IAAI,qBAAqBtC,MAAM,WAAW,OAAOZ,KAAKgQ,eAAe,GAAG,CAAC9M,IAAI,UAAUtC,MAAM,SAASd,GAAG,OAAOA,KAAKE,KAAKgQ,eAAe,GAAG,CAAC9M,IAAI,qBAAqBtC,MAAM,WAAW,IAAId,EAAE,OAAOyB,OAAOyC,KAAK,QAAQlE,EAAE,MAAME,UAAK,EAAOA,KAAKgQ,uBAAkB,IAASlQ,EAAEA,EAAE,CAAA,GAAIK,OAAO,CAAC,GAAG,CAAC+C,IAAI,SAAStC,MAAM,SAASd,EAAEC,GAAGC,KAAK2N,WAAW7N,GAAGC,CAAC,GAAG,CAACmD,IAAI,eAAetC,MAAM,SAASd,GAAG,IAAIC,EAAEK,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,KAAK,GAAG,OAAO1B,GAAG,WAAWyF,EAAE/F,GAAG,OAAOE,KAAK+R,cAAcjS,GAAG,IAAIO,EAAE,QAAQN,EAAE,MAAMC,UAAK,EAAOA,KAAK2N,WAAW7N,UAAK,IAASC,EAAEA,EAAE,KAAK,OAAO0P,GAAGzP,KAAK2N,WAAW7N,EAAEM,GAAGqP,GAAGzP,KAAKgQ,gBAAgBlQ,EAAEO,GAAG4K,EAAE,MAAMjL,UAAK,EAAOA,KAAKiQ,QAAQnQ,MAAME,KAAKiQ,QAAQnQ,GAAG,IAAIE,KAAKiQ,QAAQnQ,GAAG2C,KAAK,CAACuP,SAASlS,EAAEmS,cAAc5R,EAAEO,MAAMR,EAAE8R,UAAU,IAAIP,OAAO3R,IAAI,GAAG,CAACkD,IAAI,gBAAgBtC,MAAM,WAAW,IAAId,EAAEgC,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAG,IAAI,IAAI/B,KAAKD,EAAEE,KAAKmS,aAAapS,EAAED,EAAEC,IAAI,OAAOC,IAAI,GAAG,CAACkD,IAAI,eAAetC,MAAM,SAASd,GAAG,IAAIC,EAAEK,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,KAAKzB,EAAEmP,GAAG,QAAQzP,EAAE,MAAMC,UAAK,EAAOA,KAAK2N,kBAAa,IAAS5N,EAAEA,EAAE,CAAA,EAAGD,GAAG,YAAO,IAASO,EAAED,EAAEC,CAAC,GAAG,CAAC6C,IAAI,eAAetC,MAAM,SAASd,GAAG,GAAGmL,EAAEnL,GAAG,CAAC,IAAIC,EAAEK,EAAEN,EAAEO,EAAEkB,OAAOyC,KAAK,QAAQjE,EAAEC,KAAK2N,kBAAa,IAAS5N,EAAEA,EAAE,CAAA,GAAI,OAAOK,EAAEgS,gBAAgBtS,GAAG,OAAOO,EAAE+L,SAAStM,EAAG,GAAE,CAAC,QAAQ,MAAME,OAAOA,KAAK2N,aAAa7N,KAAKE,KAAK2N,UAAU,GAAG,CAACzK,IAAI,gBAAgBtC,MAAM,WAAW,IAAId,EAAEgC,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAG,OAAO9B,KAAKqS,aAAavS,EAAE,GAAG,CAACoD,IAAI,oBAAoBtC,MAAM,SAASd,GAAG,IAAIC,EAAEC,KAAK,OAAOiL,EAAEnL,GAAGE,KAAKqS,aAAavS,IAAIA,EAAEsS,OAAK,SAAWtS,GAAG,OAAO8M,GAAG7M,EAAEgR,aAAajR,GAAI,IAAGE,KAAKqS,aAAavS,KAAK8M,GAAG5M,KAAK+Q,aAAajR,GAAG,GAAG,CAACoD,IAAI,gBAAgBtC,MAAM,SAASd,GAAG,IAAIC,EAAE,CAAA,EAAG,GAAG,MAAMD,EAAE,OAAOE,KAAKuR,cAAchQ,OAAOyC,KAAKhE,KAAK2N,aAAa,GAAG,iBAAiB7N,EAAE,OAAOE,KAAK+Q,aAAazQ,MAAMsB,UAAUsF,MAAM9F,KAAKU,YAAY,IAAImJ,EAAEnL,GAAG,MAAM,IAAIsF,MAAM,qCAAqC,IAAIhF,EAAEC,EAAE8C,EAAErD,GAAG,IAAI,IAAIO,EAAEsB,MAAMvB,EAAEC,EAAED,KAAKO,MAAM,CAAC,IAAIF,EAAES,EAAEG,EAAEjB,EAAEQ,MAAM,GAAG,iBAAiBS,EAAE,CAAC,IAAIM,EAAE3B,KAAK+Q,aAAa1P,GAAG,WAAWwE,EAAE,QAAQpF,EAAEkB,SAAI,IAASlB,OAAE,EAAOA,EAAEkN,aAAa1C,EAAE,QAAQ/J,EAAES,SAAI,IAAST,OAAE,EAAOA,EAAEyM,cAAchM,EAAEA,EAAEgM,YAAY5N,EAAEsB,GAAGM,CAAC,CAAC,CAAC,CAAC,MAAM7B,GAAGO,EAAEN,EAAED,EAAE,CAAC,QAAQO,EAAEmC,GAAG,CAAC,OAAOzC,CAAC,GAAG,CAACmD,IAAI,YAAYtC,MAAM,WAAW,OAAOZ,KAAKuR,eAAe,GAAG,CAACrO,IAAI,kBAAkBtC,MAAM,WAAW,IAAId,EAAEC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE,QAAQN,EAAE,MAAME,UAAK,EAAOA,KAAK2N,kBAAa,IAAS7N,EAAEA,EAAE,CAAA,EAAG,OAAOE,KAAK2N,WAAWvJ,EAAEA,EAAE,CAAA,EAAGhE,GAAGL,GAAGC,KAAK2N,UAAU,GAAG,CAACzK,IAAI,iBAAiBtC,MAAM,WAAW,IAAId,EAAEgC,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG9B,KAAK2N,WAAW7N,CAAC,KAAQ8K,EAAE,WAAW,WAAWmF,IAAI,IAAIuC,GAAG,WAAW,OAAOrS,GAAC,SAAWH,EAAEC,EAAEK,GAAG,IAAIC,EAAEyB,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAGS,EAAEvC,KAAKF,GAAGE,KAAKsQ,SAASvQ,EAAEC,KAAK0Q,QAAQtQ,GAAGkN,KAAKtN,KAAKuS,UAAUpI,EAAEpK,GAAGC,KAAKwS,QAAQ1G,KAAK9L,KAAKuQ,QAAQlQ,EAAEL,KAAK6P,cAAcxP,EAAEsK,QAAS,GAAE,CAAC,CAACzH,IAAI,gBAAgBtC,MAAM,WAAW,OAAO8O,GAAG1P,KAAK8B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAG,GAAG,CAACoB,IAAI,UAAUtC,MAAM,SAASd,GAAG,OAAOA,CAAC,GAAG,CAACoD,IAAI,YAAYtC,MAAM,SAASd,GAAG,OAAOgL,EAAE,WAAWR,EAAEtK,KAAKsQ,UAAUxQ,EAAEE,KAAK0Q,QAAQ,GAAG,CAACxN,IAAI,aAAatC,MAAM,SAASd,GAAG,OAAO,SAASA,EAAEC,GAAG,GAAG,mBAAmBD,EAAEyQ,QAAQM,cAAc/Q,EAAEyQ,QAAQM,aAAa9Q,GAAGkL,EAAElL,GAAG,CAAC,IAAIK,EAAEC,EAAE,GAAGI,EAAE0C,EAAEpD,GAAG,IAAI,IAAIU,EAAEkB,MAAMvB,EAAEK,EAAEL,KAAKO,MAAM,CAAC,IAAIO,EAAEd,EAAEQ,MAAMP,EAAEoC,KAAK3C,EAAE2S,WAAWvR,GAAG,CAAC,CAAC,MAAMpB,GAAGW,EAAEV,EAAED,EAAE,CAAC,QAAQW,EAAE+B,GAAG,CAAC,OAAOsJ,GAAGjK,WAAM,EAAOxB,EAAE,CAAC,IAAIgB,EAAEvB,EAAEwP,UAAUvP,GAAG,OAAOD,EAAE4S,QAAQrR,EAAE,CAArR,CAAuRrB,KAAKF,EAAE,GAAG,CAACoD,IAAI,SAAStC,OAAOS,EAAEU,EAAEyC,IAAIiC,MAAI,SAAW3G,IAAI,IAAIC,EAAEK,EAAEC,EAAEI,EAAEqB,UAAU,OAAO0C,IAAIO,MAAI,SAAWjF,GAAG,OAAO,OAAOA,EAAEkH,KAAKlH,EAAEiB,MAAM,KAAK,EAAE,OAAOhB,EAAEU,EAAEN,OAAO,QAAG,IAASM,EAAE,GAAGA,EAAE,GAAG,CAAA,EAAGL,EAAEK,EAAEN,OAAO,QAAG,IAASM,EAAE,GAAGA,EAAE,GAAG,GAAGX,EAAEiB,KAAK,EAAEf,KAAK0Q,QAAQiC,KAAK,GAAG9I,OAAO7J,KAAKuS,WAAWxS,EAAEK,GAAG,KAAK,EAAE,OAAOC,EAAEP,EAAEyF,KAAKzF,EAAE4F,OAAO,SAAS1F,KAAKyS,WAAWpS,IAAI,KAAK,EAAE,IAAI,MAAM,OAAOP,EAAEqH,OAAQ,GAAErH,EAAEE,KAAM,KAAI,WAAW,OAAOqB,EAAEQ,MAAM7B,KAAK8B,UAAU,IAAI,CAACoB,IAAI,SAAStC,OAAOM,EAAEa,EAAEyC,IAAIiC,MAAI,SAAW3G,EAAEC,GAAG,IAAIK,EAAEC,EAAEI,EAAES,EAAEY,UAAU,OAAO0C,IAAIO,MAAI,SAAWjF,GAAG,OAAO,OAAOA,EAAEkH,KAAKlH,EAAEiB,MAAM,KAAK,EAAE,OAAOX,EAAEc,EAAEf,OAAO,QAAG,IAASe,EAAE,GAAGA,EAAE,GAAG,GAAGb,EAAEa,EAAEf,OAAO,QAAG,IAASe,EAAE,GAAGA,EAAE,GAAG,CAAA,EAAGpB,EAAEiB,KAAK,EAAEf,KAAK0Q,QAAQkC,IAAI,GAAG/I,OAAO7J,KAAKuS,UAAU,KAAK1I,OAAO9J,GAAGK,EAAEC,GAAG,KAAK,EAAE,OAAOI,EAAEX,EAAEyF,KAAKzF,EAAE4F,OAAO,SAAS1F,KAAKyS,WAAWhS,IAAI,KAAK,EAAE,IAAI,MAAM,OAAOX,EAAEqH,OAAQ,GAAErH,EAAEE,KAAM,KAAI,SAASF,GAAG,OAAOoB,EAAEW,MAAM7B,KAAK8B,UAAU,IAAI,CAACoB,IAAI,aAAatC,OAAOH,EAAEsB,EAAEyC,IAAIiC,eAAe3G,EAAEC,GAAG,IAAIK,EAAEC,EAAEI,EAAEqB,UAAU,OAAO0C,IAAIO,MAAI,SAAWjF,GAAG,OAAO,OAAOA,EAAEkH,KAAKlH,EAAEiB,MAAM,KAAK,EAAE,OAAOX,EAAEK,EAAEN,OAAO,QAAG,IAASM,EAAE,GAAGA,EAAE,GAAG,GAAGX,EAAEiB,KAAK,EAAEf,KAAK0Q,QAAQxI,IAAI,GAAG2B,OAAO7J,KAAKuS,UAAU,KAAK1I,OAAO9J,GAAG,GAAGK,GAAG,KAAK,EAAE,OAAOC,EAAEP,EAAEyF,KAAKzF,EAAE4F,OAAO,SAAS1F,KAAKyS,WAAWpS,IAAI,KAAK,EAAE,IAAI,MAAM,OAAOP,EAAEqH,OAAQ,GAAErH,EAAEE,KAAM,KAAI,SAASF,GAAG,OAAOW,EAAEoB,MAAM7B,KAAK8B,UAAU,IAAI,CAACoB,IAAI,UAAUtC,OAAOP,EAAE0B,EAAEyC,IAAIiC,MAAI,SAAW3G,IAAI,IAAIC,EAAEK,EAAEC,EAAEyB,UAAU,OAAO0C,IAAIO,MAAI,SAAWjF,GAAG,OAAO,OAAOA,EAAEkH,KAAKlH,EAAEiB,MAAM,KAAK,EAAE,OAAOhB,EAAEM,EAAEF,OAAO,QAAG,IAASE,EAAE,GAAGA,EAAE,GAAG,CAAA,EAAGP,EAAEiB,KAAK,EAAEf,KAAK0Q,QAAQxI,IAAI,GAAG2B,OAAO7J,KAAKuS,WAAW,CAAA,EAAGxS,GAAG,KAAK,EAAE,OAAOK,EAAEN,EAAEyF,KAAKzF,EAAE4F,OAAO,SAAS1F,KAAKyS,WAAWrS,IAAI,KAAK,EAAE,IAAI,MAAM,OAAON,EAAEqH,OAAQ,GAAErH,EAAEE,KAAM,KAAI,WAAW,OAAOK,EAAEwB,MAAM7B,KAAK8B,UAAU,IAAI,CAACoB,IAAI,QAAQtC,OAAOR,EAAE2B,EAAEyC,IAAIiC,eAAe3G,IAAI,IAAIC,EAAEK,EAAEC,EAAEI,EAAEqB,UAAU,OAAO0C,IAAIO,MAAI,SAAWjF,GAAG,OAAO,OAAOA,EAAEkH,KAAKlH,EAAEiB,MAAM,KAAK,EAAE,OAAOhB,EAAEU,EAAEN,OAAO,QAAG,IAASM,EAAE,GAAGA,EAAE,GAAG,CAAA,EAAGL,EAAEK,EAAEN,OAAO,QAAG,IAASM,EAAE,GAAGA,EAAE,GAAG,CAAA,EAAGX,EAAEiB,KAAK,EAAEf,KAAK0Q,QAAQxI,IAAI,GAAG2B,OAAO7J,KAAKuS,WAAWxS,EAAEK,GAAG,KAAK,EAAE,OAAOC,EAAEP,EAAEyF,KAAKzF,EAAE4F,OAAO,SAAS1F,KAAKyS,WAAWpS,IAAI,KAAK,EAAE,IAAI,MAAM,OAAOP,EAAEqH,OAAQ,GAAErH,EAAEE,KAAM,KAAI,WAAW,OAAOI,EAAEyB,MAAM7B,KAAK8B,UAAU,IAAI,CAACoB,IAAI,cAActC,OAAOb,EAAEgC,EAAEyC,IAAIiC,eAAe3G,IAAI,IAAIC,EAAEK,EAAEC,EAAEI,EAAEqB,UAAU,OAAO0C,IAAIO,MAAI,SAAWjF,GAAG,OAAO,OAAOA,EAAEkH,KAAKlH,EAAEiB,MAAM,KAAK,EAAE,OAAOX,EAAEK,EAAEN,OAAO,QAAG,IAASM,EAAE,GAAGA,EAAE,GAAG,IAAIV,EAAEU,EAAEN,OAAO,QAAG,IAASM,EAAE,GAAGA,EAAE,GAAG,CAAA,GAAIoS,QAAO,EAAG/S,EAAEiB,KAAK,EAAEf,KAAK0Q,QAAQxI,IAAI,GAAG2B,OAAO7J,KAAKuS,WAAWxS,EAAEK,GAAG,KAAK,EAAE,OAAOC,EAAEP,EAAEyF,KAAKzF,EAAE4F,OAAO,SAAS1F,KAAKyS,WAAWpS,IAAI,KAAK,EAAE,IAAI,MAAM,OAAOP,EAAEqH,OAAQ,GAAErH,EAAEE,KAAM,KAAI,WAAW,OAAOD,EAAE8B,MAAM7B,KAAK8B,UAAU,IAAI,CAACoB,IAAI,UAAUtC,OAAOd,EAAEiC,EAAEyC,IAAIiC,eAAe3G,EAAEC,GAAG,IAAIK,EAAEC,EAAEI,EAAES,EAAEY,UAAU,OAAO0C,IAAIO,MAAI,SAAWjF,GAAG,OAAO,OAAOA,EAAEkH,KAAKlH,EAAEiB,MAAM,KAAK,EAAE,OAAOX,EAAEc,EAAEf,OAAO,QAAG,IAASe,EAAE,GAAGA,EAAE,GAAG,CAAA,EAAGb,EAAEyP,GAAG/P,GAAGA,EAAEgR,aAAa,MAAMhR,EAAED,EAAEiB,KAAK,EAAEf,KAAK0Q,QAAQoC,OAAO,GAAGjJ,OAAO7J,KAAKuS,UAAU,KAAK1I,OAAOxJ,GAAG,CAAA,EAAGD,GAAG,KAAK,EAAE,OAAOK,EAAEX,EAAEyF,KAAKzF,EAAE4F,OAAO,SAAS1F,KAAKyS,WAAWhS,IAAI,KAAK,EAAE,IAAI,MAAM,OAAOX,EAAEqH,OAAQ,GAAErH,EAAEE,KAAM,KAAI,SAASD,GAAG,OAAOD,EAAE+B,MAAM7B,KAAK8B,UAAU,MAAM,IAAIhC,EAAEC,EAAEK,EAAEC,EAAEI,EAAES,EAAEG,CAAC,CAA5tH,GAAguHuJ,EAAE,QAAQ,QAAQ0H,IAAI,IAAIS,GAAG,IAAIpD,GAAG,CAACqD,mBAAmB,SAASlT,GAAG,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAG,OAAO9B,KAAK0Q,QAAQxI,IAAI,GAAG2B,OAAO7J,KAAKuS,UAAU,KAAK1I,OAAO/J,EAAE,sBAAsBC,EAAEK,EAAE,EAAE6S,gBAAgB,SAASnT,GAAG,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK0Q,QAAQxI,IAAI,GAAG2B,OAAO7J,KAAKuS,UAAU,KAAK1I,OAAO/J,EAAE,kBAAkBC,EAAEK,EAAE,EAAE8S,SAAS,SAASpT,GAAG,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK0Q,QAAQiC,KAAK,GAAG9I,OAAO7J,KAAKuS,UAAU,KAAK1I,OAAO/J,EAAE,aAAaC,EAAEK,GAAGsB,KAAK1B,KAAKyS,WAAW/P,KAAK1C,MAAM,EAAEmT,MAAM,SAASrT,GAAG,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAG1B,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK0Q,QAAQiC,KAAK,GAAG9I,OAAO7J,KAAKuS,UAAU,KAAK1I,OAAO/J,EAAE,UAAUC,EAAEK,GAAGsB,KAAK1B,KAAKyS,WAAW/P,KAAK1C,MAAM,EAAEoT,eAAe,SAAStT,GAAG,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK0Q,QAAQiC,KAAK,GAAG9I,OAAO7J,KAAKuS,UAAU,KAAK1I,OAAO/J,EAAE,oBAAoBC,EAAEK,GAAGsB,KAAK1B,KAAKyS,WAAW/P,KAAK1C,MAAM,EAAEqT,eAAe,SAASvT,EAAEC,GAAG,IAAIK,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAGzB,EAAEyB,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAOgO,GAAG/P,KAAKA,EAAEA,EAAEoR,IAAInR,KAAK0Q,QAAQiC,KAAK,GAAG9I,OAAO7J,KAAKuS,UAAU,KAAK1I,OAAO/J,EAAE,qBAAqB+J,OAAO9J,GAAGK,EAAEC,GAAGqB,KAAK1B,KAAKyS,WAAW/P,KAAK1C,MAAM,EAAEsT,cAAc,SAASxT,GAAG,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,KAAK1B,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAGzB,EAAEyB,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAOgO,GAAG/P,KAAKA,EAAEA,EAAEoR,IAAInR,KAAK0Q,QAAQiC,KAAK,GAAG9I,OAAO7J,KAAKuS,UAAU,KAAK1I,OAAO/J,EAAE,eAAe+J,OAAO9J,EAAE,IAAIA,EAAE,IAAIK,EAAEC,EAAE,EAAEkT,iBAAiB,SAASzT,GAAG,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,KAAK1B,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAGzB,EAAEyB,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAG,OAAOgO,GAAG/P,KAAKA,EAAEA,EAAEoR,IAAInR,KAAK0Q,QAAQiC,KAAK,GAAG9I,OAAO7J,KAAKuS,UAAU,KAAK1I,OAAO/J,EAAE,sBAAsB+J,OAAO9J,EAAE,IAAIA,EAAE,IAAIK,EAAEC,EAAE,EAAEgH,SAAS,SAASvH,GAAG,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAG,OAAO9B,KAAK0Q,QAAQiC,KAAK,GAAG9I,OAAO7J,KAAKuS,UAAU,KAAK1I,OAAO/J,EAAE,aAAaC,EAAEK,GAAGsB,KAAK1B,KAAKyS,WAAW/P,KAAK1C,MAAM,EAAEwT,OAAO,SAAS1T,GAAG,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK0Q,QAAQoC,OAAO,GAAGjJ,OAAO7J,KAAKuS,UAAU,KAAK1I,OAAO/J,EAAE,WAAWC,EAAEK,GAAGsB,KAAK1B,KAAKyS,WAAW/P,KAAK1C,MAAM,IAAIyT,GAAG,WAAW,SAAS3T,IAAI,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAG1B,EAAE0B,UAAU3B,OAAO,EAAE2B,UAAU,QAAG,EAAOzB,EAAEyB,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAOS,EAAEvC,KAAKF,GAAGmC,EAAEjC,KAAKF,EAAE,CAACC,EAAEK,EAAE,QAAQgE,EAAE,CAACuG,QAAQoI,IAAI1S,IAAI,CAAC,OAAOoD,EAAE3D,EAAEiQ,IAAI9P,EAAEH,EAAE,CAAC,CAACoD,IAAI,qBAAqBtC,MAAM,WAAW,IAAId,EAAEgC,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAG/B,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK2Q,MAAMqC,mBAAmBhT,KAAKmR,GAAGrR,EAAEC,EAAE,GAAG,CAACmD,IAAI,WAAWtC,MAAM,WAAW,IAAId,EAAEgC,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG/B,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK2Q,MAAMuC,SAASlT,KAAKmR,GAAGrR,EAAEC,EAAE,GAAG,CAACmD,IAAI,QAAQtC,MAAM,WAAW,IAAId,EAAEgC,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG/B,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK2Q,MAAMwC,MAAMnT,KAAKmR,GAAGrR,EAAEC,EAAE,GAAG,CAACmD,IAAI,iBAAiBtC,MAAM,SAASd,GAAG,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK2Q,MAAM0C,eAAerT,KAAKmR,GAAGrR,EAAEC,EAAEK,EAAE,GAAG,CAAC8C,IAAI,gBAAgBtC,MAAM,WAAW,IAAId,EAAEgC,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,KAAK/B,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAG,OAAO9B,KAAK2Q,MAAM2C,cAActT,KAAKmR,GAAGrR,EAAEC,EAAEK,EAAE,GAAG,CAAC8C,IAAI,mBAAmBtC,MAAM,WAAW,IAAId,EAAEgC,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,KAAK/B,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK2Q,MAAM4C,iBAAiBvT,KAAKmR,GAAGrR,EAAEC,EAAEK,EAAE,GAAG,CAAC8C,IAAI,kBAAkBtC,MAAM,WAAW,IAAId,EAAEgC,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG/B,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAG,OAAO9B,KAAK2Q,MAAMsC,gBAAgBjT,KAAKmR,GAAGrR,EAAEC,EAAE,GAAG,CAACmD,IAAI,iBAAiBtC,MAAM,WAAW,IAAId,EAAEgC,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAG/B,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK2Q,MAAMyC,eAAepT,KAAKmR,GAAGrR,EAAEC,EAAE,GAAG,CAACmD,IAAI,SAAStC,MAAM,WAAW,IAAId,EAAEgC,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG/B,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK2Q,MAAM6C,OAAOxT,KAAKmR,GAAGrR,EAAEC,EAAE,GAAG,CAACmD,IAAI,WAAWtC,MAAM,WAAW,IAAId,EAAEgC,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG/B,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK2Q,MAAMtJ,SAASrH,KAAKmR,GAAGrR,EAAEC,EAAE,GAAG,CAACmD,IAAI,eAAegF,IAAI,WAAW,OAAO,OAAOlI,KAAK+Q,aAAa,gBAAgB,GAAG,CAAC7N,IAAI,kBAAkBgF,IAAI,WAAW,OAAO,MAAMlI,KAAK+Q,aAAa,gBAAgB,GAAG,CAAC7N,IAAI,YAAYgF,IAAI,WAAW,OAAO,OAAOlI,KAAK+Q,aAAa,aAAa,GAAG,CAAC7N,IAAI,eAAegF,IAAI,WAAW,OAAO,MAAMlI,KAAK+Q,aAAa,aAAa,GAAG,CAAC7N,IAAI,cAAcgF,IAAI,WAAW,MAAM,aAAalI,KAAK+Q,aAAa,SAAS,GAAG,CAAC7N,IAAI,aAAagF,IAAI,WAAW,MAAM,YAAYlI,KAAK+Q,aAAa,SAAS,GAAG,CAAC7N,IAAI,YAAYgF,IAAI,WAAW,MAAM,kBAAkBlI,KAAK+Q,aAAa,WAAW,YAAY/Q,KAAK+Q,aAAa,SAAS,GAAG,CAAC7N,IAAI,eAAegF,IAAI,WAAW,OAAOlI,KAAK0T,YAAY1T,KAAK2T,aAAa3T,KAAK4T,WAAW,GAAG,CAAC1Q,IAAI,cAAcgF,IAAI,WAAW,OAAOlI,KAAK0R,kBAAkB,gBAAgB,IAAIC,KAAK3R,KAAK+Q,aAAa,iBAAiB,IAAI,GAAG,CAAC7N,IAAI,YAAYgF,IAAI,WAAW,OAAOlI,KAAK0R,kBAAkB,cAAc,IAAIC,KAAK3R,KAAK+Q,aAAa,eAAe,IAAI,GAAG,CAAC7N,IAAI,eAAegF,IAAI,WAAW,OAAOlI,KAAK0R,kBAAkB,iBAAiB,IAAIC,KAAK3R,KAAK+Q,aAAa,kBAAkB,IAAI,GAAG,CAAC7N,IAAI,SAASgF,IAAI,WAAW,OAAOlI,KAAK+Q,aAAa,SAAS,IAAI,CAA3jH,GAA+jHnG,EAAE,WAAW,QAAQ6I,IAAI,IAAII,GAAG,WAAW,SAAS/T,IAAI,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAG1B,EAAE0B,UAAU3B,OAAO,EAAE2B,UAAU,QAAG,EAAOzB,EAAEyB,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAOS,EAAEvC,KAAKF,GAAGmC,EAAEjC,KAAKF,EAAE,CAACC,EAAEK,EAAE,UAAUC,GAAG,CAAC,OAAOoD,EAAE3D,EAAEiQ,IAAI9P,EAAEH,EAAE,CAAC,CAACoD,IAAI,SAAStC,MAAM,SAASd,GAAG,GAAG,CAACoD,IAAI,WAAWgF,IAAI,WAAW,IAAIpI,EAAEE,KAAK,OAAO8L,GAAG9L,KAAK8T,SAAS/H,cAAchM,GAAG,OAAOgL,EAAE,SAAShL,EAAED,EAAE4Q,QAAS,IAAG,GAAG,CAACxN,IAAI,UAAUgF,IAAI,WAAW,OAAOlI,KAAK+T,QAAQhJ,EAAE,QAAQ/K,KAAK+T,QAAQ/T,KAAK0Q,SAAS,IAAI,GAAG,CAACxN,IAAI,SAASgF,IAAI,WAAW,OAAOlI,KAAKgU,OAAOjJ,EAAE,QAAQ/K,KAAKgU,OAAOhU,KAAK0Q,SAAS,IAAI,GAAG,CAACxN,IAAI,YAAYgF,IAAI,WAAW,IAAIpI,EAAEE,KAAK,OAAO8L,GAAG9L,KAAKiU,UAAUlI,KAAG,SAAWhM,GAAG,OAAOgL,EAAE,WAAWhL,EAAED,EAAE4Q,QAAS,IAAG,IAAI,CAA/sB,GAAmtB9F,EAAE,WAAW,UAAUiJ,IAAI,IAAIK,GAAG,WAAW,SAASpU,IAAI,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE0B,UAAU3B,OAAO,EAAE2B,UAAU,QAAG,EAAOzB,EAAEyB,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAG,OAAOS,EAAEvC,KAAKF,GAAGmC,EAAEjC,KAAKF,EAAE,CAACC,EAAEK,EAAE,SAASC,GAAG,CAAC,OAAOoD,EAAE3D,EAAEiQ,IAAI9P,EAAEH,EAAE,CAA5P,GAAgQ8K,EAAE,WAAW,SAASsJ,IAAI,IAAIC,GAAG,WAAW,SAASrU,IAAI,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE0B,UAAU3B,OAAO,EAAE2B,UAAU,QAAG,EAAOzB,EAAEyB,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAOS,EAAEvC,KAAKF,GAAGmC,EAAEjC,KAAKF,EAAE,CAACC,EAAEK,EAAE,QAAQC,GAAG,CAAC,OAAOoD,EAAE3D,EAAEiQ,IAAI9P,EAAEH,EAAE,CAAC,CAACoD,IAAI,WAAWgF,IAAI,WAAW,IAAIpI,EAAE,OAAO,QAAQA,EAAEE,KAAK+Q,aAAa,WAAW,IAAI/B,WAAM,IAASlP,OAAE,EAAOA,EAAEoO,YAAY,EAAE,GAAG,CAAChL,IAAI,YAAYgF,IAAI,WAAW,IAAIpI,EAAE,OAAO,QAAQA,EAAEE,KAAK+Q,aAAa,WAAW,IAAI/B,WAAM,IAASlP,OAAE,EAAOA,EAAEoO,YAAY,EAAE,GAAG,CAAChL,IAAI,cAAcgF,IAAI,WAAW,MAAM,CAAClI,KAAKiP,SAASjP,KAAKkP,UAAU,GAAG,CAAChM,IAAI,WAAWtC,MAAM,SAASd,GAAG,OAAOgQ,GAAGhQ,IAAIE,KAAKmS,aAAa,QAAQrS,EAAEqR,IAAI,iBAAiBrR,GAAGE,KAAKmS,aAAa,QAAQrS,GAAGE,IAAI,IAAI,CAAC,CAACkD,IAAI,oBAAoBtC,MAAM,SAASb,EAAEK,GAAG,IAAIC,EAAEyB,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAGrB,EAAEyE,EAAEnF,EAAEgR,aAAa,eAAe,GAAG7P,EAAET,EAAE,GAAGY,EAAEZ,EAAE,GAAG,OAAO,IAAIX,EAAE,CAAC0G,KAAK,KAAKqI,QAAQ9O,EAAEgR,aAAa,WAAW5C,SAAS,IAAIa,GAAG9N,EAAEG,GAAG+S,QAAQrU,EAAEgR,aAAa,WAAWsD,QAAQ,KAAKjG,KAAKrO,EAAEgR,aAAa,QAAQuD,SAASvU,EAAEgR,aAAa,aAAawD,YAAYxU,EAAEgR,aAAa,cAAcyD,aAAazU,EAAEmI,IAAI,gBAAgBuM,SAAS1U,EAAEgR,aAAa,UAAU2D,SAAS3U,EAAEmI,IAAI,YAAYwG,QAAQ3O,EAAEgR,aAAa,gBAAgB4D,MAAM,KAAKC,qBAAqB,MAAMxU,EAAEC,EAAE,IAAI,CAAjxC,GAAqxCuK,EAAE,WAAW,QAAQuJ,IAAI,IAAIU,GAAG,WAAW,SAAS/U,IAAI,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE0B,UAAU3B,OAAO,EAAE2B,UAAU,QAAG,EAAOzB,EAAEyB,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAOS,EAAEvC,KAAKF,GAAGmC,EAAEjC,KAAKF,EAAE,CAACC,EAAEK,EAAE,WAAWC,GAAG,CAAC,OAAOoD,EAAE3D,EAAEqU,IAAIlU,EAAEH,EAAE,CAA9P,GAAkQ8K,EAAE,WAAW,WAAWiK,IAAI,IAAIC,GAAG,WAAW,SAAShV,IAAI,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE0B,UAAU3B,OAAO,EAAE2B,UAAU,QAAG,EAAOzB,EAAEyB,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAOS,EAAEvC,KAAKF,GAAGmC,EAAEjC,KAAKF,EAAE,CAACC,EAAEK,EAAE,kBAAkBC,GAAG,CAAC,OAAOoD,EAAE3D,EAAEiQ,IAAI9P,EAAEH,EAAE,CAArQ,GAAyQ8K,EAAE,WAAW,iBAAiBkK,IAAI,IAAIC,GAAG,WAAW,SAASjV,IAAI,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE0B,UAAU3B,OAAO,EAAE2B,UAAU,QAAG,EAAOzB,EAAEyB,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAOS,EAAEvC,KAAKF,GAAGmC,EAAEjC,KAAKF,EAAE,CAACC,EAAEK,EAAE,UAAUC,GAAG,CAAC,OAAOoD,EAAE3D,EAAEiQ,IAAI9P,EAAEH,EAAE,CAA7P,GAAiQ8K,EAAE,WAAW,UAAUmK,IAAI,IAAIC,GAAG,IAAIrF,GAAG,CAACsF,QAAQ,WAAW,IAAInV,EAAEgC,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG/B,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK0Q,QAAQxI,IAAI,GAAG2B,OAAO7J,KAAKuS,UAAU,YAAYzS,EAAEC,EAAE,IAAImV,GAAG,WAAW,SAASpV,IAAI,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE0B,UAAU3B,OAAO,EAAE2B,UAAU,QAAG,EAAOzB,EAAEyB,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAG,OAAOS,EAAEvC,KAAKF,GAAGmC,EAAEjC,KAAKF,EAAE,CAACC,EAAEK,EAAE,eAAegE,EAAE,CAACuG,QAAQqK,IAAI3U,IAAI,CAAC,OAAOoD,EAAE3D,EAAEiQ,IAAI9P,EAAEH,EAAE,CAAlR,GAAsR8K,EAAE,WAAW,eAAesK,IAAI,IAAIC,GAAG,SAASrV,EAAEC,GAAG,OAAOkL,EAAEnL,GAAGA,EAAEiM,KAAG,SAAWjM,GAAG,OAAO,IAAIoV,GAAGpV,EAAEC,EAAG,IAAG,IAAImV,GAAGpV,EAAEC,EAAE,EAAEqV,GAAG,IAAIzF,GAAG,CAAC0F,MAAM,SAASvV,GAAG,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,KAAK1B,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,GAAG,WAAW,MAAM,iDAAiD8F,KAAK9F,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAG,CAAjI,CAAmIhC,GAAG,OAAOE,KAAK0Q,QAAQiC,KAAK,yBAAyB,CAACgC,MAAM7U,IAAI,IAAIC,EAAE,MAAM,IAAIqF,MAAM,4BAA4B,OAAOpF,KAAK0Q,QAAQiC,KAAK,gBAAgBvO,EAAE,CAACkR,SAASxV,EAAEyV,SAASxV,GAAGK,IAAIsB,KAAK1B,KAAKyS,WAAW/P,KAAK1C,MAAM,EAAEwV,WAAW,SAAS1V,EAAEC,GAAG,IAAIK,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK0Q,QAAQiC,KAAK,sBAAsBvO,EAAE,CAACkR,SAASxV,EAAE2V,KAAK1V,GAAGK,IAAIsB,KAAK1B,KAAKyS,WAAW/P,KAAK1C,MAAM,EAAE0V,MAAM,SAAS5V,GAAG,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAG,OAAO9B,KAAK0Q,QAAQiC,KAAK,WAAW9I,OAAO/J,EAAE,UAAUC,EAAEK,GAAGsB,KAAK1B,KAAKyS,WAAW/P,KAAK1C,MAAM,EAAE2V,kBAAkB,SAAS7V,GAAG,IAAIC,EAAEC,KAAKI,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAGzB,EAAEyB,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK0Q,QAAQxI,IAAI,WAAW2B,OAAO/J,EAAE,kBAAkBM,EAAEC,GAAGqB,MAAI,SAAW5B,GAAG,OAAOqV,GAAGrV,EAAEC,EAAE2Q,QAAS,GAAE,EAAEkF,mBAAmB,SAAS9V,GAAG,IAAIC,EAAEC,KAAKI,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAGzB,EAAEyB,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK0Q,QAAQiC,KAAK,WAAW9I,OAAO/J,EAAE,wBAAwBM,EAAEC,GAAGqB,MAAI,SAAW5B,GAAG,OAAOqV,GAAGrV,EAAEC,EAAE2Q,QAAS,GAAE,EAAEmF,oBAAoB,SAAS/V,GAAG,IAAIC,EAAEC,KAAKI,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAGzB,EAAEyB,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK0Q,QAAQxI,IAAI,WAAW2B,OAAO/J,EAAE,yBAAyBM,EAAEC,GAAGqB,MAAI,SAAW5B,GAAG,OAAOqV,GAAGrV,EAAEC,EAAE2Q,QAAS,GAAE,EAAEoF,SAAS,SAAShW,GAAG,OAAOE,KAAKqR,WAAWvR,EAAE,EAAEiW,WAAW,SAASjW,GAAG,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK0Q,QAAQiC,KAAK,WAAW9I,OAAO/J,EAAE,oBAAoBC,EAAEK,EAAE,IAAI4V,GAAG,WAAW,SAASlW,IAAI,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE0B,UAAU3B,OAAO,EAAE2B,UAAU,QAAG,EAAOzB,EAAEyB,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAOS,EAAEvC,KAAKF,GAAGmC,EAAEjC,KAAKF,EAAE,CAACC,EAAEK,EAAE,SAASgE,EAAE,CAACuG,QAAQyK,IAAI/U,IAAI,CAAC,OAAOoD,EAAE3D,EAAEiQ,IAAI9P,EAAEH,EAAE,CAAC,CAACoD,IAAI,QAAQgF,IAAI,WAAW,OAAOlI,KAAK+Q,aAAa,QAAQ,GAAG,CAAC7N,IAAI,WAAWgF,IAAI,WAAW,OAAM,IAAKlI,KAAK+Q,aAAa,SAAS,GAAG,CAAC7N,IAAI,WAAWgF,IAAI,WAAW,IAAIpI,EAAE,OAAO,QAAQA,EAAEE,KAAK+Q,aAAa,WAAW,IAAI/B,WAAM,IAASlP,OAAE,EAAOA,EAAEoO,YAAY,EAAE,GAAG,CAAChL,IAAI,YAAYgF,IAAI,WAAW,IAAIpI,EAAE,OAAO,QAAQA,EAAEE,KAAK+Q,aAAa,WAAW,IAAI/B,WAAM,IAASlP,OAAE,EAAOA,EAAEoO,YAAY,EAAE,GAAG,CAAChL,IAAI,cAAcgF,IAAI,WAAW,MAAM,CAAClI,KAAKiP,SAASjP,KAAKkP,UAAU,GAAG,CAAChM,IAAI,QAAQtC,MAAM,WAAW,IAAId,EAAEgC,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG/B,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK2Q,MAAM+E,MAAM1V,KAAKmR,GAAGrR,EAAEC,EAAE,GAAG,CAACmD,IAAI,aAAatC,MAAM,WAAW,IAAId,EAAEgC,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG/B,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK2Q,MAAMoF,WAAW/V,KAAKmR,GAAGrR,EAAEC,EAAE,GAAG,CAACmD,IAAI,oBAAoBtC,MAAM,WAAW,IAAId,EAAEgC,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG/B,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK2Q,MAAMgF,kBAAkB3V,KAAKmR,GAAGrR,EAAEC,EAAE,GAAG,CAACmD,IAAI,qBAAqBtC,MAAM,SAASd,GAAG,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAG,OAAO9B,KAAK2Q,MAAMiF,mBAAmB5V,KAAKmR,GAAG,CAACpQ,KAAKjB,GAAGC,EAAE,GAAG,CAACmD,IAAI,sBAAsBtC,MAAM,WAAW,IAAId,EAAEgC,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG/B,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAG,OAAO9B,KAAK2Q,MAAMkF,oBAAoB7V,KAAKmR,GAAGrR,EAAEC,EAAE,IAAI,CAA7sD,GAAitD6K,EAAE,WAAW,SAASoL,IAAI,IAAIC,GAAG,WAAW,SAASnW,IAAI,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE0B,UAAU3B,OAAO,EAAE2B,UAAU,QAAG,EAAOzB,EAAEyB,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAG,OAAOS,EAAEvC,KAAKF,GAAGmC,EAAEjC,KAAKF,EAAE,CAACC,EAAEK,EAAE,SAASC,GAAG,CAAC,OAAOoD,EAAE3D,EAAEiQ,IAAI9P,EAAEH,EAAE,CAA5P,GAAgQ8K,EAAE,WAAW,SAASqL,IAAI,IAAIC,GAAG,WAAW,SAASpW,IAAI,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE0B,UAAU3B,OAAO,EAAE2B,UAAU,QAAG,EAAOzB,EAAEyB,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAOS,EAAEvC,KAAKF,GAAGmC,EAAEjC,KAAKF,EAAE,CAACC,EAAEK,EAAE,UAAUC,GAAG,CAAC,OAAOoD,EAAE3D,EAAEiQ,IAAI9P,EAAEH,EAAE,CAA7P,GAAiQ8K,EAAE,WAAW,UAAUsL,IAAI,IAAIC,GAAG,WAAW,SAASrW,IAAI,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE0B,UAAU3B,OAAO,EAAE2B,UAAU,QAAG,EAAOzB,EAAEyB,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAG,OAAOS,EAAEvC,KAAKF,GAAGmC,EAAEjC,KAAKF,EAAE,CAACC,EAAEK,EAAE,OAAOC,GAAG,CAAC,OAAOoD,EAAE3D,EAAEiQ,IAAI9P,EAAEH,EAAE,CAA1P,GAA8P8K,EAAE,WAAW,OAAOuL,IAAI,IAAIC,GAAG,WAAW,SAAStW,IAAI,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE0B,UAAU3B,OAAO,EAAE2B,UAAU,QAAG,EAAOzB,EAAEyB,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAOS,EAAEvC,KAAKF,GAAGmC,EAAEjC,KAAKF,EAAE,CAACC,EAAEK,EAAE,eAAeC,GAAG,CAAC,OAAOoD,EAAE3D,EAAEiQ,IAAI9P,EAAEH,EAAE,CAAlQ,GAAsQ8K,EAAE,WAAW,cAAcwL,IAAI,IAAIC,GAAG,WAAW,SAASvW,IAAI,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE0B,UAAU3B,OAAO,EAAE2B,UAAU,QAAG,EAAOzB,EAAEyB,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAOS,EAAEvC,KAAKF,GAAGmC,EAAEjC,KAAKF,EAAE,CAACC,EAAEK,EAAE,eAAeC,GAAG,CAAC,OAAOoD,EAAE3D,EAAEiQ,IAAI9P,EAAEH,EAAE,CAAlQ,GAAsQ8K,EAAE,WAAW,cAAcyL,IAAI,IAAIC,GAAG,WAAW,SAASxW,IAAI,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE0B,UAAU3B,OAAO,EAAE2B,UAAU,QAAG,EAAOzB,EAAEyB,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAOS,EAAEvC,KAAKF,GAAGmC,EAAEjC,KAAKF,EAAE,CAACC,EAAEK,EAAE,gBAAgBC,GAAG,CAAC,OAAOoD,EAAE3D,EAAEiQ,IAAI9P,EAAEH,EAAE,CAAC,CAACoD,IAAI,kBAAkBtC,MAAM,WAAW,GAAG,CAACsC,IAAI,cAActC,MAAM,WAAW,IAAI,CAAvV,GAA2VgK,EAAE,WAAW,eAAe0L,IAAI,IAAIC,GAAG,WAAW,SAASzW,IAAI,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAG1B,EAAE0B,UAAU3B,OAAO,EAAE2B,UAAU,QAAG,EAAOzB,EAAEyB,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAOS,EAAEvC,KAAKF,GAAGmC,EAAEjC,KAAKF,EAAE,CAACC,EAAEK,EAAE,QAAQC,GAAG,CAAC,OAAOoD,EAAE3D,EAAEiQ,IAAI9P,EAAEH,EAAE,CAA3P,GAA+P8K,EAAE,WAAW,QAAQ2L,IAAI,IAAIC,GAAGvW,GAAC,SAAWH,IAAI,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAGS,EAAEvC,KAAKF,GAAGE,KAAKwQ,QAAQzQ,EAAEyQ,SAAS,KAAKxQ,KAAKyW,KAAK1W,EAAE0W,MAAM,KAAKzW,KAAKuS,UAAUxS,EAAEwS,WAAW,KAAKvS,KAAK0W,QAAQ3W,EAAE2W,SAAS,CAAA,CAAG,IAAG9L,EAAE,UAAU,UAAU4L,IAAI,IAAIG,GAAG,WAAW,SAAS7W,EAAEC,GAAG,IAAIK,EAAE,OAAOmC,EAAEvC,KAAKF,IAAIM,EAAE6B,EAAEjC,KAAKF,EAAE,CAACC,KAAK6W,WAAW,CAACC,cAAc,UAAUhN,OAAO9J,EAAE+W,WAAW,eAAe,mBAAmB,aAAa,2BAA2B1W,CAAC,CAAC,OAAOqD,EAAE3D,EAAE0W,IAAIvW,EAAEH,EAAE,CAAC,CAACoD,IAAI,aAAatC,MAAM,WAAW,IAAId,EAAEgC,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK0W,QAAQtS,EAAEA,EAAE,CAAA,EAAGpE,KAAK0W,SAAS5W,GAAGE,IAAI,GAAG,CAACkD,IAAI,YAAYtC,MAAM,SAASd,GAAG,OAAO,IAAIY,SAAO,SAAWX,EAAEK,GAAGN,EAAEiX,OAAOrV,MAAI,SAAWtB,GAAGL,EAAE,CAACiX,WAAWlX,EAAEkX,WAAWC,OAAOnX,EAAEmX,OAAOC,GAAGpX,EAAEoX,GAAGH,KAAK3W,GAAI,IAAGmH,OAAK,WAAanH,EAAE,IAAIgF,MAAM,0DAA2D,GAAG,GAAE,GAAG,CAAClC,IAAI,UAAUtC,MAAM,SAASd,GAAG,IAAIC,EAAEC,KAAKI,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,MAAMzB,EAAEyB,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAGrB,EAAEqB,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO,IAAIpB,SAAO,SAAWQ,EAAEG,GAAG8V,MAAM1W,EAAE2W,KAAK,GAAGvN,OAAO9J,EAAE0W,KAAK,KAAK5M,OAAO9J,EAAEwS,UAAU,KAAK1I,OAAO/J,GAAGsE,EAAE,CAACiB,OAAOjF,EAAEiX,KAAK5W,EAAE4W,MAAM,OAAOX,QAAQ,IAAIY,QAAQlT,EAAEA,EAAE,CAAA,EAAGrE,EAAE2W,SAAS,CAAA,GAAIjW,EAAEiW,SAAS,CAAA,KAAMrW,IAAIqB,KAAK3B,EAAEwX,WAAW7V,MAAI,SAAW5B,GAAG,GAAGA,EAAEoX,GAAG,OAAOhW,EAAEpB,EAAEiX,MAAM1V,EAAE,IAAI+D,MAAMtF,EAAEiX,KAAKS,OAAO1X,EAAEiX,KAAKS,OAAO,GAAG1X,EAAEkX,YAAa,IAAGzP,gBAAgBzH,GAAGuB,EAAEvB,EAAG,GAAG,GAAE,GAAG,CAACoD,IAAI,MAAMtC,MAAM,SAASd,GAAG,IAAIC,EAAEK,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAGzB,EAAEyB,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAGrB,EAAEmM,GAAG7M,EAAEK,IAAI,iBAAiBL,IAAG,IAAK,KAAK6H,KAAK7H,GAAG,GAAG,IAAI0X,gBAAgBrX,GAAGuH,WAAW,OAAO3H,KAAK0X,QAAQ,GAAG7N,OAAO/J,GAAG+J,OAAOpJ,EAAE,IAAIoJ,OAAOpJ,GAAG,IAAI,MAAM,CAAA,EAAGJ,EAAE,GAAG,CAAC6C,IAAI,OAAOtC,MAAM,SAASd,GAAG,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK0X,QAAQ5X,EAAE,OAAO,CAAC6X,KAAKC,KAAKC,UAAU9X,IAAIK,EAAE,GAAG,CAAC8C,IAAI,MAAMtC,MAAM,SAASd,GAAG,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAG1B,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK0X,QAAQ5X,EAAE,MAAM,CAAC6X,KAAKC,KAAKC,UAAU9X,IAAIK,EAAE,GAAG,CAAC8C,IAAI,SAAStC,MAAM,SAASd,GAAG,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK0X,QAAQ5X,EAAE,SAAS,CAAA,EAAGC,EAAE,GAAG,CAACmD,IAAI,QAAQtC,MAAM,SAASd,GAAG,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK0X,QAAQ5X,EAAE,QAAQ,CAAC6X,KAAKC,KAAKC,UAAU9X,IAAIK,EAAE,IAAI,CAArvE,GAAyvE,SAAS0X,GAAGhY,EAAEC,GAAG,OAAO,WAAW,OAAOD,EAAE+B,MAAM9B,EAAE+B,UAAU,CAAC,CAAC8I,EAAE,UAAU,iBAAiB+L,IAAI,IAAIoB,GAAGC,GAAGzW,OAAOK,UAAU+F,SAASsQ,GAAG1W,OAAOgC,eAAe2U,IAAIH,GAAGxW,OAAOmC,OAAO,MAAM,SAAS5D,GAAG,IAAIC,EAAEiY,GAAG5W,KAAKtB,GAAG,OAAOiY,GAAGhY,KAAKgY,GAAGhY,GAAGA,EAAEmH,MAAM,GAAE,GAAIsB,cAAc,GAAG2P,GAAG,SAASrY,GAAG,OAAOA,EAAEA,EAAE0I,cAAc,SAASzI,GAAG,OAAOmY,GAAGnY,KAAKD,CAAC,CAAC,EAAEsY,GAAG,SAAStY,GAAG,OAAO,SAASC,GAAG,OAAO8F,EAAE9F,KAAKD,CAAC,CAAC,EAAEuY,GAAG/X,MAAMC,QAAQ+X,GAAGF,GAAG,aAAiBG,GAAGJ,GAAG,eAAmBK,GAAGJ,GAAG,UAAUK,GAAGL,GAAG,YAAYM,GAAGN,GAAG,UAAUO,GAAG,SAAS7Y,GAAG,OAAO,OAAOA,GAAG,WAAW+F,EAAE/F,EAAE,EAAE8Y,GAAG,SAAS9Y,GAAG,GAAG,WAAWoY,GAAGpY,GAAG,OAAM,EAAG,IAAIC,EAAEkY,GAAGnY,GAAG,QAAQ,OAAOC,GAAGA,IAAIwB,OAAOK,WAAW,OAAOL,OAAOgC,eAAexD,IAAIc,OAAO6D,eAAe5E,GAAGe,OAAOC,YAAYhB,EAAE,EAAE+Y,GAAGV,GAAG,QAAQW,GAAGX,GAAG,QAAQY,GAAGZ,GAAG,QAAQa,GAAGb,GAAG,YAAYc,GAAGd,GAAG,mBAAmBe,GAAGhU,EAAE,CAAC,iBAAiB,UAAU,WAAW,WAAW6G,IAAIoM,IAAI,GAAGgB,GAAGD,GAAG,GAAGE,GAAGF,GAAG,GAAGG,GAAGH,GAAG,GAAGI,GAAGJ,GAAG,GAAG,SAASK,GAAGzZ,EAAEC,GAAG,IAAIK,EAAEC,EAAEI,GAAGqB,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,GAAI0X,WAAWtY,OAAE,IAAST,GAAGA,EAAE,GAAG,MAAMX,EAAE,GAAG,WAAW+F,EAAE/F,KAAKA,EAAE,CAACA,IAAIuY,GAAGvY,GAAG,IAAIM,EAAE,EAAEC,EAAEP,EAAEK,OAAOC,EAAEC,EAAED,IAAIL,EAAEqB,KAAK,KAAKtB,EAAEM,GAAGA,EAAEN,OAAO,CAAC,IAAIuB,EAAEM,EAAET,EAAEK,OAAOkY,oBAAoB3Z,GAAGyB,OAAOyC,KAAKlE,GAAGiC,EAAEJ,EAAExB,OAAO,IAAIC,EAAE,EAAEA,EAAE2B,EAAE3B,IAAIiB,EAAEM,EAAEvB,GAAGL,EAAEqB,KAAK,KAAKtB,EAAEuB,GAAGA,EAAEvB,EAAE,CAAC,CAAC,SAAS4Z,GAAG5Z,EAAEC,GAAGA,EAAEA,EAAEyI,cAAc,IAAI,IAAIpI,EAAEC,EAAEkB,OAAOyC,KAAKlE,GAAGW,EAAEJ,EAAEF,OAAOM,KAAK,GAAG,GAAGV,KAAKK,EAAEC,EAAEI,IAAI+H,cAAc,OAAOpI,EAAE,OAAO,IAAI,CAAC,IAAiKuZ,GAAmfC,GAAGC,GAAGC,GAAGC,GAAzpBC,GAAG,oBAAoBC,WAAWA,WAAW,oBAAoBC,KAAKA,KAAK,oBAAoB/M,OAAOA,OAAOgN,OAAOC,GAAG,SAASta,GAAG,OAAOwY,GAAGxY,IAAIA,IAAIka,EAAE,EAASK,IAAIV,GAAG,oBAAoBW,YAAYrC,GAAGqC,YAAY,SAASxa,GAAG,OAAO6Z,IAAI7Z,aAAa6Z,EAAE,GAAGY,GAAGpC,GAAG,mBAAmBqC,GAAG,WAAW,IAAI1a,EAAEyB,OAAOK,UAAU6C,eAAe,OAAO,SAAS1E,EAAEK,GAAG,OAAON,EAAEsB,KAAKrB,EAAEK,EAAE,CAAC,CAAzF,GAA6Fqa,GAAGtC,GAAG,UAAUuC,GAAG,SAAS5a,EAAEC,GAAG,IAAIK,EAAEmB,OAAO+C,0BAA0BxE,GAAGO,EAAE,CAAA,EAAGkZ,GAAGnZ,GAAC,SAAWA,EAAEK,GAAG,IAAIS,GAAE,KAAMA,EAAEnB,EAAEK,EAAEK,EAAEX,MAAMO,EAAEI,GAAGS,GAAGd,EAAG,IAAGmB,OAAOgD,iBAAiBzE,EAAEO,EAAE,EAAEsa,GAAG,6BAA6BC,GAAG,aAAaC,GAAG,CAACC,MAAMF,GAAGG,MAAMJ,GAAGK,YAAYL,GAAGA,GAAG3R,cAAc4R,IAAoBK,GAAG9C,GAAG,iBAAiB+C,IAAItB,GAAG,mBAAmBuB,aAAatB,GAAGpB,GAAGuB,GAAGoB,aAAaxB,GAAGuB,aAAatB,IAAIC,GAAG,SAASjQ,OAAOwR,KAAKC,UAAUvB,GAAG,GAAGC,GAAGuB,iBAAiB,oBAAoBzb,GAAG,IAAIC,EAAED,EAAE0b,OAAOpb,EAAEN,EAAE2b,KAAK1b,IAAIia,IAAI5Z,IAAI0Z,IAAIC,GAAG5Z,QAAQ4Z,GAAG7P,OAAH6P,EAAa,IAAE,GAAI,SAASja,GAAGia,GAAGtX,KAAK3C,GAAGka,GAAGoB,YAAYtB,GAAG,IAAI,GAAG,SAASha,GAAG,OAAO4b,WAAW5b,EAAE,GAAG6b,GAAG,oBAAoBC,eAAeA,eAAelZ,KAAKsX,IAAI,oBAAoBjN,SAASA,QAAQ8O,UAAUX,GAAGY,GAAG,CAACvb,QAAQ8X,GAAG0D,cAAcxD,GAAGyD,SAAS,SAASlc,GAAG,OAAO,OAAOA,IAAIwY,GAAGxY,IAAI,OAAOA,EAAEwC,cAAcgW,GAAGxY,EAAEwC,cAAcmW,GAAG3Y,EAAEwC,YAAY0Z,WAAWlc,EAAEwC,YAAY0Z,SAASlc,EAAE,EAAEmc,WAAW,SAASnc,GAAG,IAAIC,EAAE,OAAOD,IAAI,mBAAmBoc,UAAUpc,aAAaoc,UAAUzD,GAAG3Y,EAAEqc,UAAU,cAAcpc,EAAEmY,GAAGpY,KAAK,WAAWC,GAAG0Y,GAAG3Y,EAAE6H,WAAW,sBAAsB7H,EAAE6H,YAAY,EAAEyU,kBAAkB,SAAStc,GAAG,MAAM,oBAAoBuc,aAAaA,YAAYC,OAAOD,YAAYC,OAAOxc,GAAGA,GAAGA,EAAEyc,QAAQhE,GAAGzY,EAAEyc,OAAO,EAAEC,SAAShE,GAAGiE,SAAS/D,GAAGgE,UAAU,SAAS5c,GAAG,OAAM,IAAKA,IAAG,IAAKA,CAAC,EAAE6c,SAAShE,GAAGiE,cAAchE,GAAGiE,iBAAiB1D,GAAG2D,UAAU1D,GAAG2D,WAAW1D,GAAG2D,UAAU1D,GAAG2D,YAAY3E,GAAG4E,OAAOrE,GAAGsE,OAAOrE,GAAGsE,OAAOrE,GAAGsE,SAAS5C,GAAG6C,WAAW7E,GAAG8E,SAAS,SAASzd,GAAG,OAAO6Y,GAAG7Y,IAAI2Y,GAAG3Y,EAAE0d,KAAK,EAAEC,kBAAkBxE,GAAGyE,aAAarD,GAAGsD,WAAW3E,GAAG3U,QAAQkV,GAAGqE,MAAM,SAAS9d,IAAI,IAAI,IAAIC,GAAGqa,GAAGpa,OAAOA,MAAM,IAAI6d,SAASzd,EAAE,CAAA,EAAGC,EAAE,SAASA,EAAEI,GAAG,IAAIS,EAAEnB,GAAG2Z,GAAGtZ,EAAEK,IAAIA,EAAEmY,GAAGxY,EAAEc,KAAK0X,GAAGvY,GAAGD,EAAEc,GAAGpB,EAAEM,EAAEc,GAAGb,GAAGuY,GAAGvY,GAAGD,EAAEc,GAAGpB,EAAE,GAAGO,GAAGgY,GAAGhY,GAAGD,EAAEc,GAAGb,EAAE6G,QAAQ9G,EAAEc,GAAGb,CAAC,EAAEI,EAAE,EAAES,EAAEY,UAAU3B,OAAOM,EAAES,EAAET,IAAIqB,UAAUrB,IAAI8Y,GAAGzX,UAAUrB,GAAGJ,GAAG,OAAOD,CAAC,EAAEwP,OAAO,SAAS9P,EAAEC,EAAEK,GAAG,OAAOmZ,GAAGxZ,GAAC,SAAWA,EAAEM,GAAGD,GAAGqY,GAAG1Y,GAAGD,EAAEO,GAAGyX,GAAG/X,EAAEK,GAAGN,EAAEO,GAAGN,CAAE,GAAE,CAACyZ,YAAY1X,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,GAAI0X,aAAa1Z,CAAC,EAAEgK,KAAK,SAAShK,GAAG,OAAOA,EAAEgK,KAAKhK,EAAEgK,OAAOhK,EAAE4I,QAAQ,qCAAqC,GAAG,EAAEoV,SAAS,SAAShe,GAAG,OAAO,QAAQA,EAAEie,WAAW,KAAKje,EAAEA,EAAEoH,MAAM,IAAIpH,CAAC,EAAEke,SAAS,SAASle,EAAEC,EAAEK,EAAEC,GAAGP,EAAE8B,UAAUL,OAAOmC,OAAO3D,EAAE6B,UAAUvB,GAAGP,EAAE8B,UAAUU,YAAYxC,EAAEyB,OAAOyB,eAAelD,EAAE,QAAQ,CAACc,MAAMb,EAAE6B,YAAYxB,GAAGmB,OAAO0c,OAAOne,EAAE8B,UAAUxB,EAAE,EAAE8d,aAAa,SAASpe,EAAEC,EAAEK,EAAEC,GAAG,IAAII,EAAES,EAAEG,EAAEM,EAAE,CAAA,EAAG,GAAG5B,EAAEA,GAAG,CAAA,EAAG,MAAMD,EAAE,OAAOC,EAAE,EAAE,CAAC,IAAImB,GAAGT,EAAEc,OAAOkY,oBAAoB3Z,IAAIK,OAAOe,KAAK,GAAGG,EAAEZ,EAAES,GAAGb,IAAIA,EAAEgB,EAAEvB,EAAEC,IAAI4B,EAAEN,KAAKtB,EAAEsB,GAAGvB,EAAEuB,GAAGM,EAAEN,IAAG,GAAIvB,GAAE,IAAKM,GAAG6X,GAAGnY,EAAE,OAAOA,KAAKM,GAAGA,EAAEN,EAAEC,KAAKD,IAAIyB,OAAOK,WAAW,OAAO7B,CAAC,EAAEoe,OAAOjG,GAAGkG,WAAWjG,GAAGkG,SAAS,SAASve,EAAEC,EAAEK,GAAGN,EAAE4H,OAAO5H,SAAI,IAASM,GAAGA,EAAEN,EAAEK,UAAUC,EAAEN,EAAEK,QAAQC,GAAGL,EAAEI,OAAO,IAAIE,EAAEP,EAAEkI,QAAQjI,EAAEK,GAAG,WAAWC,GAAGA,IAAID,CAAC,EAAEmM,QAAQ,SAASzM,GAAG,IAAIA,EAAE,OAAO,KAAK,GAAGuY,GAAGvY,GAAG,OAAOA,EAAE,IAAIC,EAAED,EAAEK,OAAO,IAAIuY,GAAG3Y,GAAG,OAAO,KAAK,IAAI,IAAIK,EAAE,IAAIE,MAAMP,GAAGA,KAAK,GAAGK,EAAEL,GAAGD,EAAEC,GAAG,OAAOK,CAAC,EAAEke,aAAa,SAASxe,EAAEC,GAAG,IAAI,IAAIK,EAAEC,GAAGP,GAAGA,EAAEe,OAAOC,WAAWM,KAAKtB,IAAIM,EAAEC,EAAEU,UAAUX,EAAEO,MAAM,CAAC,IAAIF,EAAEL,EAAEQ,MAAMb,EAAEqB,KAAKtB,EAAEW,EAAE,GAAGA,EAAE,GAAG,CAAC,EAAE8d,SAAS,SAASze,EAAEC,GAAG,IAAI,IAAIK,EAAEC,EAAE,GAAG,QAAQD,EAAEN,EAAE0e,KAAKze,KAAKM,EAAEoC,KAAKrC,GAAG,OAAOC,CAAC,EAAEoe,WAAWlE,GAAG9V,eAAe+V,GAAGkE,WAAWlE,GAAGmE,kBAAkBjE,GAAGkE,cAAc,SAAS9e,GAAG4a,GAAG5a,GAAC,SAAWC,EAAEK,GAAG,GAAGqY,GAAG3Y,KAAI,IAAK,CAAC,YAAY,SAAS,UAAUkI,QAAQ5H,GAAG,OAAM,EAAG,IAAIC,EAAEP,EAAEM,GAAGqY,GAAGpY,KAAKN,EAAE8C,YAAW,EAAG,aAAa9C,EAAEA,EAAEgD,UAAS,EAAGhD,EAAEoI,MAAMpI,EAAEoI,IAAI,WAAW,MAAM/C,MAAM,qCAAqChF,EAAE,IAAI,GAAI,GAAE,EAAEye,YAAY,SAAS/e,EAAEC,GAAG,IAAIK,EAAE,CAAA,EAAGC,EAAE,SAASP,GAAGA,EAAEuE,SAAO,SAAWvE,GAAGM,EAAEN,IAAG,CAAG,GAAE,EAAE,OAAOuY,GAAGvY,GAAGO,EAAEP,GAAGO,EAAEqH,OAAO5H,GAAGiJ,MAAMhJ,IAAIK,CAAC,EAAE0e,YAAY,SAAShf,GAAG,OAAOA,EAAE0I,cAAcE,QAAQ,yBAAuB,SAAW5I,EAAEC,EAAEK,GAAG,OAAOL,EAAEiJ,cAAc5I,CAAE,GAAE,EAAE2e,KAAK,WAAW,EAAEC,eAAe,SAASlf,EAAEC,GAAG,OAAO,MAAMD,GAAGmf,OAAOC,SAASpf,GAAGA,GAAGA,EAAEC,CAAC,EAAEof,QAAQzF,GAAGS,OAAOH,GAAGoF,iBAAiBhF,GAAGiF,SAASxE,GAAGyE,eAAe,WAAW,IAAI,IAAIxf,EAAEgC,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAG/B,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG+Y,GAAGG,YAAY5a,EAAE,GAAGC,EAAEN,EAAEI,OAAOL,KAAKM,GAAGL,EAAEsb,KAAKC,SAASjb,EAAE,GAAG,OAAOD,CAAC,EAAEmf,oBAAoB,SAASzf,GAAG,SAASA,GAAG2Y,GAAG3Y,EAAEqc,SAAS,aAAarc,EAAEe,OAAO6D,cAAc5E,EAAEe,OAAOC,UAAU,EAAE0e,aAAa,SAAS1f,GAAG,IAAIC,EAAE,IAAIO,MAAM,IAAIF,EAAE,SAASN,EAAEO,GAAG,GAAGsY,GAAG7Y,GAAG,CAAC,GAAGC,EAAEiI,QAAQlI,IAAI,EAAE,OAAO,KAAK,WAAWA,GAAG,CAACC,EAAEM,GAAGP,EAAE,IAAIW,EAAE4X,GAAGvY,GAAG,GAAG,CAAA,EAAG,OAAOyZ,GAAGzZ,GAAC,SAAWA,EAAEC,GAAG,IAAImB,EAAEd,EAAEN,EAAEO,EAAE,IAAIiY,GAAGpX,KAAKT,EAAEV,GAAGmB,EAAG,IAAGnB,EAAEM,QAAG,EAAOI,CAAC,CAAC,CAAC,OAAOX,CAAC,EAAE,OAAOM,EAAEN,EAAE,EAAE,EAAE2f,UAAUxE,GAAGyE,WAAW,SAAS5f,GAAG,OAAOA,IAAI6Y,GAAG7Y,IAAI2Y,GAAG3Y,KAAK2Y,GAAG3Y,EAAE4B,OAAO+W,GAAG3Y,EAAEyH,MAAM,EAAE4T,aAAaD,GAAGyE,KAAKhE,IAAI,SAASiE,GAAG9f,EAAEC,EAAEK,EAAEC,EAAEI,GAAG2E,MAAMhE,KAAKpB,MAAMoF,MAAMya,kBAAkBza,MAAMya,kBAAkB7f,KAAKA,KAAKsC,aAAatC,KAAK8f,OAAM,IAAK1a,OAAO0a,MAAM9f,KAAK+f,QAAQjgB,EAAEE,KAAKwG,KAAK,aAAazG,IAAIC,KAAKyV,KAAK1V,GAAGK,IAAIJ,KAAKggB,OAAO5f,GAAGC,IAAIL,KAAK0X,QAAQrX,GAAGI,IAAIT,KAAKigB,SAASxf,EAAET,KAAKiX,OAAOxW,EAAEwW,OAAOxW,EAAEwW,OAAO,KAAK,CAAC6E,GAAGkC,SAAS4B,GAAGxa,MAAM,CAAC8a,OAAO,WAAW,MAAM,CAACH,QAAQ/f,KAAK+f,QAAQvZ,KAAKxG,KAAKwG,KAAK2Z,YAAYngB,KAAKmgB,YAAYC,OAAOpgB,KAAKogB,OAAOC,SAASrgB,KAAKqgB,SAASC,WAAWtgB,KAAKsgB,WAAWC,aAAavgB,KAAKugB,aAAaT,MAAM9f,KAAK8f,MAAME,OAAOlE,GAAG0D,aAAaxf,KAAKggB,QAAQvK,KAAKzV,KAAKyV,KAAKwB,OAAOjX,KAAKiX,OAAO,IAAI,IAAIuJ,GAAGZ,GAAGhe,UAAU6e,GAAG,CAAA,EAAwkB,SAASC,GAAG5gB,GAAG,OAAOgc,GAAGc,cAAc9c,IAAIgc,GAAGvb,QAAQT,EAAE,CAAC,SAAS6gB,GAAG7gB,GAAG,OAAOgc,GAAGuC,SAASve,EAAE,MAAMA,EAAEoH,MAAM,GAAE,GAAIpH,CAAC,CAAC,SAAS8gB,GAAG9gB,EAAEC,EAAEK,GAAG,OAAON,EAAEA,EAAE+J,OAAO9J,GAAGgM,KAAG,SAAWjM,EAAEC,GAAG,OAAOD,EAAE6gB,GAAG7gB,IAAIM,GAAGL,EAAE,IAAID,EAAE,IAAIA,CAAE,IAAGoJ,KAAK9I,EAAE,IAAI,IAAIL,CAAC,CAAvyB,CAAC,uBAAuB,iBAAiB,eAAe,YAAY,cAAc,4BAA4B,iBAAiB,mBAAmB,kBAAkB,eAAe,kBAAkB,mBAAmBsE,SAAO,SAAWvE,GAAG2gB,GAAG3gB,GAAG,CAACc,MAAMd,EAAG,IAAGyB,OAAOgD,iBAAiBqb,GAAGa,IAAIlf,OAAOyB,eAAewd,GAAG,eAAe,CAAC5f,OAAM,IAAKgf,GAAG9b,KAAK,SAAShE,EAAEC,EAAEK,EAAEC,EAAEI,EAAES,GAAG,IAAIG,EAAEE,OAAOmC,OAAO8c,IAAI,OAAO1E,GAAGoC,aAAape,EAAEuB,GAAC,SAAWvB,GAAG,OAAOA,IAAIsF,MAAMxD,SAAU,IAAA,SAAY9B,GAAG,MAAM,iBAAiBA,CAAE,IAAG8f,GAAGxe,KAAKC,EAAEvB,EAAEigB,QAAQhgB,EAAEK,EAAEC,EAAEI,GAAGY,EAAEwf,MAAM/gB,EAAEuB,EAAEmF,KAAK1G,EAAE0G,KAAKtF,GAAGK,OAAO0c,OAAO5c,EAAEH,GAAGG,CAAC,EAAqO,IAAIyf,GAAGhF,GAAGoC,aAAapC,GAAG,CAAA,EAAG,MAAI,SAAWhc,GAAG,MAAM,WAAW8H,KAAK9H,EAAG,IAAG,SAASihB,GAAGjhB,EAAEC,EAAEK,GAAG,IAAI0b,GAAGa,SAAS7c,GAAG,MAAM,IAAIwB,UAAU,4BAA4BvB,EAAEA,GAAG,IAAImc,SAAS,IAAI7b,GAAGD,EAAE0b,GAAGoC,aAAa9d,EAAE,CAAC4gB,YAAW,EAAGC,MAAK,EAAGC,SAAQ,IAAI,GAAE,SAAWphB,EAAEC,GAAG,OAAO+b,GAAGmB,YAAYld,EAAED,GAAI,KAAIkhB,WAAWvgB,EAAEL,EAAE+gB,SAASnf,EAAEd,EAAEd,EAAE6gB,KAAK5f,EAAEjB,EAAE8gB,QAAQvf,GAAGvB,EAAEghB,MAAM,oBAAoBA,MAAMA,OAAOtF,GAAGyD,oBAAoBxf,GAAG,IAAI+b,GAAGwB,WAAW7c,GAAG,MAAM,IAAIa,UAAU,8BAA8B,SAASS,EAAEjC,GAAG,GAAG,OAAOA,EAAE,MAAM,GAAG,GAAGgc,GAAGoB,OAAOpd,GAAG,OAAOA,EAAEuhB,cAAc,IAAI1f,GAAGma,GAAGsB,OAAOtd,GAAG,MAAM,IAAI8f,GAAG,gDAAgD,OAAO9D,GAAGC,cAAcjc,IAAIgc,GAAG4B,aAAa5d,GAAG6B,GAAG,mBAAmByf,KAAK,IAAIA,KAAK,CAACthB,IAAIwhB,OAAOxd,KAAKhE,GAAGA,CAAC,CAAC,SAASkC,EAAElC,EAAEM,EAAEK,GAAG,IAAIkB,EAAE7B,EAAE,GAAGA,IAAIW,GAAG,WAAWoF,EAAE/F,GAAG,GAAGgc,GAAGuC,SAASje,EAAE,MAAMA,EAAEC,EAAED,EAAEA,EAAE8G,MAAM,MAAMpH,EAAE8X,KAAKC,UAAU/X,QAAQ,GAAGgc,GAAGvb,QAAQT,IAAI,SAASA,GAAG,OAAOgc,GAAGvb,QAAQT,KAAKA,EAAEyhB,KAAKb,GAAG,CAA7C,CAA+C5gB,KAAKgc,GAAG6B,WAAW7d,IAAIgc,GAAGuC,SAASje,EAAE,SAASuB,EAAEma,GAAGvP,QAAQzM,IAAI,OAAOM,EAAEugB,GAAGvgB,GAAGuB,EAAE0C,SAAO,SAAWvE,EAAEO,IAAIyb,GAAGmB,YAAYnd,IAAI,OAAOA,GAAGC,EAAEoc,QAAO,IAAK9a,EAAEuf,GAAG,CAACxgB,GAAGC,EAAEa,GAAG,OAAOG,EAAEjB,EAAEA,EAAE,KAAK2B,EAAEjC,GAAI,KAAG,EAAG,QAAQ4gB,GAAG5gB,KAAKC,EAAEoc,OAAOyE,GAAGngB,EAAEL,EAAEc,GAAGa,EAAEjC,KAAI,EAAG,CAAC,IAAImC,EAAE,GAAGM,EAAEhB,OAAO0c,OAAO6C,GAAG,CAACU,eAAexf,EAAEyf,aAAa1f,EAAE2f,YAAYhB,KAAK,IAAI5E,GAAGa,SAAS7c,GAAG,MAAM,IAAIwB,UAAU,0BAA0B,OAAO,SAASxB,EAAEM,EAAEC,GAAG,IAAIyb,GAAGmB,YAAY7c,GAAG,CAAC,QAAQ6B,EAAE+F,QAAQ5H,GAAG,MAAMgF,MAAM,kCAAkC/E,EAAE6I,KAAK,MAAMjH,EAAEQ,KAAKrC,GAAG0b,GAAGzX,QAAQjE,GAAC,SAAWA,EAAEc,WAAW4a,GAAGmB,YAAY7c,IAAI,OAAOA,IAAIK,EAAEW,KAAKrB,EAAEK,EAAE0b,GAAGU,SAAStb,GAAGA,EAAE4I,OAAO5I,EAAEb,EAAEkC,KAAKzC,EAAEM,EAAEC,EAAEA,EAAEwJ,OAAO3I,GAAG,CAACA,GAAI,IAAGe,EAAE6E,KAAK,CAAC,CAAjR,CAAmRhH,GAAGC,CAAC,CAAC,SAAS4hB,GAAG7hB,GAAG,IAAIC,EAAE,CAAC,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,MAAM,IAAI,MAAM,MAAM,OAAO6hB,mBAAmB9hB,GAAG4I,QAAQ,oBAAkB,SAAW5I,GAAG,OAAOC,EAAED,EAAG,GAAE,CAAC,SAAS+hB,GAAG/hB,EAAEC,GAAGC,KAAK8hB,OAAO,GAAGhiB,GAAGihB,GAAGjhB,EAAEE,KAAKD,EAAE,CAAC,IAAIgiB,GAAGF,GAAGjgB,UAAU,SAASogB,GAAGliB,GAAG,OAAO8hB,mBAAmB9hB,GAAG4I,QAAQ,QAAQ,KAAKA,QAAQ,OAAO,KAAKA,QAAQ,QAAQ,KAAKA,QAAQ,OAAO,KAAKA,QAAQ,QAAQ,KAAKA,QAAQ,QAAQ,IAAI,CAAC,SAASuZ,GAAGniB,EAAEC,EAAEK,GAAG,IAAIL,EAAE,OAAOD,EAAE,IAAIO,EAAED,GAAGA,EAAE8hB,QAAQF,GAAGlG,GAAGwB,WAAWld,KAAKA,EAAE,CAACkP,UAAUlP,IAAI,IAAIK,EAAES,EAAEd,GAAGA,EAAEkP,UAAU,GAAG7O,EAAES,EAAEA,EAAEnB,EAAEK,GAAG0b,GAAG2B,kBAAkB1d,GAAGA,EAAE4H,WAAW,IAAIka,GAAG9hB,EAAEK,GAAGuH,SAAStH,GAAG,CAAC,IAAIgB,EAAEvB,EAAEkI,QAAQ,MAAK,IAAK3G,IAAIvB,EAAEA,EAAEoH,MAAM,EAAE7F,IAAIvB,KAAI,IAAKA,EAAEkI,QAAQ,KAAK,IAAI,KAAKvH,CAAC,CAAC,OAAOX,CAAC,CAACiiB,GAAG5F,OAAO,SAASrc,EAAEC,GAAGC,KAAK8hB,OAAOrf,KAAK,CAAC3C,EAAEC,GAAG,EAAEgiB,GAAGpa,SAAS,SAAS7H,GAAG,IAAIC,EAAED,EAAE,SAASC,GAAG,OAAOD,EAAEsB,KAAKpB,KAAKD,EAAE4hB,GAAG,EAAEA,GAAG,OAAO3hB,KAAK8hB,OAAO/V,KAAG,SAAWjM,GAAG,OAAOC,EAAED,EAAE,IAAI,IAAIC,EAAED,EAAE,GAAI,GAAE,IAAIoJ,KAAK,IAAI,EAAE,IAAIiZ,GAAqBliB,GAAC,SAAWH,IAAIyC,EAAEvC,KAAKF,GAAGE,KAAKoiB,SAAS,EAAG,GAAE,CAAC,CAAClf,IAAI,MAAMtC,MAAM,SAASd,EAAEC,EAAEK,GAAG,OAAOJ,KAAKoiB,SAAS3f,KAAK,CAAC4f,UAAUviB,EAAEwiB,SAASviB,EAAEwiB,cAAcniB,GAAGA,EAAEmiB,YAAYC,QAAQpiB,EAAEA,EAAEoiB,QAAQ,OAAOxiB,KAAKoiB,SAASjiB,OAAO,CAAC,GAAG,CAAC+C,IAAI,QAAQtC,MAAM,SAASd,GAAGE,KAAKoiB,SAAStiB,KAAKE,KAAKoiB,SAAStiB,GAAG,KAAK,GAAG,CAACoD,IAAI,QAAQtC,MAAM,WAAWZ,KAAKoiB,WAAWpiB,KAAKoiB,SAAS,GAAG,GAAG,CAAClf,IAAI,UAAUtC,MAAM,SAASd,GAAGgc,GAAGzX,QAAQrE,KAAKoiB,UAAQ,SAAWriB,GAAG,OAAOA,GAAGD,EAAEC,EAAG,GAAE,KAAQ0iB,GAAG,CAACC,mBAAkB,EAAGC,mBAAkB,EAAGC,qBAAoB,GAAIC,GAAG,CAACC,WAAU,EAAGC,QAAQ,CAACtL,gBAAgB,oBAAoBA,gBAAgBA,gBAAgBoK,GAAG3F,SAAS,oBAAoBA,SAASA,SAAS,KAAKkF,KAAK,oBAAoBA,KAAKA,KAAK,MAAM4B,UAAU,CAAC,OAAO,QAAQ,OAAO,OAAO,MAAM,SAASC,GAAG,oBAAoB9V,QAAQ,oBAAoB+V,SAASC,GAAG,YAAY,oBAAoB/V,UAAU,YAAYvH,EAAEuH,aAAaA,gBAAW,EAAOgW,GAAGH,MAAME,IAAI,CAAC,cAAc,eAAe,MAAMnb,QAAQmb,GAAG9V,SAAS,GAAGgW,GAAG,oBAAoBC,mBAAmBpJ,gBAAgBoJ,mBAAmB,mBAAmBpJ,KAAKqJ,cAAcC,GAAGP,IAAI9V,OAAOgB,SAASsV,MAAM,mBAAmBC,GAAGtf,EAAEA,EAAE,CAAA,EAAG7C,OAAOoiB,OAAO,CAACngB,UAAU,KAAKogB,cAAcX,GAAGY,sBAAsBT,GAAGU,+BAA+BT,GAAGjW,UAAU+V,GAAGY,OAAOP,MAAMX,IAAI,SAASmB,GAAGlkB,GAAG,SAASC,EAAED,EAAEM,EAAEC,EAAEI,GAAG,IAAIS,EAAEpB,EAAEW,KAAK,GAAG,cAAcS,EAAE,OAAM,EAAG,IAAIG,EAAE4d,OAAOC,UAAUhe,GAAGS,EAAElB,GAAGX,EAAEK,OAAO,OAAOe,GAAGA,GAAG4a,GAAGvb,QAAQF,GAAGA,EAAEF,OAAOe,EAAES,GAAGma,GAAG4C,WAAWre,EAAEa,GAAGb,EAAEa,GAAG,CAACb,EAAEa,GAAGd,GAAGC,EAAEa,GAAGd,GAAGiB,IAAIhB,EAAEa,IAAI4a,GAAGa,SAAStc,EAAEa,MAAMb,EAAEa,GAAG,IAAInB,EAAED,EAAEM,EAAEC,EAAEa,GAAGT,IAAIqb,GAAGvb,QAAQF,EAAEa,MAAMb,EAAEa,GAAG,SAASpB,GAAG,IAAIC,EAAEK,EAAEC,EAAE,CAAA,EAAGI,EAAEc,OAAOyC,KAAKlE,GAAGoB,EAAET,EAAEN,OAAO,IAAIJ,EAAE,EAAEA,EAAEmB,EAAEnB,IAAIM,EAAED,EAAEK,EAAEV,IAAID,EAAEM,GAAG,OAAOC,CAAC,CAA5F,CAA8FA,EAAEa,MAAMG,EAAE,CAAC,GAAGya,GAAGG,WAAWnc,IAAIgc,GAAGwB,WAAWxd,EAAEmkB,SAAS,CAAC,IAAI7jB,EAAE,CAAA,EAAG,OAAO0b,GAAGwC,aAAaxe,GAAC,SAAWA,EAAEO,GAAGN,EAAE,SAASD,GAAG,OAAOgc,GAAGyC,SAAS,gBAAgBze,GAAGiM,KAAG,SAAWjM,GAAG,MAAM,OAAOA,EAAE,GAAG,GAAGA,EAAE,IAAIA,EAAE,EAAG,GAAE,CAArG,CAAuGA,GAAGO,EAAED,EAAE,EAAG,IAAGA,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI8jB,GAAG,CAACC,aAAa1B,GAAG/R,QAAQ,CAAC,MAAM,OAAO,SAAS0T,iBAAiB,CAAC,SAAStkB,EAAEC,GAAG,IAAIK,EAAEC,EAAEN,EAAEskB,kBAAkB,GAAG5jB,EAAEJ,EAAE2H,QAAQ,qBAAoB,EAAG9G,EAAE4a,GAAGa,SAAS7c,GAAG,GAAGoB,GAAG4a,GAAG2C,WAAW3e,KAAKA,EAAE,IAAIoc,SAASpc,IAAIgc,GAAGG,WAAWnc,GAAG,OAAOW,EAAEmX,KAAKC,UAAUmM,GAAGlkB,IAAIA,EAAE,GAAGgc,GAAGC,cAAcjc,IAAIgc,GAAGE,SAASlc,IAAIgc,GAAGyB,SAASzd,IAAIgc,GAAGqB,OAAOrd,IAAIgc,GAAGsB,OAAOtd,IAAIgc,GAAGe,iBAAiB/c,GAAG,OAAOA,EAAE,GAAGgc,GAAGM,kBAAkBtc,GAAG,OAAOA,EAAEyc,OAAO,GAAGT,GAAG2B,kBAAkB3d,GAAG,OAAOC,EAAEukB,eAAe,mDAAkD,GAAIxkB,EAAE6H,WAAW,GAAGzG,EAAE,CAAC,GAAGb,EAAE2H,QAAQ,sCAAqC,EAAG,OAAO,SAASlI,EAAEC,GAAG,OAAOghB,GAAGjhB,EAAE,IAAI4jB,GAAGX,QAAQtL,gBAAgBlW,OAAO0c,OAAO,CAACkD,QAAQ,SAASrhB,EAAEC,EAAEK,EAAEC,GAAG,OAAOqjB,GAAGa,QAAQzI,GAAGE,SAASlc,IAAIE,KAAKmc,OAAOpc,EAAED,EAAE6H,SAAS,YAAW,GAAItH,EAAEmhB,eAAe3f,MAAM7B,KAAK8B,UAAU,GAAG/B,GAAG,CAAxN,CAA0ND,EAAEE,KAAKwkB,gBAAgB7c,WAAW,IAAIvH,EAAE0b,GAAG6B,WAAW7d,KAAKO,EAAE2H,QAAQ,wBAAuB,EAAG,CAAC,IAAI3G,EAAErB,KAAKgN,KAAKhN,KAAKgN,IAAIkP,SAAS,OAAO6E,GAAG3gB,EAAE,CAAC,UAAUN,GAAGA,EAAEuB,GAAG,IAAIA,EAAErB,KAAKwkB,eAAe,CAAC,CAAC,OAAOtjB,GAAGT,GAAGV,EAAEukB,eAAe,oBAAmB,GAAI,SAASxkB,GAAK,GAAGgc,GAAGU,SAAS1c,GAAG,IAAI,OAAM,EAAI8X,KAAK6M,OAAO3kB,GAAGgc,GAAGhS,KAAKhK,EAAE,CAAC,MAAMA,GAAG,GAAG,gBAAgBA,EAAE0G,KAAK,MAAM1G,CAAC,CAAC,OAAM,EAAG8X,KAAKC,WAAW/X,EAAE,CAA9I,CAAgJA,IAAIA,CAAC,GAAG4kB,kBAAkB,CAAC,SAAS5kB,GAAG,IAAIC,EAAEC,KAAKmkB,cAAcD,GAAGC,aAAa/jB,EAAEL,GAAGA,EAAE4iB,kBAAkBtiB,EAAE,SAASL,KAAK2kB,aAAa,GAAG7I,GAAGiB,WAAWjd,IAAIgc,GAAGe,iBAAiB/c,GAAG,OAAOA,EAAE,GAAGA,GAAGgc,GAAGU,SAAS1c,KAAKM,IAAIJ,KAAK2kB,cAActkB,GAAG,CAAC,IAAII,IAAIV,GAAGA,EAAE2iB,oBAAoBriB,EAAE,IAAI,OAAOuX,KAAK6M,MAAM3kB,EAAE,CAAC,MAAMA,GAAG,GAAGW,EAAE,CAAC,GAAG,gBAAgBX,EAAE0G,KAAK,MAAMoZ,GAAG9b,KAAKhE,EAAE8f,GAAGgF,iBAAiB5kB,KAAK,KAAKA,KAAKigB,UAAU,MAAMngB,CAAC,CAAC,CAAC,CAAC,OAAOA,CAAC,GAAG+kB,QAAQ,EAAEC,eAAe,aAAaC,eAAe,eAAeC,kBAAiB,EAAGC,eAAc,EAAGjY,IAAI,CAACkP,SAASwH,GAAGX,QAAQ7G,SAASkF,KAAKsC,GAAGX,QAAQ3B,MAAM8D,eAAe,SAASplB,GAAG,OAAOA,GAAG,KAAKA,EAAE,GAAG,EAAE4W,QAAQ,CAACyO,OAAO,CAACC,OAAO,oCAAoC,oBAAe,KAAUtJ,GAAGzX,QAAQ,CAAC,SAAS,MAAM,OAAO,OAAO,MAAM,UAAQ,SAAWvE,GAAGokB,GAAGxN,QAAQ5W,GAAG,EAAG,IAAG,IAAIulB,GAAGvJ,GAAG+C,YAAY,CAAC,MAAM,gBAAgB,iBAAiB,eAAe,OAAO,UAAU,OAAO,OAAO,oBAAoB,sBAAsB,gBAAgB,WAAW,eAAe,sBAAsB,UAAU,cAAc,eAAeyG,GAAGzkB,OAAO,aAAa,SAAS0kB,GAAGzlB,GAAG,OAAOA,GAAG4H,OAAO5H,GAAGgK,OAAOtB,aAAa,CAAC,SAASgd,GAAG1lB,GAAG,OAAM,IAAKA,GAAG,MAAMA,EAAEA,EAAEgc,GAAGvb,QAAQT,GAAGA,EAAEiM,IAAIyZ,IAAI9d,OAAO5H,EAAE,CAAC,SAAS2lB,GAAG3lB,EAAEC,EAAEK,EAAEC,EAAEI,GAAG,OAAOqb,GAAGwB,WAAWjd,GAAGA,EAAEe,KAAKpB,KAAKD,EAAEK,IAAIK,IAAIV,EAAEK,GAAG0b,GAAGU,SAASzc,GAAG+b,GAAGU,SAASnc,IAAG,IAAKN,EAAEiI,QAAQ3H,GAAGyb,GAAGuB,SAAShd,GAAGA,EAAEuH,KAAK7H,QAAG,OAAO,EAAO,CAAC,IAAI2lB,GAAqBzlB,GAAC,SAAWH,EAAEC,GAAGwC,EAAEvC,KAAKF,GAAGC,GAAGC,KAAKmI,IAAIpI,EAAG,GAAE,CAAC,CAACmD,IAAI,MAAMtC,MAAM,SAASd,EAAEC,EAAEK,GAAG,IAAIC,EAAEL,KAAK,SAASS,EAAEX,EAAEC,EAAEK,GAAG,IAAIK,EAAE8kB,GAAGxlB,GAAG,IAAIU,EAAE,MAAM,IAAI2E,MAAM,0CAA0C,IAAIlE,EAAE4a,GAAGqD,QAAQ9e,EAAEI,KAAKS,QAAG,IAASb,EAAEa,KAAI,IAAKd,QAAG,IAASA,IAAG,IAAKC,EAAEa,MAAMb,EAAEa,GAAGnB,GAAGylB,GAAG1lB,GAAG,CAAC,IAAIoB,EAAE,SAASpB,EAAEC,GAAG,OAAO+b,GAAGzX,QAAQvE,GAAC,SAAWA,EAAEM,GAAG,OAAOK,EAAEX,EAAEM,EAAEL,EAAG,GAAE,EAAE,GAAG+b,GAAGc,cAAc9c,IAAIA,aAAaE,KAAKsC,YAAYpB,EAAEpB,EAAEC,QAAQ,GAAG+b,GAAGU,SAAS1c,KAAKA,EAAEA,EAAEgK,UAAU,iCAAiClC,KAAK9H,EAAEgK,QAAQ5I,EAAE,SAASpB,GAAG,IAAIC,EAAEK,EAAEC,EAAEI,EAAE,CAAA,EAAG,OAAOX,GAAGA,EAAEiJ,MAAM,MAAM1E,kBAAkBvE,GAAGO,EAAEP,EAAEkI,QAAQ,KAAKjI,EAAED,EAAEmJ,UAAU,EAAE5I,GAAGyJ,OAAOtB,cAAcpI,EAAEN,EAAEmJ,UAAU5I,EAAE,GAAGyJ,QAAQ/J,GAAGU,EAAEV,IAAIslB,GAAGtlB,KAAK,eAAeA,EAAEU,EAAEV,GAAGU,EAAEV,GAAG0C,KAAKrC,GAAGK,EAAEV,GAAG,CAACK,GAAGK,EAAEV,GAAGU,EAAEV,GAAGU,EAAEV,GAAG,KAAKK,EAAEA,EAAG,IAAGK,CAAC,CAAtP,CAAwPX,GAAGC,QAAQ,GAAG+b,GAAGkB,UAAUld,GAAG,CAAC,IAAIuB,EAAEM,EAAEwB,EAAErD,EAAEmkB,WAAW,IAAI,IAAItiB,EAAEA,MAAMN,EAAEM,EAAEvB,KAAKO,MAAM,CAAC,IAAIoB,EAAEmD,EAAE7D,EAAET,MAAM,GAAGoB,EAAED,EAAE,GAAGtB,EAAEsB,EAAE,GAAGC,EAAE5B,EAAE,CAAC,CAAC,MAAMN,GAAG6B,EAAE5B,EAAED,EAAE,CAAC,QAAQ6B,EAAEa,GAAG,CAAC,MAAM,MAAM1C,GAAGW,EAAEV,EAAED,EAAEM,GAAG,OAAOJ,IAAI,GAAG,CAACkD,IAAI,MAAMtC,MAAM,SAASd,EAAEC,GAAG,GAAGD,EAAEylB,GAAGzlB,GAAG,CAAC,IAAIM,EAAE0b,GAAGqD,QAAQnf,KAAKF,GAAG,GAAGM,EAAE,CAAC,IAAIC,EAAEL,KAAKI,GAAG,IAAIL,EAAE,OAAOM,EAAE,IAAG,IAAKN,EAAE,OAAO,SAASD,GAAG,IAAI,IAAIC,EAAEK,EAAEmB,OAAOmC,OAAO,MAAMrD,EAAE,mCAAmCN,EAAEM,EAAEme,KAAK1e,IAAIM,EAAEL,EAAE,IAAIA,EAAE,GAAG,OAAOK,CAAC,CAAnH,CAAqHC,GAAG,GAAGyb,GAAGwB,WAAWvd,GAAG,OAAOA,EAAEqB,KAAKpB,KAAKK,EAAED,GAAG,GAAG0b,GAAGuB,SAAStd,GAAG,OAAOA,EAAEye,KAAKne,GAAG,MAAM,IAAIiB,UAAU,yCAAyC,CAAC,CAAC,GAAG,CAAC4B,IAAI,MAAMtC,MAAM,SAASd,EAAEC,GAAG,GAAGD,EAAEylB,GAAGzlB,GAAG,CAAC,IAAIM,EAAE0b,GAAGqD,QAAQnf,KAAKF,GAAG,SAASM,QAAG,IAASJ,KAAKI,IAAIL,IAAI0lB,GAAG,EAAEzlB,KAAKI,GAAGA,EAAEL,GAAG,CAAC,OAAM,CAAE,GAAG,CAACmD,IAAI,SAAStC,MAAM,SAASd,EAAEC,GAAG,IAAIK,EAAEJ,KAAKK,GAAE,EAAG,SAASI,EAAEX,GAAG,GAAGA,EAAEylB,GAAGzlB,GAAG,CAAC,IAAIW,EAAEqb,GAAGqD,QAAQ/e,EAAEN,IAAIW,GAAGV,IAAI0lB,GAAG,EAAErlB,EAAEK,GAAGA,EAAEV,YAAYK,EAAEK,GAAGJ,GAAE,EAAG,CAAC,CAAC,OAAOyb,GAAGvb,QAAQT,GAAGA,EAAEuE,QAAQ5D,GAAGA,EAAEX,GAAGO,CAAC,GAAG,CAAC6C,IAAI,QAAQtC,MAAM,SAASd,GAAG,IAAI,IAAIC,EAAEwB,OAAOyC,KAAKhE,MAAMI,EAAEL,EAAEI,OAAOE,GAAE,EAAGD,KAAK,CAAC,IAAIK,EAAEV,EAAEK,GAAGN,IAAI2lB,GAAG,EAAEzlB,KAAKS,GAAGA,EAAEX,GAAE,YAAaE,KAAKS,GAAGJ,GAAE,EAAG,CAAC,OAAOA,CAAC,GAAG,CAAC6C,IAAI,YAAYtC,MAAM,SAASd,GAAG,IAAIC,EAAEC,KAAKI,EAAE,CAAA,EAAG,OAAO0b,GAAGzX,QAAQrE,eAAeK,EAAEI,GAAG,IAAIS,EAAE4a,GAAGqD,QAAQ/e,EAAEK,GAAG,GAAGS,EAAE,OAAOnB,EAAEmB,GAAGskB,GAAGnlB,eAAeN,EAAEU,GAAG,IAAIY,EAAEvB,EAAE,SAASA,GAAG,OAAOA,EAAEgK,OAAOtB,cAAcE,QAAQ,mBAAiB,SAAW5I,EAAEC,EAAEK,GAAG,OAAOL,EAAEiJ,cAAc5I,CAAE,GAAE,CAAhH,CAAkHK,GAAGiH,OAAOjH,GAAGqJ,OAAOzI,IAAIZ,UAAUV,EAAEU,GAAGV,EAAEsB,GAAGmkB,GAAGnlB,GAAGD,EAAEiB,IAAG,CAAG,IAAGrB,IAAI,GAAG,CAACkD,IAAI,SAAStC,MAAM,WAAW,IAAI,IAAId,EAAEC,EAAE+B,UAAU3B,OAAOC,EAAE,IAAIE,MAAMP,GAAGM,EAAE,EAAEA,EAAEN,EAAEM,IAAID,EAAEC,GAAGyB,UAAUzB,GAAG,OAAOP,EAAEE,KAAKsC,aAAauH,OAAOhI,MAAM/B,EAAE,CAACE,MAAM6J,OAAOzJ,GAAG,GAAG,CAAC8C,IAAI,SAAStC,MAAM,SAASd,GAAG,IAAIC,EAAEwB,OAAOmC,OAAO,MAAM,OAAOoY,GAAGzX,QAAQrE,MAAI,SAAWI,EAAEC,GAAG,MAAMD,IAAG,IAAKA,IAAIL,EAAEM,GAAGP,GAAGgc,GAAGvb,QAAQH,GAAGA,EAAE8I,KAAK,MAAM9I,EAAG,IAAGL,CAAC,GAAG,CAACmD,IAAIrC,OAAOC,SAASF,MAAM,WAAW,OAAOW,OAAO0iB,QAAQjkB,KAAKkgB,UAAUrf,OAAOC,WAAW,GAAG,CAACoC,IAAI,WAAWtC,MAAM,WAAW,OAAOW,OAAO0iB,QAAQjkB,KAAKkgB,UAAUnU,KAAG,SAAWjM,GAAG,IAAIC,EAAEmF,EAAEpF,EAAE,GAAG,OAAOC,EAAE,GAAG,KAAKA,EAAE,EAAG,IAAGmJ,KAAK,KAAK,GAAG,CAAChG,IAAIrC,OAAO6D,YAAYwD,IAAI,WAAW,MAAM,cAAc,IAAI,CAAC,CAAChF,IAAI,OAAOtC,MAAM,SAASd,GAAG,OAAOA,aAAaE,KAAKF,EAAE,IAAIE,KAAKF,EAAE,GAAG,CAACoD,IAAI,SAAStC,MAAM,SAASd,GAAG,IAAI,IAAIC,EAAE,IAAIC,KAAKF,GAAGM,EAAE0B,UAAU3B,OAAOE,EAAE,IAAIC,MAAMF,EAAE,EAAEA,EAAE,EAAE,GAAGK,EAAE,EAAEA,EAAEL,EAAEK,IAAIJ,EAAEI,EAAE,GAAGqB,UAAUrB,GAAG,OAAOJ,EAAEgE,SAAO,SAAWvE,GAAG,OAAOC,EAAEoI,IAAIrI,EAAG,IAAGC,CAAC,GAAG,CAACmD,IAAI,WAAWtC,MAAM,SAASd,GAAG,IAAIC,GAAGC,KAAKslB,IAAItlB,KAAKslB,IAAI,CAACK,UAAU,CAAA,IAAKA,UAAUvlB,EAAEJ,KAAK4B,UAAU,SAASvB,EAAEP,GAAG,IAAIO,EAAEklB,GAAGzlB,GAAGC,EAAEM,KAAM,SAASP,EAAEC,GAAG,IAAIK,EAAE0b,GAAGgD,YAAY,IAAI/e,GAAG,CAAC,MAAM,MAAM,OAAOsE,SAAO,SAAWhE,GAAGkB,OAAOyB,eAAelD,EAAEO,EAAED,EAAE,CAACQ,MAAM,SAASd,EAAEM,EAAEK,GAAG,OAAOT,KAAKK,GAAGe,KAAKpB,KAAKD,EAAED,EAAEM,EAAEK,EAAE,EAAEqC,cAAa,GAAK,GAAE,CAA7L,CAA+L1C,EAAEN,GAAGC,EAAEM,IAAG,EAAG,CAAC,OAAOyb,GAAGvb,QAAQT,GAAGA,EAAEuE,QAAQhE,GAAGA,EAAEP,GAAGE,IAAI,KAAQ,SAAS4lB,GAAG9lB,EAAEC,GAAG,IAAIK,EAAEJ,MAAMkkB,GAAG7jB,EAAEN,GAAGK,EAAEK,EAAEilB,GAAG5hB,KAAKzD,EAAEqW,SAASxV,EAAEb,EAAEob,KAAK,OAAOK,GAAGzX,QAAQvE,GAAC,SAAWA,GAAGoB,EAAEpB,EAAEsB,KAAKhB,EAAEc,EAAET,EAAEolB,YAAY9lB,EAAEA,EAAEkX,YAAO,EAAQ,IAAGxW,EAAEolB,YAAY3kB,CAAC,CAAC,SAAS4kB,GAAGhmB,GAAG,SAASA,IAAIA,EAAEimB,WAAW,CAAC,SAASC,GAAGlmB,EAAEC,EAAEK,GAAGwf,GAAGxe,KAAKpB,KAAK,MAAMF,EAAE,WAAWA,EAAE8f,GAAGqG,aAAalmB,EAAEK,GAAGJ,KAAKwG,KAAK,eAAe,CAAC,SAAS0f,GAAGpmB,EAAEC,EAAEK,GAAG,IAAIC,EAAED,EAAE4f,OAAOkF,eAAe9kB,EAAE6W,QAAQ5W,IAAIA,EAAED,EAAE6W,QAAQlX,EAAE,IAAI6f,GAAG,mCAAmCxf,EAAE6W,OAAO,CAAC2I,GAAGuG,gBAAgBvG,GAAGgF,kBAAkBvJ,KAAK+K,MAAMhmB,EAAE6W,OAAO,KAAK,GAAG7W,EAAE4f,OAAO5f,EAAEsX,QAAQtX,IAAIN,EAAEM,EAAE,CAACslB,GAAGW,SAAS,CAAC,eAAe,iBAAiB,SAAS,kBAAkB,aAAa,kBAAkBvK,GAAG6C,kBAAkB+G,GAAG9jB,oBAAoB9B,EAAEC,GAAG,IAAIK,EAAEN,EAAEc,MAAMP,EAAEN,EAAE,GAAGiJ,cAAcjJ,EAAEmH,MAAM,GAAG,MAAM,CAACgB,IAAI,WAAW,OAAO9H,CAAC,EAAE+H,IAAI,SAASrI,GAAGE,KAAKK,GAAGP,CAAC,EAAG,IAAGgc,GAAG8C,cAAc8G,IAAI5J,GAAGkC,SAASgI,GAAGpG,GAAG,CAACmG,YAAW,IAAK,IAAIO,GAAG,SAASxmB,EAAEC,GAAG,IAAIK,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,EAAEzB,EAAE,EAAEI,EAAE,SAASX,EAAEC,GAAGD,EAAEA,GAAG,GAAG,IAAIM,EAAEC,EAAE,IAAIC,MAAMR,GAAGW,EAAE,IAAIH,MAAMR,GAAGoB,EAAE,EAAEG,EAAE,EAAE,OAAOtB,OAAE,IAASA,EAAEA,EAAE,IAAI,SAAS4B,GAAG,IAAII,EAAE4P,KAAK4U,MAAMvkB,EAAEvB,EAAEY,GAAGjB,IAAIA,EAAE2B,GAAG1B,EAAEa,GAAGS,EAAElB,EAAES,GAAGa,EAAE,IAAI,IAAIE,EAAEZ,EAAEkB,EAAE,EAAEN,IAAIf,GAAGqB,GAAGlC,EAAE4B,KAAKA,GAAGnC,EAAE,IAAIoB,GAAGA,EAAE,GAAGpB,KAAKuB,IAAIA,GAAGA,EAAE,GAAGvB,KAAKiC,EAAE3B,EAAEL,GAAG,CAAC,IAAIyC,EAAER,GAAGD,EAAEC,EAAE,OAAOQ,EAAE6Y,KAAKmL,MAAM,IAAIjkB,EAAEC,QAAG,CAAM,CAAC,CAAC,CAAzR,CAA2R,GAAG,KAAK,OAAO,SAAS1C,EAAEC,GAAG,IAAIK,EAAEC,EAAEI,EAAE,EAAES,EAAE,IAAInB,EAAEsB,EAAE,SAAStB,GAAG,IAAImB,EAAEY,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG6P,KAAK4U,MAAM9lB,EAAES,EAAEd,EAAE,KAAKC,IAAIomB,aAAapmB,GAAGA,EAAE,MAAMP,EAAE+B,MAAM,KAAK9B,EAAE,EAAE,MAAM,CAAC,WAAW,IAAI,IAAID,EAAE6R,KAAK4U,MAAMxmB,EAAED,EAAEW,EAAEkB,EAAEG,UAAU3B,OAAO4B,EAAE,IAAIzB,MAAMqB,GAAGK,EAAE,EAAEA,EAAEL,EAAEK,IAAID,EAAEC,GAAGF,UAAUE,GAAGjC,GAAGmB,EAAEG,EAAEU,EAAEjC,IAAIM,EAAE2B,EAAE1B,IAAIA,EAAEqb,YAAU,WAAarb,EAAE,KAAKgB,EAAEjB,EAAG,GAAEc,EAAEnB,IAAI,EAAE,WAAW,OAAOK,GAAGiB,EAAEjB,EAAE,EAAE,CAA5X,WAAwYA,GAAG,IAAIc,EAAEd,EAAEsmB,OAAOrlB,EAAEjB,EAAEumB,iBAAiBvmB,EAAEwmB,WAAM,EAAOjlB,EAAET,EAAEb,EAAE0B,EAAEtB,EAAEkB,GAAGtB,EAAEa,EAAE,IAAIc,EAAEqB,EAAE,CAACqjB,OAAOxlB,EAAE0lB,MAAMvlB,EAAEwlB,SAASxlB,EAAEH,EAAEG,OAAE,EAAOylB,MAAMnlB,EAAEolB,KAAKhlB,QAAG,EAAOilB,UAAUjlB,GAAGV,GAAGH,GAAGG,GAAGA,EAAEH,GAAGa,OAAE,EAAOklB,MAAM7mB,EAAEumB,iBAAiB,MAAMtlB,GAAGtB,EAAE,WAAW,UAAS,GAAID,EAAEkC,EAAG,GAAE5B,EAAE,EAAE8mB,GAAG,SAASpnB,EAAEC,GAAG,IAAIK,EAAE,MAAMN,EAAE,MAAM,CAAC,SAASO,GAAG,OAAON,EAAE,GAAG,CAAC4mB,iBAAiBvmB,EAAEwmB,MAAM9mB,EAAE4mB,OAAOrmB,GAAG,EAAEN,EAAE,GAAG,EAAEonB,GAAG,SAASrnB,GAAG,OAAO,WAAW,IAAI,IAAIC,EAAE+B,UAAU3B,OAAOC,EAAE,IAAIE,MAAMP,GAAGM,EAAE,EAAEA,EAAEN,EAAEM,IAAID,EAAEC,GAAGyB,UAAUzB,GAAG,OAAOyb,GAAG6D,MAAI,WAAa,OAAO7f,EAAE+B,WAAM,EAAOzB,EAAG,GAAE,CAAC,EAAEgnB,GAAG1D,GAAGG,sBAAsB,SAAS/jB,EAAEC,GAAG,OAAO,SAASK,GAAG,OAAOA,EAAE,IAAIinB,IAAIjnB,EAAEsjB,GAAGK,QAAQjkB,EAAEwnB,WAAWlnB,EAAEknB,UAAUxnB,EAAE2W,OAAOrW,EAAEqW,OAAO1W,GAAGD,EAAEynB,OAAOnnB,EAAEmnB,KAAK,CAAC,CAA9H,CAAgI,IAAIF,IAAI3D,GAAGK,QAAQL,GAAGtW,WAAW,kBAAkBxF,KAAK8b,GAAGtW,UAAUoa,YAAY,WAAW,OAAM,CAAE,EAAEC,GAAG/D,GAAGG,sBAAsB,CAAC6D,MAAM,SAAS5nB,EAAEC,EAAEK,EAAEC,EAAEI,EAAES,GAAG,IAAIG,EAAE,CAACvB,EAAE,IAAI8hB,mBAAmB7hB,IAAI+b,GAAGW,SAASrc,IAAIiB,EAAEoB,KAAK,WAAW,IAAIkP,KAAKvR,GAAGunB,eAAe7L,GAAGU,SAASnc,IAAIgB,EAAEoB,KAAK,QAAQpC,GAAGyb,GAAGU,SAAS/b,IAAIY,EAAEoB,KAAK,UAAUhC,IAAG,IAAKS,GAAGG,EAAEoB,KAAK,UAAUygB,SAAS0E,OAAOvmB,EAAE6H,KAAK,KAAK,EAAE2e,KAAK,SAAS/nB,GAAG,IAAIC,EAAEmjB,SAAS0E,OAAOnf,MAAM,IAAIJ,OAAO,aAAavI,EAAE,cAAc,OAAOC,EAAE+nB,mBAAmB/nB,EAAE,IAAI,IAAI,EAAEgoB,OAAO,SAASjoB,GAAGE,KAAK0nB,MAAM5nB,EAAE,GAAG6R,KAAK4U,MAAM,MAAM,GAAG,CAACmB,MAAM,WAAW,EAAEG,KAAK,WAAW,OAAO,IAAI,EAAEE,OAAO,WAAW,GAAG,SAASC,GAAGloB,EAAEC,GAAG,OAAOD,IAAI,8BAA8B8H,KAAK7H,GAAG,SAASD,EAAEC,GAAG,OAAOA,EAAED,EAAE4I,QAAQ,SAAS,IAAI,IAAI3I,EAAE2I,QAAQ,OAAO,IAAI5I,CAAC,CAAxE,CAA0EA,EAAEC,GAAGA,CAAC,CAAC,IAAIkoB,GAAG,SAASnoB,GAAG,OAAOA,aAAa4lB,GAAGthB,EAAE,CAAA,EAAGtE,GAAGA,CAAC,EAAE,SAASooB,GAAGpoB,EAAEC,GAAGA,EAAEA,GAAG,CAAA,EAAG,IAAIK,EAAE,CAAA,EAAG,SAASC,EAAEP,EAAEC,EAAEK,EAAEC,GAAG,OAAOyb,GAAGc,cAAc9c,IAAIgc,GAAGc,cAAc7c,GAAG+b,GAAG8B,MAAMxc,KAAK,CAACyc,SAASxd,GAAGP,EAAEC,GAAG+b,GAAGc,cAAc7c,GAAG+b,GAAG8B,MAAM,CAAA,EAAG7d,GAAG+b,GAAGvb,QAAQR,GAAGA,EAAEmH,QAAQnH,CAAC,CAAC,SAASU,EAAEX,EAAEC,EAAEK,EAAEK,GAAG,OAAOqb,GAAGmB,YAAYld,GAAG+b,GAAGmB,YAAYnd,QAAG,EAAOO,OAAE,EAAOP,EAAE,EAAEW,GAAGJ,EAAEP,EAAEC,EAAE,EAAEU,EAAE,CAAC,SAASS,EAAEpB,EAAEC,GAAG,IAAI+b,GAAGmB,YAAYld,GAAG,OAAOM,OAAE,EAAON,EAAE,CAAC,SAASsB,EAAEvB,EAAEC,GAAG,OAAO+b,GAAGmB,YAAYld,GAAG+b,GAAGmB,YAAYnd,QAAG,EAAOO,OAAE,EAAOP,GAAGO,OAAE,EAAON,EAAE,CAAC,SAAS4B,EAAEvB,EAAEK,EAAES,GAAG,OAAOA,KAAKnB,EAAEM,EAAED,EAAEK,GAAGS,KAAKpB,EAAEO,OAAE,EAAOD,QAAG,CAAM,CAAC,IAAI2B,EAAE,CAACqV,IAAIlW,EAAEmE,OAAOnE,EAAEua,KAAKva,EAAEinB,QAAQ9mB,EAAE+iB,iBAAiB/iB,EAAEqjB,kBAAkBrjB,EAAE+mB,iBAAiB/mB,EAAEwjB,QAAQxjB,EAAEgnB,eAAehnB,EAAEinB,gBAAgBjnB,EAAEknB,cAAclnB,EAAEqP,QAAQrP,EAAEsjB,aAAatjB,EAAEyjB,eAAezjB,EAAE0jB,eAAe1jB,EAAEmnB,iBAAiBnnB,EAAEonB,mBAAmBpnB,EAAEqnB,WAAWrnB,EAAE2jB,iBAAiB3jB,EAAE4jB,cAAc5jB,EAAEsnB,eAAetnB,EAAEunB,UAAUvnB,EAAEwnB,UAAUxnB,EAAEynB,WAAWznB,EAAE0nB,YAAY1nB,EAAE2nB,WAAW3nB,EAAE4nB,iBAAiB5nB,EAAE6jB,eAAevjB,EAAE+U,QAAQ,SAAS5W,EAAEC,EAAEK,GAAG,OAAOK,EAAEwnB,GAAGnoB,GAAGmoB,GAAGloB,GAAG,GAAE,EAAG,GAAG,OAAO+b,GAAGzX,QAAQ9C,OAAOyC,KAAKzC,OAAO0c,OAAO,GAAGne,EAAEC,KAAG,SAAWM,GAAG,IAAIa,EAAEa,EAAE1B,IAAII,EAAEY,EAAEH,EAAEpB,EAAEO,GAAGN,EAAEM,GAAGA,GAAGyb,GAAGmB,YAAY5b,IAAIH,IAAIS,IAAIvB,EAAEC,GAAGgB,EAAG,IAAGjB,CAAC,CAAC,IAAI8oB,GAAGC,GAAGC,GAAG,SAAStpB,GAAG,IAAIC,EAAEM,EAAEI,EAAEynB,GAAG,CAAA,EAAGpoB,GAAGoB,EAAET,EAAEgb,KAAKpa,EAAEZ,EAAE8nB,cAAc5mB,EAAElB,EAAEskB,eAAehjB,EAAEtB,EAAEqkB,eAAe9iB,EAAEvB,EAAEiW,QAAQzU,EAAExB,EAAE4oB,KAAK,GAAG5oB,EAAEiW,QAAQ1U,EAAE0jB,GAAG5hB,KAAK9B,GAAGvB,EAAE2W,IAAI6K,GAAG+F,GAAGvnB,EAAE0nB,QAAQ1nB,EAAE2W,KAAKtX,EAAEwpB,OAAOxpB,EAAEsoB,kBAAkBnmB,GAAGD,EAAEmG,IAAI,gBAAgB,SAASohB,MAAMtnB,EAAEunB,UAAU,IAAI,KAAKvnB,EAAEsT,SAASkU,SAAS7H,mBAAmB3f,EAAEsT,WAAW,MAAMuG,GAAGG,WAAW/a,GAAG,GAAGwiB,GAAGG,uBAAuBH,GAAGI,+BAA+B9hB,EAAEsiB,oBAAe,QAAa,IAAG,KAAMvkB,EAAEiC,EAAEqiB,kBAAkB,CAAC,IAAI9hB,EAAExC,EAAEA,EAAEgJ,MAAM,KAAKgD,KAAG,SAAWjM,GAAG,OAAOA,EAAEgK,MAAO,IAAG5F,OAAOP,SAAS,GAAGnB,EAAEpC,EAAEC,EAAEkC,IAAIsB,EAAExD,IAAI+C,EAAE/C,IAAIH,IAAI0C,EAAEJ,EAAE,GAAGvC,EAAEuC,EAAE0E,MAAM,GAAGlF,EAAEsiB,eAAe,CAAC1hB,GAAG,uBAAuBiH,OAAOjF,EAAE3E,IAAIiJ,KAAK,MAAM,CAAC,GAAGwa,GAAGG,wBAAwBxiB,GAAGya,GAAGwB,WAAWjc,KAAKA,EAAEA,EAAEZ,IAAIY,IAAG,IAAKA,GAAG+lB,GAAG3mB,EAAE2W,MAAM,CAAC,IAAIjU,EAAExB,GAAGI,GAAG0lB,GAAGI,KAAK9lB,GAAGoB,GAAGnB,EAAEmG,IAAIxG,EAAEwB,EAAE,CAAC,OAAO1C,CAAC,EAAEipB,GAAG,oBAAoBC,gBAAgB,SAAS7pB,GAAG,OAAO,IAAIY,SAAO,SAAWX,EAAEK,GAAG,IAAIC,EAAEI,EAAES,EAAEG,EAAEM,EAAEI,EAAEqnB,GAAGtpB,GAAGkC,EAAED,EAAE0Z,KAAKxZ,EAAEyjB,GAAG5hB,KAAK/B,EAAE2U,SAASmP,YAAYtjB,EAAER,EAAE4iB,aAAaniB,EAAET,EAAEymB,iBAAiB5lB,EAAEb,EAAE0mB,mBAAmB,SAASxoB,IAAIoB,GAAGA,IAAIM,GAAGA,IAAII,EAAEgnB,aAAahnB,EAAEgnB,YAAYa,YAAYvpB,GAAG0B,EAAE8nB,QAAQ9nB,EAAE8nB,OAAOC,oBAAoB,QAAQzpB,EAAE,CAAC,IAAI8C,EAAE,IAAIwmB,eAAe,SAAStmB,IAAI,GAAGF,EAAE,CAAC,IAAI9C,EAAEqlB,GAAG5hB,KAAK,0BAA0BX,GAAGA,EAAE4mB,yBAAyB7D,IAAE,SAAWpmB,GAAGC,EAAED,GAAGG,GAAI,IAAA,SAAYH,GAAGM,EAAEN,GAAGG,GAAI,GAAE,CAACwb,KAAKlZ,GAAG,SAASA,GAAG,SAASA,EAAEY,EAAE8c,SAAS9c,EAAE6mB,aAAa/S,OAAO9T,EAAE8T,OAAOD,WAAW7T,EAAE6T,WAAWN,QAAQrW,EAAE2f,OAAOlgB,EAAE4X,QAAQvU,IAAIA,EAAE,IAAI,CAAC,CAAC,GAAGA,EAAE8mB,KAAKloB,EAAEsD,OAAO2D,cAAcjH,EAAEqV,KAAI,GAAIjU,EAAE0hB,QAAQ9iB,EAAE8iB,QAAQ,cAAc1hB,EAAEA,EAAE+mB,UAAU7mB,EAAEF,EAAEgnB,mBAAmB,WAAWhnB,GAAG,IAAIA,EAAEinB,aAAa,IAAIjnB,EAAE8T,QAAQ9T,EAAEknB,aAAa,IAAIlnB,EAAEknB,YAAYriB,QAAQ,WAAW0T,WAAWrY,EAAE,EAAEF,EAAEmnB,QAAQ,WAAWnnB,IAAI/C,EAAE,IAAIwf,GAAG,kBAAkBA,GAAG2K,aAAazqB,EAAEqD,IAAIA,EAAE,KAAK,EAAEA,EAAEqnB,QAAQ,WAAWpqB,EAAE,IAAIwf,GAAG,gBAAgBA,GAAG6K,YAAY3qB,EAAEqD,IAAIA,EAAE,IAAI,EAAEA,EAAEunB,UAAU,WAAW,IAAI3qB,EAAEgC,EAAE8iB,QAAQ,cAAc9iB,EAAE8iB,QAAQ,cAAc,mBAAmBxkB,EAAE0B,EAAEoiB,cAAc1B,GAAG1gB,EAAE4oB,sBAAsB5qB,EAAEgC,EAAE4oB,qBAAqBvqB,EAAE,IAAIwf,GAAG7f,EAAEM,EAAEuiB,oBAAoBhD,GAAGgL,UAAUhL,GAAG2K,aAAazqB,EAAEqD,IAAIA,EAAE,IAAI,OAAE,IAASnB,GAAGC,EAAEqiB,eAAe,MAAM,qBAAqBnhB,GAAG2Y,GAAGzX,QAAQpC,EAAEie,mBAAmBpgB,EAAEC,GAAGoD,EAAE0nB,iBAAiB9qB,EAAED,EAAG,IAAGgc,GAAGmB,YAAYlb,EAAEumB,mBAAmBnlB,EAAEmlB,kBAAkBvmB,EAAEumB,iBAAiB/lB,GAAG,SAASA,IAAIY,EAAEwhB,aAAa5iB,EAAE4iB,cAAc/hB,EAAE,CAAC,IAAIV,EAAEgD,EAAEohB,GAAG1jB,GAAE,GAAI,GAAG1B,EAAEgB,EAAE,GAAGP,EAAEO,EAAE,GAAGiB,EAAEoY,iBAAiB,WAAWra,EAAE,CAAC,GAAGsB,GAAGW,EAAE2nB,OAAO,CAAC,IAAIrnB,EAAEyB,EAAEohB,GAAG9jB,GAAG,GAAG/B,EAAEgD,EAAE,GAAGpC,EAAEoC,EAAE,GAAGN,EAAE2nB,OAAOvP,iBAAiB,WAAW9a,GAAG0C,EAAE2nB,OAAOvP,iBAAiB,UAAUla,EAAE,EAAEU,EAAEgnB,aAAahnB,EAAE8nB,UAAUxpB,EAAE,SAASN,GAAGoD,IAAI/C,GAAGL,GAAGA,EAAE8E,KAAK,IAAImhB,GAAG,KAAKlmB,EAAEqD,GAAGpD,GAAGoD,EAAE4nB,QAAQ5nB,EAAE,KAAK,EAAEpB,EAAEgnB,aAAahnB,EAAEgnB,YAAYiC,UAAU3qB,GAAG0B,EAAE8nB,SAAS9nB,EAAE8nB,OAAOoB,QAAQ5qB,IAAI0B,EAAE8nB,OAAOtO,iBAAiB,QAAQlb,KAAK,IAAI8B,EAAE0B,EAAE3D,GAAGiC,EAAEJ,EAAEqV,KAAKvT,EAAE,4BAA4B2a,KAAKrc,KAAK0B,EAAE,IAAI,IAAI3D,IAAG,IAAKwjB,GAAGV,UAAUhb,QAAQ9H,GAAGE,EAAE,IAAIwf,GAAG,wBAAwB1f,EAAE,IAAI0f,GAAGuG,gBAAgBrmB,IAAIqD,EAAE+nB,KAAKlpB,GAAG,KAAM,GAAE,EAAEmpB,GAAG,SAASrrB,EAAEC,GAAG,IAAIK,GAAGN,EAAEA,EAAEA,EAAEoE,OAAOP,SAAS,IAAIxD,OAAO,GAAGJ,GAAGK,EAAE,CAAC,IAAIC,EAAEI,EAAE,IAAI2qB,gBAAgBlqB,EAAE,SAASpB,GAAG,IAAIO,EAAE,CAACA,GAAE,EAAGsB,IAAI,IAAI5B,EAAED,aAAasF,MAAMtF,EAAEE,KAAKqrB,OAAO5qB,EAAEsqB,MAAMhrB,aAAa6f,GAAG7f,EAAE,IAAIimB,GAAGjmB,aAAaqF,MAAMrF,EAAEggB,QAAQhgB,GAAG,CAAC,EAAEsB,EAAEtB,GAAG2b,YAAU,WAAara,EAAE,KAAKH,EAAE,IAAI0e,GAAG,WAAW/V,OAAO9J,EAAE,mBAAmB6f,GAAGgL,WAAY,GAAE7qB,GAAG4B,EAAE,WAAW7B,IAAIuB,GAAGolB,aAAaplB,GAAGA,EAAE,KAAKvB,EAAEuE,SAAO,SAAWvE,GAAGA,EAAE8pB,YAAY9pB,EAAE8pB,YAAY1oB,GAAGpB,EAAEgqB,oBAAoB,QAAQ5oB,EAAG,IAAGpB,EAAE,KAAK,EAAEA,EAAEuE,kBAAkBvE,GAAG,OAAOA,EAAEyb,iBAAiB,QAAQra,EAAG,IAAG,IAAIa,EAAEtB,EAAEopB,OAAO,OAAO9nB,EAAE6nB,YAAY,WAAW,OAAO9N,GAAG6D,KAAKhe,EAAE,EAAEI,CAAC,CAAC,EAAEupB,GAAG9mB,IAAIiC,eAAe3G,EAAEC,EAAEK,GAAG,IAAIC,EAAEI,EAAES,EAAE,OAAOsD,IAAIO,MAAI,SAAWjF,GAAG,OAAO,OAAOA,EAAEkH,KAAKlH,EAAEiB,MAAM,KAAK,EAAE,GAAGV,EAAEN,EAAEwrB,WAAWnrB,KAAKC,EAAED,GAAG,CAACN,EAAEiB,KAAK,EAAE,KAAK,CAAC,OAAOjB,EAAEiB,KAAK,EAAEhB,EAAE,KAAK,EAAE,OAAOD,EAAE4F,OAAO,UAAU,KAAK,EAAEjF,EAAE,EAAE,KAAK,EAAE,KAAKA,EAAEJ,GAAG,CAACP,EAAEiB,KAAK,GAAG,KAAK,CAAC,OAAOG,EAAET,EAAEL,EAAEN,EAAEiB,KAAK,GAAGhB,EAAEmH,MAAMzG,EAAES,GAAG,KAAK,GAAGT,EAAES,EAAEpB,EAAEiB,KAAK,EAAE,MAAM,KAAK,GAAG,IAAI,MAAM,OAAOjB,EAAEqH,OAAQ,GAAErH,EAAG,IAAG0rB,GAAG,WAAW,IAAI1rB,EAAE6E,EAAEH,IAAIiC,MAAI,SAAW3G,EAAEC,EAAEK,GAAG,IAAIC,EAAEgB,EAAEM,EAAEI,EAAEE,EAAEM,EAAE,OAAOiC,IAAIO,MAAI,SAAWjF,GAAG,OAAO,OAAOA,EAAEkH,KAAKlH,EAAEiB,MAAM,KAAK,EAAEV,GAAE,EAAGgB,GAAE,EAAGvB,EAAEkH,KAAK,EAAEjF,EAAEb,EAAEuqB,GAAG1rB,IAAI,KAAK,EAAE,OAAOD,EAAEiB,KAAK,EAAEiB,EAAED,EAAEhB,QAAQ,KAAK,EAAE,KAAKV,IAAI4B,EAAEnC,EAAEyF,MAAM5E,MAAM,CAACb,EAAEiB,KAAK,GAAG,KAAK,CAAC,OAAOwB,EAAEN,EAAErB,MAAMd,EAAE0H,cAAc/G,EAAES,EAAEoqB,GAAG/oB,EAAEnC,KAAK,KAAK,GAAG,KAAK,EAAEC,GAAE,EAAGP,EAAEiB,KAAK,EAAE,MAAM,KAAK,GAAGjB,EAAEiB,KAAK,GAAG,MAAM,KAAK,GAAGjB,EAAEkH,KAAK,GAAGlH,EAAE4rB,GAAG5rB,EAAEyH,MAAM,GAAGlG,GAAE,EAAGM,EAAE7B,EAAE4rB,GAAG,KAAK,GAAG,GAAG5rB,EAAEkH,KAAK,GAAGlH,EAAEkH,KAAK,IAAI3G,GAAG,MAAM0B,EAAEd,OAAO,CAACnB,EAAEiB,KAAK,GAAG,KAAK,CAAC,OAAOjB,EAAEiB,KAAK,GAAGiB,EAAED,EAAEd,UAAU,KAAK,GAAG,GAAGnB,EAAEkH,KAAK,IAAI3F,EAAE,CAACvB,EAAEiB,KAAK,GAAG,KAAK,CAAC,MAAMY,EAAE,KAAK,GAAG,OAAO7B,EAAEwH,OAAO,IAAI,KAAK,GAAG,OAAOxH,EAAEwH,OAAO,IAAI,KAAK,GAAG,IAAI,MAAM,OAAOxH,EAAEqH,OAAQ,GAAErH,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,KAAM,KAAI,OAAO,SAASC,EAAEK,GAAG,OAAON,EAAE+B,MAAM7B,KAAK8B,UAAU,CAAC,CAAntB,GAAutB2pB,GAAG,WAAW,IAAI3rB,EAAE6E,EAAEH,IAAIiC,MAAI,SAAW3G,EAAEC,GAAG,IAAIK,EAAEC,EAAEgB,EAAEM,EAAE,OAAO6C,IAAIO,eAAejF,GAAG,OAAO,OAAOA,EAAEkH,KAAKlH,EAAEiB,MAAM,KAAK,EAAE,IAAIhB,EAAEc,OAAOM,eAAe,CAACrB,EAAEiB,KAAK,EAAE,KAAK,CAAC,OAAOjB,EAAE0H,cAAc/G,EAAES,EAAEnB,IAAI,KAAK,GAAG,KAAK,EAAE,OAAOD,EAAE4F,OAAO,UAAU,KAAK,EAAEtF,EAAEL,EAAE4rB,YAAY7rB,EAAEkH,KAAK,EAAE,KAAK,EAAE,OAAOlH,EAAEiB,KAAK,EAAEiB,EAAE5B,EAAEynB,QAAQ,KAAK,EAAE,GAAGxnB,EAAEP,EAAEyF,KAAKlE,EAAEhB,EAAEM,KAAKgB,EAAEtB,EAAEO,OAAOS,EAAE,CAACvB,EAAEiB,KAAK,GAAG,KAAK,CAAC,OAAOjB,EAAE4F,OAAO,QAAQ,IAAI,KAAK,GAAG,OAAO5F,EAAEiB,KAAK,GAAGY,EAAE,KAAK,GAAG7B,EAAEiB,KAAK,EAAE,MAAM,KAAK,GAAG,OAAOjB,EAAEkH,KAAK,GAAGlH,EAAEiB,KAAK,GAAGiB,EAAE5B,EAAEoT,UAAU,KAAK,GAAG,OAAO1T,EAAEwH,OAAO,IAAI,KAAK,GAAG,IAAI,MAAM,OAAOxH,EAAEqH,OAAQ,GAAErH,EAAE,KAAK,CAAC,CAAC,GAAG,GAAG,KAAM,KAAI,OAAO,SAASC,GAAG,OAAOD,EAAE+B,MAAM7B,KAAK8B,UAAU,CAAC,CAApnB,GAAwnB8pB,GAAG,SAAS9rB,EAAEC,EAAEK,EAAEC,GAAG,IAAII,EAAES,EAAEsqB,GAAG1rB,EAAEC,GAAGsB,EAAE,EAAEM,EAAE,SAAS7B,GAAGW,IAAIA,GAAE,EAAGJ,GAAGA,EAAEP,GAAG,EAAE,OAAO,IAAI+rB,eAAe,CAACC,KAAK,SAAShsB,GAAG,OAAOiC,EAAEyC,IAAIiC,MAAI,SAAW1G,IAAI,IAAIM,EAAEI,EAAEsB,EAAEC,EAAEC,EAAE,OAAOuC,IAAIO,MAAI,SAAWhF,GAAG,OAAO,OAAOA,EAAEiH,KAAKjH,EAAEgB,MAAM,KAAK,EAAE,OAAOhB,EAAEiH,KAAK,EAAEjH,EAAEgB,KAAK,EAAEG,EAAEH,OAAO,KAAK,EAAE,GAAGV,EAAEN,EAAEwF,KAAK9E,EAAEJ,EAAEM,KAAKoB,EAAE1B,EAAEO,OAAOH,EAAE,CAACV,EAAEgB,KAAK,GAAG,KAAK,CAAC,OAAOY,IAAI7B,EAAEisB,QAAQhsB,EAAE2F,OAAO,UAAU,KAAK,GAAG1D,EAAED,EAAEwpB,WAAWnrB,IAAI6B,EAAEZ,GAAGW,EAAE5B,EAAE6B,IAAInC,EAAEksB,QAAQ,IAAI1R,WAAWvY,IAAIhC,EAAEgB,KAAK,GAAG,MAAM,KAAK,GAAG,MAAMhB,EAAEiH,KAAK,GAAGjH,EAAEksB,GAAGlsB,EAAEwH,MAAM,GAAG5F,EAAE5B,EAAEksB,IAAIlsB,EAAEksB,GAAG,KAAK,GAAG,IAAI,MAAM,OAAOlsB,EAAEoH,OAAQ,GAAEpH,EAAE,KAAK,CAAC,CAAC,EAAE,KAAM,IAA5agC,EAAib,EAAEyR,OAAO,SAAS1T,GAAG,OAAO6B,EAAE7B,GAAGoB,EAAED,QAAQ,GAAG,CAACirB,cAAc,GAAG,EAAEC,GAAG,mBAAmBhV,OAAO,mBAAmBiV,SAAS,mBAAmBC,SAASC,GAAGH,IAAI,mBAAmBN,eAAeU,GAAGJ,KAAK,mBAAmBK,aAAatD,GAAG,IAAIsD,YAAY,SAAS1sB,GAAG,OAAOopB,GAAGhH,OAAOpiB,EAAE,GAAG,WAAW,IAAIA,EAAEiC,EAAEyC,IAAIiC,MAAI,SAAW3G,EAAEC,GAAG,OAAOyE,IAAIO,eAAejF,GAAG,OAAO,OAAOA,EAAEkH,KAAKlH,EAAEiB,MAAM,KAAK,EAAE,OAAOjB,EAAEmsB,GAAG3R,WAAWxa,EAAEiB,KAAK,EAAE,IAAIsrB,SAAStsB,GAAG0sB,cAAc,KAAK,EAAE,OAAO3sB,EAAE4rB,GAAG5rB,EAAEyF,KAAKzF,EAAE4F,OAAO,SAAS,IAAI5F,EAAEmsB,GAAGnsB,EAAE4rB,KAAK,KAAK,EAAE,IAAI,MAAM,OAAO5rB,EAAEqH,OAAQ,GAAErH,EAAG,KAAI,OAAO,SAASC,GAAG,OAAOD,EAAE+B,MAAM7B,KAAK8B,UAAU,CAAC,CAAnU,IAAwU4qB,GAAG,SAAS5sB,GAAG,IAAI,IAAI,IAAIC,EAAE+B,UAAU3B,OAAOC,EAAE,IAAIE,MAAMP,EAAE,EAAEA,EAAE,EAAE,GAAGM,EAAE,EAAEA,EAAEN,EAAEM,IAAID,EAAEC,EAAE,GAAGyB,UAAUzB,GAAG,QAAQP,EAAE+B,WAAM,EAAOzB,EAAE,CAAC,MAAMN,GAAG,QAAQ,CAAC,EAAE6sB,GAAGL,IAAII,IAAE,WAAa,IAAI5sB,GAAE,EAAGC,EAAE,IAAIqsB,QAAQ1I,GAAGK,OAAO,CAACpM,KAAK,IAAIkU,eAAexmB,OAAO,OAAO,UAAIunB,GAAS,OAAO9sB,GAAE,EAAG,MAAM,IAAI4W,QAAQzO,IAAI,gBAAgB,OAAOnI,IAAIC,CAAE,IAAG8sB,GAAGP,IAAII,eAAe,OAAO5Q,GAAGe,iBAAiB,IAAIwP,SAAS,IAAI1U,KAAM,IAAGmV,GAAG,CAACC,OAAOF,IAAI,SAAS/sB,GAAG,OAAOA,EAAE6X,IAAI,GAAGwU,KAAKhD,GAAG,IAAIkD,SAAS,CAAC,OAAO,cAAc,OAAO,WAAW,UAAUhoB,SAAO,SAAWvE,IAAIgtB,GAAGhtB,KAAKgtB,GAAGhtB,GAAGgc,GAAGwB,WAAW6L,GAAGrpB,IAAI,SAASC,GAAG,OAAOA,EAAED,IAAI,EAAE,SAASC,EAAEK,GAAG,MAAM,IAAIwf,GAAG,kBAAkB/V,OAAO/J,EAAE,sBAAsB8f,GAAGoN,gBAAgB5sB,EAAE,EAAG,KAAI,IAAI6sB,GAAG,WAAW,IAAIntB,EAAEiC,EAAEyC,IAAIiC,MAAI,SAAW3G,EAAEC,GAAG,IAAIK,EAAE,OAAOoE,IAAIO,MAAI,SAAWjF,GAAG,OAAO,OAAOA,EAAEkH,KAAKlH,EAAEiB,MAAM,KAAK,EAAE,GAAG,MAAMhB,EAAE,CAACD,EAAEiB,KAAK,EAAE,KAAK,CAAC,OAAOjB,EAAE4F,OAAO,SAAS,GAAG,KAAK,EAAE,IAAIoW,GAAGsB,OAAOrd,GAAG,CAACD,EAAEiB,KAAK,EAAE,KAAK,CAAC,OAAOjB,EAAE4F,OAAO,SAAS3F,EAAE8M,MAAM,KAAK,EAAE,IAAIiP,GAAGyD,oBAAoBxf,GAAG,CAACD,EAAEiB,KAAK,EAAE,KAAK,CAAC,OAAOX,EAAE,IAAIgsB,QAAQ1I,GAAGK,OAAO,CAAC1e,OAAO,OAAOsS,KAAK5X,IAAID,EAAEiB,KAAK,EAAEX,EAAEqsB,cAAc,KAAK,EAAE,KAAK,GAAG,OAAO3sB,EAAE4F,OAAO,SAAS5F,EAAEyF,KAAKgmB,YAAY,KAAK,EAAE,IAAIzP,GAAGM,kBAAkBrc,KAAK+b,GAAGC,cAAchc,GAAG,CAACD,EAAEiB,KAAK,GAAG,KAAK,CAAC,OAAOjB,EAAE4F,OAAO,SAAS3F,EAAEwrB,YAAY,KAAK,GAAG,GAAGzP,GAAG2B,kBAAkB1d,KAAKA,GAAG,KAAK+b,GAAGU,SAASzc,GAAG,CAACD,EAAEiB,KAAK,GAAG,KAAK,CAAC,OAAOjB,EAAEiB,KAAK,GAAGwrB,GAAGxsB,GAAG,KAAK,GAAG,IAAI,MAAM,OAAOD,EAAEqH,OAAQ,GAAErH,EAAG,KAAI,OAAO,SAASC,GAAG,OAAOD,EAAE+B,MAAM7B,KAAK8B,UAAU,CAAC,CAAruB,GAAyuBorB,GAAG,WAAW,IAAIptB,EAAEiC,EAAEyC,IAAIiC,MAAI,SAAW3G,EAAEC,EAAEK,GAAG,IAAIC,EAAE,OAAOmE,IAAIO,eAAejF,GAAG,OAAO,OAAOA,EAAEkH,KAAKlH,EAAEiB,MAAM,KAAK,EAAE,OAAOV,EAAEyb,GAAGkD,eAAejf,EAAEotB,oBAAoBrtB,EAAE4F,OAAO,SAAS,MAAMrF,EAAE4sB,GAAG7sB,GAAGC,GAAG,KAAK,EAAE,IAAI,MAAM,OAAOP,EAAEqH,OAAQ,GAAErH,EAAG,KAAI,OAAO,SAASC,EAAEK,GAAG,OAAON,EAAE+B,MAAM7B,KAAK8B,UAAU,CAAC,CAAvS,GAA2SsrB,GAAGjB,IAAI,WAAW,IAAIrsB,EAAEiC,EAAEyC,IAAIiC,MAAI,SAAW3G,EAAEC,GAAG,IAAIK,EAAEC,EAAEI,EAAES,EAAEG,EAAEM,EAAEI,EAAEC,EAAEC,EAAEM,EAAEC,EAAEI,EAAE3C,EAAEkD,EAAEE,EAAEnB,EAAEuB,EAAEtB,EAAE0B,EAAE3D,EAAE6D,EAAEpB,EAAEiC,EAAE3B,EAAE4C,EAAEzC,EAAEuB,EAAEK,EAAE6C,EAAEO,EAAE+B,EAAEE,EAAEgjB,EAAEC,EAAE,OAAO9oB,IAAIO,eAAejF,GAAG,OAAO,OAAOA,EAAEkH,KAAKlH,EAAEiB,MAAM,KAAK,EAAE,GAAGX,EAAEgpB,GAAGrpB,GAAGM,EAAED,EAAEgX,IAAI3W,EAAEL,EAAEiF,OAAOnE,EAAEd,EAAEqb,KAAKpa,EAAEjB,EAAEypB,OAAOloB,EAAEvB,EAAE2oB,YAAYhnB,EAAE3B,EAAEykB,QAAQ7iB,EAAE5B,EAAEqoB,mBAAmBxmB,EAAE7B,EAAEooB,iBAAiBjmB,EAAEnC,EAAEukB,aAAaniB,EAAEpC,EAAEsW,QAAQ9T,EAAExC,EAAEkoB,gBAAgBroB,OAAE,IAAS2C,EAAE,cAAcA,EAAEO,EAAE/C,EAAEmtB,aAAahrB,EAAEA,GAAGA,EAAE,IAAIiG,cAAc,OAAOnF,EAAE8nB,GAAG,CAAC9pB,EAAEM,GAAGA,EAAE6rB,iBAAiBzrB,GAAG0B,EAAEJ,GAAGA,EAAEumB,aAAa,WAAWvmB,EAAEumB,aAAa,EAAE9pB,EAAEkH,KAAK,EAAElH,EAAEmsB,GAAGhqB,GAAG0qB,IAAI,QAAQlsB,GAAG,SAASA,GAAGX,EAAEmsB,GAAG,CAACnsB,EAAEiB,KAAK,GAAG,KAAK,CAAC,OAAOjB,EAAEiB,KAAK,EAAEmsB,GAAG1qB,EAAEtB,GAAG,KAAK,EAAEpB,EAAE4rB,GAAGvpB,EAAErC,EAAEyF,KAAKzF,EAAEmsB,GAAG,IAAInsB,EAAE4rB,GAAG,KAAK,GAAG,IAAI5rB,EAAEmsB,GAAG,CAACnsB,EAAEiB,KAAK,GAAG,KAAK,CAAC8C,EAAE,IAAIuoB,QAAQ/rB,EAAE,CAACgF,OAAO,OAAOsS,KAAKzW,EAAE0rB,OAAO,SAAS9Q,GAAGG,WAAW/a,KAAKhB,EAAE2D,EAAE6S,QAAQxO,IAAI,kBAAkB1F,EAAE8hB,eAAepkB,GAAG2D,EAAE8T,OAAO5T,EAAEmjB,GAAG/kB,EAAEmkB,GAAGa,GAAGllB,KAAKU,EAAEuC,EAAEnB,EAAE,GAAGa,EAAEjC,EAAE,GAAGM,EAAEN,EAAE,GAAGzB,EAAE0qB,GAAG/nB,EAAE8T,KAAK,MAAM/S,EAAE3B,IAAI,KAAK,GAAG,OAAO6Y,GAAGU,SAASvc,KAAKA,EAAEA,EAAE,UAAU,QAAQ4F,EAAE,gBAAgBumB,QAAQxqB,UAAUM,EAAE,IAAIkqB,QAAQ/rB,EAAE+D,EAAEA,EAAE,CAAA,EAAGjB,GAAG,CAAA,EAAG,CAAC0mB,OAAOxmB,EAAEgC,OAAO5E,EAAEuI,cAAc0N,QAAQlU,EAAEqjB,YAAY3F,SAASvI,KAAKzW,EAAE0rB,OAAO,OAAOa,YAAY5nB,EAAE5F,OAAE,KAAUH,EAAEiB,KAAK,GAAGoW,MAAMjV,GAAG,KAAK,GAAG,OAAOkB,EAAEtD,EAAEyF,KAAKZ,EAAEkoB,KAAK,WAAWtqB,GAAG,aAAaA,GAAGsqB,KAAK7qB,GAAG2C,GAAGlB,KAAKuB,EAAE,CAAA,EAAG,CAAC,SAAS,aAAa,WAAWX,kBAAkBvE,GAAGkF,EAAElF,GAAGsD,EAAEtD,EAAG,IAAG+H,EAAEiU,GAAGkD,eAAe5b,EAAEsT,QAAQxO,IAAI,mBAAmBE,EAAEpG,GAAGklB,GAAGrf,EAAEye,GAAGa,GAAGnlB,IAAG,KAAM,GAAGmI,EAAEjF,EAAEkD,EAAE,GAAGiC,EAAEF,EAAE,GAAGkjB,EAAEljB,EAAE,GAAG/G,EAAE,IAAIipB,SAAST,GAAGxoB,EAAEuU,KAAK,MAAMtN,GAAC,WAAagjB,GAAGA,IAAI5pB,GAAGA,GAAI,IAAGuB,IAAIzC,EAAEA,GAAG,OAAOzC,EAAEiB,KAAK,GAAG+rB,GAAGhR,GAAGqD,QAAQ2N,GAAGvqB,IAAI,QAAQa,EAAErD,GAAG,KAAK,GAAG,OAAOutB,EAAExtB,EAAEyF,MAAMZ,GAAGlB,GAAGA,IAAI3D,EAAEiB,KAAK,GAAG,IAAIL,SAAO,SAAWZ,EAAEM,GAAG8lB,GAAGpmB,EAAEM,EAAE,CAACqb,KAAK6R,EAAE5W,QAAQgP,GAAG5hB,KAAKV,EAAEsT,SAASO,OAAO7T,EAAE6T,OAAOD,WAAW5T,EAAE4T,WAAWgJ,OAAOjgB,EAAE2X,QAAQxV,GAAI,IAAG,KAAK,GAAG,OAAOpC,EAAE4F,OAAO,SAAS5F,EAAEyF,MAAM,KAAK,GAAG,GAAGzF,EAAEkH,KAAK,GAAGlH,EAAE4tB,GAAG5tB,EAAEyH,MAAM,GAAG9D,GAAGA,KAAK3D,EAAE4tB,IAAI,cAAc5tB,EAAE4tB,GAAGlnB,OAAO,SAASoB,KAAK9H,EAAE4tB,GAAG3N,SAAS,CAACjgB,EAAEiB,KAAK,GAAG,KAAK,CAAC,MAAMQ,OAAO0c,OAAO,IAAI2B,GAAG,gBAAgBA,GAAG6K,YAAY1qB,EAAEmC,GAAG,CAAC2e,MAAM/gB,EAAE4tB,GAAG7M,OAAO/gB,EAAE4tB,KAAK,KAAK,GAAG,MAAM9N,GAAG9b,KAAKhE,EAAE4tB,GAAG5tB,EAAE4tB,IAAI5tB,EAAE4tB,GAAGjY,KAAK1V,EAAEmC,GAAG,KAAK,GAAG,IAAI,MAAM,OAAOpC,EAAEqH,OAAQ,GAAErH,EAAE,KAAK,CAAC,CAAC,EAAE,KAAM,KAAI,OAAO,SAASC,GAAG,OAAOD,EAAE+B,MAAM7B,KAAK8B,UAAU,CAAC,CAAjiE,GAAqiE6rB,GAAG,CAACC,KAAK,KAAKC,IAAInE,GAAGvS,MAAMiW,IAAItR,GAAGzX,QAAQspB,IAAE,SAAW7tB,EAAEC,GAAG,GAAGD,EAAE,CAAC,IAAIyB,OAAOyB,eAAelD,EAAE,OAAO,CAACc,MAAMb,GAAG,CAAC,MAAMD,GAAG,CAACyB,OAAOyB,eAAelD,EAAE,cAAc,CAACc,MAAMb,GAAG,CAAE,IAAG,IAAI+tB,GAAG,SAAShuB,GAAG,MAAM,KAAK+J,OAAO/J,EAAE,EAAEiuB,GAAG,SAASjuB,GAAG,OAAOgc,GAAGwB,WAAWxd,IAAI,OAAOA,IAAG,IAAKA,CAAC,EAAEkuB,GAAG,SAASluB,GAAG,IAAI,IAAIC,EAAEK,EAAEC,GAAGP,EAAEgc,GAAGvb,QAAQT,GAAGA,EAAE,CAACA,IAAIK,OAAOM,EAAE,GAAGS,EAAE,EAAEA,EAAEb,EAAEa,IAAI,CAAC,IAAIG,OAAE,EAAO,GAAGjB,EAAEL,EAAED,EAAEoB,IAAI6sB,GAAGhuB,SAAI,KAAUK,EAAEutB,IAAItsB,EAAEqG,OAAO3H,IAAIyI,gBAAgB,MAAM,IAAIoX,GAAG,oBAAoB/V,OAAOxI,EAAE,MAAM,GAAGjB,EAAE,MAAMK,EAAEY,GAAG,IAAIH,GAAGd,CAAC,CAAC,IAAIA,EAAE,CAAC,IAAIuB,EAAEJ,OAAO0iB,QAAQxjB,GAAGsL,KAAG,SAAWjM,GAAG,IAAIC,EAAEmF,EAAEpF,EAAE,GAAGM,EAAEL,EAAE,GAAGM,EAAEN,EAAE,GAAG,MAAM,WAAW8J,OAAOzJ,EAAE,OAAM,IAAKC,EAAE,sCAAsC,gCAAiC,IAAG,MAAM,IAAIuf,GAAG,yDAAyDvf,EAAEsB,EAAExB,OAAO,EAAE,YAAYwB,EAAEoK,IAAI+hB,IAAI5kB,KAAK,MAAM,IAAI4kB,GAAGnsB,EAAE,IAAI,2BAA2B,kBAAkB,CAAC,OAAOvB,CAAC,EAAE,SAAS6tB,GAAGnuB,GAAG,GAAGA,EAAEipB,aAAajpB,EAAEipB,YAAYmF,mBAAmBpuB,EAAE+pB,QAAQ/pB,EAAE+pB,OAAOoB,QAAQ,MAAM,IAAIjF,GAAG,KAAKlmB,EAAE,CAAC,SAASquB,GAAGruB,GAAG,OAAOmuB,GAAGnuB,GAAGA,EAAE4W,QAAQgP,GAAG5hB,KAAKhE,EAAE4W,SAAS5W,EAAE2b,KAAKmK,GAAGxkB,KAAKtB,EAAEA,EAAEskB,mBAAkB,IAAK,CAAC,OAAO,MAAM,SAASpc,QAAQlI,EAAEuF,SAASvF,EAAE4W,QAAQ4N,eAAe,qCAAoC,GAAI0J,GAAGluB,EAAE4Q,SAASwT,GAAGxT,QAAjBsd,CAA0BluB,GAAG4B,MAAI,SAAW3B,GAAG,OAAOkuB,GAAGnuB,GAAGC,EAAE0b,KAAKmK,GAAGxkB,KAAKtB,EAAEA,EAAE4kB,kBAAkB3kB,GAAGA,EAAE2W,QAAQgP,GAAG5hB,KAAK/D,EAAE2W,SAAS3W,CAAE,IAAA,SAAYA,GAAG,OAAO+lB,GAAG/lB,KAAKkuB,GAAGnuB,GAAGC,GAAGA,EAAEkgB,WAAWlgB,EAAEkgB,SAASxE,KAAKmK,GAAGxkB,KAAKtB,EAAEA,EAAE4kB,kBAAkB3kB,EAAEkgB,UAAUlgB,EAAEkgB,SAASvJ,QAAQgP,GAAG5hB,KAAK/D,EAAEkgB,SAASvJ,WAAWhW,QAAQc,OAAOzB,EAAG,GAAE,CAAC,IAAequB,GAAG,CAAA,EAAG,CAAC,SAAS,UAAU,SAAS,WAAW,SAAS,UAAU/pB,SAAO,SAAWvE,EAAEC,GAAGquB,GAAGtuB,GAAG,SAASM,GAAG,OAAOyF,EAAEzF,KAAKN,GAAG,KAAKC,EAAE,EAAE,KAAK,KAAKD,CAAC,CAAE,IAAG,IAAIuuB,GAAG,CAAA,EAAGD,GAAGjK,aAAa,SAASrkB,EAAEC,EAAEK,GAAG,SAASC,EAAEP,EAAEC,GAAG,MAAM,uCAAuCD,EAAE,IAAIC,GAAGK,EAAE,KAAKA,EAAE,GAAG,CAAC,OAAO,SAASA,EAAEK,EAAES,GAAG,IAAG,IAAKpB,EAAE,MAAM,IAAI8f,GAAGvf,EAAEI,EAAE,qBAAqBV,EAAE,OAAOA,EAAE,KAAK6f,GAAG0O,gBAAgB,OAAOvuB,IAAIsuB,GAAG5tB,KAAK4tB,GAAG5tB,IAAG,EAAG8tB,QAAQC,KAAKnuB,EAAEI,EAAE,+BAA+BV,EAAE,8CAA8CD,GAAGA,EAAEM,EAAEK,EAAES,EAAE,CAAC,EAAEktB,GAAGK,SAAS,SAAS3uB,GAAG,OAAO,SAASC,EAAEK,GAAG,OAAOmuB,QAAQC,KAAK,GAAG3kB,OAAOzJ,EAAE,gCAAgCyJ,OAAO/J,KAAI,CAAE,CAAC,EAAE,IAAI4uB,GAAG,CAACC,cAAc,SAAS7uB,EAAEC,EAAEK,GAAG,GAAG,WAAWyF,EAAE/F,GAAG,MAAM,IAAI8f,GAAG,4BAA4BA,GAAGgP,sBAAsB,IAAI,IAAIvuB,EAAEkB,OAAOyC,KAAKlE,GAAGW,EAAEJ,EAAEF,OAAOM,KAAK,GAAG,CAAC,IAAIS,EAAEb,EAAEI,GAAGY,EAAEtB,EAAEmB,GAAG,GAAGG,EAAE,CAAC,IAAIM,EAAE7B,EAAEoB,GAAGa,OAAE,IAASJ,GAAGN,EAAEM,EAAET,EAAEpB,GAAG,IAAG,IAAKiC,EAAE,MAAM,IAAI6d,GAAG,UAAU1e,EAAE,YAAYa,EAAE6d,GAAGgP,qBAAqB,MAAM,IAAG,IAAKxuB,EAAE,MAAM,IAAIwf,GAAG,kBAAkB1e,EAAE0e,GAAGiP,eAAe,CAAC,EAAEC,WAAWV,IAAIW,GAAGL,GAAGI,WAAWE,GAAG,WAAW,OAAO/uB,GAAC,SAAWH,EAAEC,GAAGwC,EAAEvC,KAAKF,GAAGE,KAAKivB,SAASlvB,EAAEC,KAAKkvB,aAAa,CAACxX,QAAQ,IAAIyK,GAAGlC,SAAS,IAAIkC,GAAI,GAAE,CAAC,CAACjf,IAAI,UAAUtC,OAAOd,EAAEiC,EAAEyC,IAAIiC,MAAI,SAAW3G,EAAEC,EAAEK,GAAG,IAAIC,EAAEI,EAAE,OAAO+D,IAAIO,MAAI,SAAWjF,GAAG,OAAO,OAAOA,EAAEkH,KAAKlH,EAAEiB,MAAM,KAAK,EAAE,OAAOjB,EAAEkH,KAAK,EAAElH,EAAEiB,KAAK,EAAEf,KAAKmvB,SAASpvB,EAAEK,GAAG,KAAK,EAAE,OAAON,EAAE4F,OAAO,SAAS5F,EAAEyF,MAAM,KAAK,EAAE,GAAGzF,EAAEkH,KAAK,EAAElH,EAAEmsB,GAAGnsB,EAAEyH,MAAM,GAAGzH,EAAEmsB,cAAc7mB,MAAM,CAAC/E,EAAE,CAAA,EAAG+E,MAAMya,kBAAkBza,MAAMya,kBAAkBxf,GAAGA,EAAE,IAAI+E,MAAM3E,EAAEJ,EAAEyf,MAAMzf,EAAEyf,MAAMpX,QAAQ,QAAQ,IAAI,GAAG,IAAI5I,EAAEmsB,GAAGnM,MAAMrf,IAAIiH,OAAO5H,EAAEmsB,GAAGnM,OAAOzB,SAAS5d,EAAEiI,QAAQ,YAAY,OAAO5I,EAAEmsB,GAAGnM,OAAO,KAAKrf,GAAGX,EAAEmsB,GAAGnM,MAAMrf,CAAC,CAAC,MAAMX,GAAG,CAAC,CAAC,MAAMA,EAAEmsB,GAAG,KAAK,GAAG,IAAI,MAAM,OAAOnsB,EAAEqH,OAAQ,GAAErH,EAAEE,KAAK,CAAC,CAAC,EAAE,IAAK,KAAI,SAASD,EAAEK,GAAG,OAAON,EAAE+B,MAAM7B,KAAK8B,UAAU,IAAI,CAACoB,IAAI,WAAWtC,MAAM,SAASd,EAAEC,GAAG,iBAAiBD,GAAGC,EAAEA,GAAG,CAAA,GAAIqX,IAAItX,EAAEC,EAAED,GAAG,CAAA,EAAG,IAAIM,EAAEL,EAAEmoB,GAAGloB,KAAKivB,SAASlvB,GAAGM,EAAED,EAAE+jB,aAAa1jB,EAAEL,EAAEgoB,iBAAiBlnB,EAAEd,EAAEsW,aAAQ,IAASrW,GAAGquB,GAAGC,cAActuB,EAAE,CAACqiB,kBAAkBqM,GAAG5K,aAAa4K,GAAGK,SAASzM,kBAAkBoM,GAAG5K,aAAa4K,GAAGK,SAASxM,oBAAoBmM,GAAG5K,aAAa4K,GAAGK,WAAU,GAAI,MAAM3uB,IAAIqb,GAAGwB,WAAW7c,GAAGV,EAAEqoB,iBAAiB,CAAC9Y,UAAU7O,GAAGiuB,GAAGC,cAAcluB,EAAE,CAACyhB,OAAO6M,GAAGM,SAAS/f,UAAUyf,GAAGM,WAAU,IAAKX,GAAGC,cAAc5uB,EAAE,CAACuvB,QAAQP,GAAGN,SAAS,WAAWc,cAAcR,GAAGN,SAAS,mBAAkB,GAAI1uB,EAAEsF,QAAQtF,EAAEsF,QAAQrF,KAAKivB,SAAS5pB,QAAQ,OAAOmD,cAAc,IAAInH,EAAEH,GAAG4a,GAAG8B,MAAM1c,EAAEikB,OAAOjkB,EAAEnB,EAAEsF,SAASnE,GAAG4a,GAAGzX,QAAQ,CAAC,SAAS,MAAM,OAAO,OAAO,MAAM,QAAQ,oBAAoBvE,UAAUoB,EAAEpB,EAAG,IAAGC,EAAE2W,QAAQgP,GAAG7b,OAAOxI,EAAEH,GAAG,IAAIS,EAAE,GAAGI,GAAE,EAAG/B,KAAKkvB,aAAaxX,QAAQrT,SAAO,SAAWvE,GAAG,mBAAmBA,EAAE0iB,UAAS,IAAK1iB,EAAE0iB,QAAQziB,KAAKgC,EAAEA,GAAGjC,EAAEyiB,YAAY5gB,EAAE6tB,QAAQ1vB,EAAEuiB,UAAUviB,EAAEwiB,UAAW,IAAG,IAAItgB,EAAEC,EAAE,GAAGjC,KAAKkvB,aAAajP,SAAS5b,SAAO,SAAWvE,GAAGmC,EAAEQ,KAAK3C,EAAEuiB,UAAUviB,EAAEwiB,SAAU,IAAG,IAAI/f,EAAEC,EAAE,EAAE,IAAIT,EAAE,CAAC,IAAIa,EAAE,CAACurB,GAAGzrB,KAAK1C,WAAM,GAAQ,IAAI4C,EAAE4sB,QAAQ3tB,MAAMe,EAAEjB,GAAGiB,EAAEH,KAAKZ,MAAMe,EAAEX,GAAGM,EAAEK,EAAEzC,OAAO6B,EAAEtB,QAAQe,QAAQ1B,GAAGyC,EAAED,GAAGP,EAAEA,EAAEN,KAAKkB,EAAEJ,KAAKI,EAAEJ,MAAM,OAAOR,CAAC,CAACO,EAAEZ,EAAExB,OAAO,IAAIF,EAAEF,EAAE,IAAIyC,EAAE,EAAEA,EAAED,GAAG,CAAC,IAAIY,EAAExB,EAAEa,KAAKa,EAAE1B,EAAEa,KAAK,IAAIvC,EAAEkD,EAAElD,EAAE,CAAC,MAAMH,GAAGuD,EAAEjC,KAAKpB,KAAKF,GAAG,KAAK,CAAC,CAAC,IAAIkC,EAAEmsB,GAAG/sB,KAAKpB,KAAKC,EAAE,CAAC,MAAMH,GAAG,OAAOY,QAAQc,OAAO1B,EAAE,CAAC,IAAI0C,EAAE,EAAED,EAAEN,EAAE9B,OAAOqC,EAAED,GAAGP,EAAEA,EAAEN,KAAKO,EAAEO,KAAKP,EAAEO,MAAM,OAAOR,CAAC,GAAG,CAACkB,IAAI,SAAStC,MAAM,SAASd,GAAG,OAAOmiB,GAAG+F,IAAIloB,EAAEooB,GAAGloB,KAAKivB,SAASnvB,IAAIqoB,QAAQroB,EAAEsX,KAAKtX,EAAEwpB,OAAOxpB,EAAEsoB,iBAAiB,KAAK,IAAItoB,CAAC,CAAztE,GAA6tEgc,GAAGzX,QAAQ,CAAC,SAAS,MAAM,OAAO,YAAU,SAAWvE,GAAGkvB,GAAGptB,UAAU9B,GAAG,SAASC,EAAEK,GAAG,OAAOJ,KAAK0X,QAAQwQ,GAAG9nB,GAAG,GAAG,CAACiF,OAAOvF,EAAEsX,IAAIrX,EAAE0b,MAAMrb,GAAG,CAAA,GAAIqb,OAAO,CAAE,IAAGK,GAAGzX,QAAQ,CAAC,OAAO,MAAM,UAAQ,SAAWvE,GAAG,SAASC,EAAEA,GAAG,OAAO,SAASK,EAAEC,EAAEI,GAAG,OAAOT,KAAK0X,QAAQwQ,GAAGznB,GAAG,CAAA,EAAG,CAAC4E,OAAOvF,EAAE4W,QAAQ3W,EAAE,CAAC,eAAe,uBAAuB,CAAA,EAAGqX,IAAIhX,EAAEqb,KAAKpb,IAAI,CAAC,CAAC2uB,GAAGptB,UAAU9B,GAAGC,IAAIivB,GAAGptB,UAAU9B,EAAE,QAAQC,GAAE,EAAI,IAAG,IAAI0vB,GAAG,WAAW,SAAS3vB,EAAEC,GAAG,GAAGwC,EAAEvC,KAAKF,GAAG,mBAAmBC,EAAE,MAAM,IAAIuB,UAAU,gCAAgC,IAAIlB,EAAEJ,KAAK0vB,QAAQ,IAAIhvB,SAAO,SAAWZ,GAAGM,EAAEN,CAAE,IAAG,IAAIO,EAAEL,KAAKA,KAAK0vB,QAAQhuB,MAAI,SAAW5B,GAAG,GAAGO,EAAEsvB,WAAW,CAAC,IAAI,IAAI5vB,EAAEM,EAAEsvB,WAAWxvB,OAAOJ,KAAK,GAAGM,EAAEsvB,WAAW5vB,GAAGD,GAAGO,EAAEsvB,WAAW,IAAI,CAAE,IAAG3vB,KAAK0vB,QAAQhuB,KAAK,SAAS5B,GAAG,IAAIC,EAAEK,EAAE,IAAIM,SAAO,SAAWZ,GAAGO,EAAE2qB,UAAUlrB,GAAGC,EAAED,CAAE,IAAG4B,KAAK5B,GAAG,OAAOM,EAAEoT,OAAO,WAAWnT,EAAEupB,YAAY7pB,EAAE,EAAEK,CAAC,EAAEL,GAAC,SAAWD,EAAEC,EAAEU,GAAGJ,EAAEgrB,SAAShrB,EAAEgrB,OAAO,IAAIrF,GAAGlmB,EAAEC,EAAEU,GAAGL,EAAEC,EAAEgrB,QAAS,GAAE,CAAC,OAAOprB,EAAEH,EAAE,CAAC,CAACoD,IAAI,mBAAmBtC,MAAM,WAAW,GAAGZ,KAAKqrB,OAAO,MAAMrrB,KAAKqrB,MAAM,GAAG,CAACnoB,IAAI,YAAYtC,MAAM,SAASd,GAAGE,KAAKqrB,OAAOvrB,EAAEE,KAAKqrB,QAAQrrB,KAAK2vB,WAAW3vB,KAAK2vB,WAAWltB,KAAK3C,GAAGE,KAAK2vB,WAAW,CAAC7vB,EAAE,GAAG,CAACoD,IAAI,cAActC,MAAM,SAASd,GAAG,GAAGE,KAAK2vB,WAAW,CAAC,IAAI5vB,EAAEC,KAAK2vB,WAAW3nB,QAAQlI,IAAG,IAAKC,GAAGC,KAAK2vB,WAAWvkB,OAAOrL,EAAE,EAAE,CAAC,GAAG,CAACmD,IAAI,gBAAgBtC,MAAM,WAAW,IAAId,EAAEE,KAAKD,EAAE,IAAIqrB,gBAAgBhrB,EAAE,SAASN,GAAGC,EAAEgrB,MAAMjrB,EAAE,EAAE,OAAOE,KAAKgrB,UAAU5qB,GAAGL,EAAE8pB,OAAOD,YAAY,WAAW,OAAO9pB,EAAE8pB,YAAYxpB,EAAE,EAAEL,EAAE8pB,MAAM,IAAI,CAAC,CAAC3mB,IAAI,SAAStC,MAAM,WAAW,IAAIb,EAAE,MAAM,CAAC6vB,MAAM,IAAI9vB,GAAC,SAAWA,GAAGC,EAAED,CAAE,IAAG0T,OAAOzT,EAAE,IAAI,CAA5mC,GAAonC8vB,GAAG,CAACC,SAAS,IAAIC,mBAAmB,IAAIC,WAAW,IAAIC,WAAW,IAAIC,GAAG,IAAIC,QAAQ,IAAIC,SAAS,IAAIC,4BAA4B,IAAIC,UAAU,IAAIC,aAAa,IAAIC,eAAe,IAAIC,YAAY,IAAIC,gBAAgB,IAAIC,OAAO,IAAIC,gBAAgB,IAAIC,iBAAiB,IAAIC,MAAM,IAAIC,SAAS,IAAIC,YAAY,IAAIC,SAAS,IAAIC,OAAO,IAAIC,kBAAkB,IAAIC,kBAAkB,IAAIC,WAAW,IAAIC,aAAa,IAAIC,gBAAgB,IAAIC,UAAU,IAAIC,SAAS,IAAIC,iBAAiB,IAAIC,cAAc,IAAIC,4BAA4B,IAAIC,eAAe,IAAIC,SAAS,IAAIC,KAAK,IAAIC,eAAe,IAAIC,mBAAmB,IAAIC,gBAAgB,IAAIC,WAAW,IAAIC,qBAAqB,IAAIC,oBAAoB,IAAIC,kBAAkB,IAAIC,UAAU,IAAIC,mBAAmB,IAAIC,oBAAoB,IAAIC,OAAO,IAAIC,iBAAiB,IAAIC,SAAS,IAAIC,gBAAgB,IAAIC,qBAAqB,IAAIC,gBAAgB,IAAIC,4BAA4B,IAAIC,2BAA2B,IAAIC,oBAAoB,IAAIC,eAAe,IAAIC,WAAW,IAAIC,mBAAmB,IAAIC,eAAe,IAAIC,wBAAwB,IAAIC,sBAAsB,IAAIC,oBAAoB,IAAIC,aAAa,IAAIC,YAAY,IAAIC,8BAA8B,KAAKryB,OAAO0iB,QAAQ4L,IAAIxrB,SAAO,SAAWvE,GAAG,IAAIC,EAAEmF,EAAEpF,EAAE,GAAGM,EAAEL,EAAE,GAAGM,EAAEN,EAAE,GAAG8vB,GAAGxvB,GAAGD,CAAE,IAAG,IAAIiO,GAAG,SAASvO,EAAEC,GAAG,IAAIK,EAAE,IAAI4uB,GAAGjvB,GAAGM,EAAEyX,GAAGkX,GAAGptB,UAAU8V,QAAQtX,GAAG,OAAO0b,GAAGlM,OAAOvP,EAAE2uB,GAAGptB,UAAUxB,EAAE,CAACoZ,YAAW,IAAKsC,GAAGlM,OAAOvP,EAAED,EAAE,KAAK,CAACoZ,YAAW,IAAKnZ,EAAEqD,OAAO,SAAStD,GAAG,OAAON,EAAEooB,GAAGnoB,EAAEK,GAAG,EAAEC,CAAC,CAA3L,CAA6L6jB,IAAI7V,GAAGwlB,MAAM7E,GAAG3gB,GAAGylB,cAAc9N,GAAG3X,GAAG0lB,YAAYtE,GAAGphB,GAAG2lB,SAASlO,GAAGzX,GAAG4lB,QAAhxM,QAA2xM5lB,GAAG6lB,WAAWnT,GAAG1S,GAAG8lB,WAAWvU,GAAGvR,GAAG+lB,OAAO/lB,GAAGylB,cAAczlB,GAAGgmB,IAAI,SAASv0B,GAAG,OAAOY,QAAQ2zB,IAAIv0B,EAAE,EAAEuO,GAAGimB,OAAO,SAASx0B,GAAG,OAAO,SAASC,GAAG,OAAOD,EAAE+B,MAAM,KAAK9B,EAAE,CAAC,EAAEsO,GAAGkmB,aAAa,SAASz0B,GAAG,OAAOgc,GAAGa,SAAS7c,KAAI,IAAKA,EAAEy0B,YAAY,EAAElmB,GAAGmmB,YAAYtM,GAAG7Z,GAAGomB,aAAa/O,GAAGrX,GAAGqmB,WAAW,SAAS50B,GAAG,OAAOkkB,GAAGlI,GAAG2C,WAAW3e,GAAG,IAAIoc,SAASpc,GAAGA,EAAE,EAAEuO,GAAGsmB,WAAW3G,GAAG3f,GAAGumB,eAAe/E,GAAGxhB,GAAGwmB,QAAQxmB,GAAGA,GAAGwlB,MAAMxlB,GAAG8lB,WAAW9lB,GAAGylB,cAAczlB,GAAG2lB,SAAS3lB,GAAG0lB,YAAY1lB,GAAG4lB,QAAQ5lB,GAAGgmB,IAAIhmB,GAAG+lB,OAAO/lB,GAAGkmB,aAAalmB,GAAGimB,OAAOjmB,GAAG6lB,WAAW7lB,GAAGomB,aAAapmB,GAAGumB,eAAevmB,GAAGqmB,WAAWrmB,GAAGsmB,WAAWtmB,GAAGmmB,YAAY,IAAIM,GAAG,WAAW,SAASh1B,EAAEC,GAAG,IAAIK,EAAE,OAAOmC,EAAEvC,KAAKF,IAAIM,EAAE6B,EAAEjC,KAAKF,EAAE,CAACC,KAAKg1B,cAAc1mB,GAAG3K,OAAO,CAACykB,QAAQ,GAAGte,OAAOzJ,EAAEqW,KAAK,KAAK5M,OAAOzJ,EAAEmS,WAAWmE,QAAQ,CAACG,cAAc,UAAUhN,OAAO9J,EAAE+W,WAAW,eAAe,mBAAmB,aAAa,yBAAyB1W,EAAE20B,cAAc7F,aAAajP,SAAS+U,KAAG,SAAWl1B,GAAG,OAAOA,EAAE2b,IAAK,IAAA,SAAY3b,GAAG,GAAGA,EAAEmgB,SAAS,CAAC,IAAIlgB,EAAED,EAAEmgB,SAASxE,KAAK,GAAGxQ,EAAElL,EAAEyX,SAASzX,EAAEyX,OAAOrX,OAAO,MAAM,IAAIiF,MAAMrF,EAAEyX,OAAO,IAAI,GAAGzX,EAAEk1B,MAAM,MAAM,IAAI7vB,MAAMrF,EAAEk1B,MAAM,CAAC,MAAMn1B,CAAE,IAAGM,CAAC,CAAC,OAAOqD,EAAE3D,EAAE0W,IAAIvW,EAAEH,EAAE,CAAC,CAACoD,IAAI,aAAatC,MAAM,WAAW,IAAId,EAAEgC,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAG,OAAO9B,KAAK+0B,cAAc9F,SAASvY,QAAQyO,OAAO/gB,EAAEA,EAAE,CAAA,EAAGpE,KAAK+0B,cAAc9F,SAASvY,QAAQyO,QAAQrlB,GAAGE,IAAI,GAAG,CAACkD,IAAI,UAAUtC,MAAM,SAASd,EAAEC,GAAG,IAAIK,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK+0B,cAAcrd,QAAQtT,EAAE,CAACiB,OAAOvF,EAAEsX,IAAIrX,GAAGK,GAAG,GAAG,CAAC8C,IAAI,MAAMtC,MAAM,SAASd,GAAG,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK0X,QAAQ,MAAM5X,EAAEsE,EAAE,CAACklB,OAAOvpB,GAAGK,GAAG,GAAG,CAAC8C,IAAI,OAAOtC,MAAM,SAASd,GAAG,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK0X,QAAQ,OAAO5X,EAAEsE,EAAE,CAACqX,KAAK1b,GAAGK,GAAG,GAAG,CAAC8C,IAAI,MAAMtC,MAAM,SAASd,GAAG,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,GAAG1B,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK0X,QAAQ,MAAM5X,EAAEsE,EAAE,CAACqX,KAAK1b,GAAGK,GAAG,GAAG,CAAC8C,IAAI,SAAStC,MAAM,SAASd,GAAG,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK0X,QAAQ,SAAS5X,EAAEC,EAAE,GAAG,CAACmD,IAAI,QAAQtC,MAAM,SAASd,GAAG,IAAIC,EAAE+B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG1B,EAAE0B,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,OAAO9B,KAAK0X,QAAQ,QAAQ5X,EAAEsE,EAAE,CAACqX,KAAK1b,GAAGK,GAAG,IAAI,CAA1xD,GAA8xDwK,EAAE,UAAU,cAAckqB,IAAI,IAAII,GAAG,WAAW,SAASp1B,IAAI,OAAOyC,EAAEvC,KAAKF,GAAGmC,EAAEjC,KAAKF,EAAEgC,UAAU,CAAC,OAAO2B,EAAE3D,EAAE0W,IAAIvW,EAAEH,EAAE,CAAhF,GAAoF8K,EAAE,UAAU,iBAAiBsqB,eAAsB,SAASp1B,EAAEC,GAAG,IAAIK,EAAEC,EAAEI,EAAES,EAAEY,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAGT,EAAES,UAAU3B,OAAO,QAAG,IAAS2B,UAAU,IAAIA,UAAU,GAAG,GAAGS,EAAEvC,KAAKF,GAAGE,KAAKwQ,QAAQ,QAAQpQ,EAAEc,EAAEsP,eAAU,IAASpQ,EAAEA,EAAE,KAAKJ,KAAKuQ,QAAQ,CAACC,QAAQxQ,KAAKwQ,QAAQiG,KAAK,QAAQpW,EAAEa,EAAEuV,YAAO,IAASpW,EAAEA,EAAE,2BAA2BkS,UAAU,QAAQ9R,EAAES,EAAEqR,iBAAY,IAAS9R,EAAEA,EAAET,KAAKwQ,QAAQ2kB,MAAM9zB,EAAEyV,UAAU/W,GAAG,iBAAiBA,GAAG,IAAIA,EAAEI,OAAO,MAAM,IAAIiF,MAAM,gDAAgD,IAAI0H,MAAM/M,EAAEyI,cAAc4sB,WAAW,KAAK,MAAM,IAAIhwB,MAAM,iFAAiFpF,KAAK0Q,QAAQxP,EAAEwP,SAASpD,GAAGtN,KAAKuQ,SAASvQ,KAAKq1B,OAAO,IAAI/iB,GAAG,QAAQtS,KAAK0Q,SAASb,cAAckD,IAAI/S,KAAK8T,SAAS,IAAIxB,GAAG,SAAStS,KAAK0Q,SAAS1Q,KAAKs1B,OAAO,IAAIhjB,GAAG,QAAQtS,KAAK0Q,SAAS1Q,KAAKu1B,QAAQ,IAAIjjB,GAAG,SAAStS,KAAK0Q,SAASb,cAAcuF,IAAIpV,KAAKw1B,SAAS,IAAIljB,GAAG,UAAUtS,KAAK0Q,SAAS1Q,KAAKy1B,QAAQ,IAAInjB,GAAG,SAAStS,KAAK0Q,SAAS1Q,KAAK01B,SAAS,IAAIpjB,GAAG,UAAUtS,KAAK0Q,SAAS1Q,KAAK21B,aAAa,IAAIrjB,GAAG,eAAetS,KAAK0Q,SAAS1Q,KAAK41B,MAAM,IAAItjB,GAAG,OAAOtS,KAAK0Q,SAAS1Q,KAAK61B,OAAO,IAAIvjB,GAAG,QAAQtS,KAAK0Q,SAAS1Q,KAAK81B,cAAc,IAAIxjB,GAAG,eAAetS,KAAK0Q,SAASb,cAAcmF,GAAG,CAAQ/U,EAAEH,EAAE,CAAC,CAACoD,IAAI,aAAatC,MAAM,SAASd,GAAGE,KAAK0Q,QAAQ5Q,CAAC,GAAG,CAACoD,IAAI,aAAatC,MAAM,WAAW,OAAOZ,KAAK0Q,OAAO,IAAI,CAAC,CAACxN,IAAI,cAActC,MAAM,WAAW,OAAO4B,EAAE1C,EAAEQ,MAAMsB,UAAUsF,MAAM9F,KAAKU,WAAW,IAAI,ICIx5vG,MAAOi0B,WAAqCC,GACtD,WAAA1zB,CAAYgO,EAAkBI,EAAkBH,EAAsB,CAAA,GAClE0lB,MAAM3lB,EAAUI,EAASH,EAC7B,CAEA,aAAAV,CAAclF,EAA2C,IACrD,OAAOurB,GAAmBl2B,KAAM2K,EACpC,CAEA,SAAA2E,CAAUyH,GACN,OAAO/L,EAAU,WAAYmrB,EAASn2B,KAAKsQ,UAAWyG,EAAM/W,KAAK0Q,QACrE,ECfE,SAAU0lB,GAAeC,EAAS,EAAGC,EAAW,MAAOC,EAA+D,UACxH,OAAO,IAAIC,KAAKC,aAAa,QAAS,CAClCC,MAAO,WACPJ,WACAC,oBACDI,OAAON,EACd,CCNM,SAAUO,GAAQC,GACpB,MAAMC,EAAOD,QACb,GAAIC,EACA,OAAOA,EAGX,MAAMC,SAAoBF,EAE1B,MAAmB,iBAARA,GAAgE,iBAApCA,EAA2BhqB,MACrDgqB,EAAyBhqB,MAGlB,iBAARgqB,GAAmC,iBAARA,IAAqE,iBAAxCA,EAA6B12B,QAAsC,aAAf42B,IAC3GF,EAA2B12B,MAI5C,CCdc,MAAO62B,WAA2BC,GAS5C,UAAAxmB,CAAWC,GAOP,OANA1Q,KAAK0Q,QAAUA,EACf1Q,KAAK2Q,MAAQ,IAAIolB,GAAgB/1B,KAAKsQ,SAAUI,EAAS,CACrDG,aAAc7Q,KAAK8Q,eAAepO,KAAK1C,MACvC2K,QAAS3K,KAAKuQ,SAAS5F,UAGpB3K,IACX,EAGJk3B,EAAS,WAAY,qBAAsBF,IClBpC,MAAMG,GAAgB,IAAIC,GAAa,CAC1CC,MAAO,SAAiCC,EAA6B/mB,EAA0B,IAC3F,MAAM+Y,EAAqB,CAAA,EAM3B,OAJIgO,IACAhO,EAAO3Y,MAAQ2mB,GAGZt3B,KAAK0Q,QAAQxI,IAAI,GAAGlI,KAAKuS,kBAAmB+W,EAAQ/Y,EAC/D,IAGU,MAAOgnB,WAAeN,GAChC,WAAA30B,CAAYqL,EAAyB,CAAA,EAAI+C,EAAmBH,EAAsB,CAAA,GAC9E0lB,MAAMtoB,EAAY+C,EAAS,SAAUH,EACzC,CAEA,QAAAinB,GACI,OAAOx3B,KAAKy3B,WAChB,CAEA,SAAAA,GACI,OAAQz3B,KAAK+Q,aAAa,WAAa,EAC3C,CAEA,SAAA2mB,GACI,OAAO13B,KAAKw3B,WAAWtzB,QAAQyzB,GAA6C,iBAAhBA,GAAO9yB,MAAqB8yB,EAAM9yB,KAAKuwB,WAAW,WAClH,EAGJ8B,EAAS,WAAY,SAAUK,ICyCxB,MAAMK,GAAqB,OA2IrBC,GAAsBh3B,OAAOi3B,IAAI,qBClLvC,SAASC,GAAcC,EAAMp3B,GAClC,MAAoB,mBAATo3B,EAA4BA,EAAKp3B,GAExCo3B,GAAwB,iBAATA,GAAqBH,MAAuBG,EACtDA,EAAKH,IAAqBj3B,GAE/Bo3B,aAAgBrmB,KAAa,IAAIqmB,EAAK11B,YAAY1B,GAE/C,IAAI+Q,KAAK/Q,EAClB,CCNO,SAASq3B,GAAOC,EAAUC,GAE/B,OAAOJ,GAAcI,GAAWD,EAAUA,EAC5C,CCKO,SAASE,GAAQJ,EAAM3B,EAAQ9lB,GACpC,MAAM8nB,EAAQJ,GAAOD,EAAMznB,GAAS+nB,IACpC,OAAIjyB,MAAMgwB,GAAgB0B,GAAcxnB,GAAS+nB,IAAMN,EAAMO,KAGxDlC,GAELgC,EAAMG,QAAQH,EAAMI,UAAYpC,GACzBgC,GAHaA,CAItB,CCzDA,IAAIK,GAAiB,CAAA,EAEd,SAASC,KACd,OAAOD,EACT,CC8BO,SAASE,GAAYZ,EAAMznB,GAChC,MAAMmoB,EAAiBC,KACjBE,EACJtoB,GAASsoB,cACTtoB,GAASuoB,QAAQvoB,SAASsoB,cAC1BH,EAAeG,cACfH,EAAeI,QAAQvoB,SAASsoB,cAChC,EAEIR,EAAQJ,GAAOD,EAAMznB,GAAS+nB,IAC9BS,EAAMV,EAAMW,SACZC,GAAQF,EAAMF,EAAe,EAAI,GAAKE,EAAMF,EAIlD,OAFAR,EAAMG,QAAQH,EAAMI,UAAYQ,GAChCZ,EAAMa,SAAS,EAAG,EAAG,EAAG,GACjBb,CACT,CCpBO,SAASc,GAAenB,EAAMznB,GACnC,OAAOqoB,GAAYZ,EAAM,IAAKznB,EAASsoB,aAAc,GACvD,CCJO,SAASO,GAAepB,EAAMznB,GACnC,MAAM8nB,EAAQJ,GAAOD,EAAMznB,GAAS+nB,IAC9Be,EAAOhB,EAAMiB,cAEbC,EAA4BxB,GAAcM,EAAO,GACvDkB,EAA0BC,YAAYH,EAAO,EAAG,EAAG,GACnDE,EAA0BL,SAAS,EAAG,EAAG,EAAG,GAC5C,MAAMO,EAAkBN,GAAeI,GAEjCG,EAA4B3B,GAAcM,EAAO,GACvDqB,EAA0BF,YAAYH,EAAM,EAAG,GAC/CK,EAA0BR,SAAS,EAAG,EAAG,EAAG,GAC5C,MAAMS,EAAkBR,GAAeO,GAEvC,OAAIrB,EAAMuB,WAAaH,EAAgBG,UAC9BP,EAAO,EACLhB,EAAMuB,WAAaD,EAAgBC,UACrCP,EAEAA,EAAO,CAElB,CCpCO,SAASQ,GAAgC7B,GAC9C,MAAMK,EAAQJ,GAAOD,GACf8B,EAAU,IAAInoB,KAClBA,KAAKooB,IACH1B,EAAMiB,cACNjB,EAAM2B,WACN3B,EAAMI,UACNJ,EAAM4B,WACN5B,EAAM6B,aACN7B,EAAM8B,aACN9B,EAAM+B,oBAIV,OADAN,EAAQO,eAAehC,EAAMiB,gBACrBtB,GAAQ8B,CAClB,CCAO,SAASQ,GAAWtC,EAAMznB,GAC/B,MAAM8nB,EAAQJ,GAAOD,EAAMznB,GAAS+nB,IAEpC,OADAD,EAAMa,SAAS,EAAG,EAAG,EAAG,GACjBb,CACT,CCQO,SAASkC,GAAyBC,EAAWC,EAAalqB,GAC/D,MAAOmqB,EAAYC,GCvCd,SAAwBxC,KAAYyC,GACzC,MAAM/U,EAAYkS,GAAcr1B,KAC9B,KACWk4B,EAAMC,MAAM7C,GAAyB,iBAATA,KAEzC,OAAO4C,EAAM7uB,IAAI8Z,EACnB,CDiCqCiV,CACjCvqB,EACAiqB,EACAC,GAGIM,EAAkBT,GAAWI,GAC7BM,EAAoBV,GAAWK,GAE/BM,GACHF,EAAkBlB,GAAgCkB,GAC/CG,GACHF,EAAoBnB,GAAgCmB,GAKvD,OAAO3f,KAAKmL,OAAOyU,EAAiBC,GVyBL,MUxBjC,CEzBO,SAASC,GAAQnD,GACtB,WCHqBp3B,EDGHo3B,aCDCrmB,MACC,iBAAV/Q,GACoC,kBAA1CW,OAAOK,UAAU+F,SAASvG,KAAKR,KDDQ,iBAATo3B,GAAsB3xB,OAAO4xB,GAAOD,KCHjE,IAAgBp3B,CDIvB,CEpCA,MAAMw6B,GAAuB,CAC3BC,iBAAkB,CAChBC,IAAK,qBACLC,MAAO,+BAGTC,SAAU,CACRF,IAAK,WACLC,MAAO,qBAGTE,YAAa,gBAEbC,iBAAkB,CAChBJ,IAAK,qBACLC,MAAO,+BAGTI,SAAU,CACRL,IAAK,WACLC,MAAO,qBAGTK,YAAa,CACXN,IAAK,eACLC,MAAO,yBAGTM,OAAQ,CACNP,IAAK,SACLC,MAAO,mBAGTO,MAAO,CACLR,IAAK,QACLC,MAAO,kBAGTQ,YAAa,CACXT,IAAK,eACLC,MAAO,yBAGTS,OAAQ,CACNV,IAAK,SACLC,MAAO,mBAGTU,aAAc,CACZX,IAAK,gBACLC,MAAO,0BAGTW,QAAS,CACPZ,IAAK,UACLC,MAAO,oBAGTY,YAAa,CACXb,IAAK,eACLC,MAAO,yBAGTa,OAAQ,CACNd,IAAK,SACLC,MAAO,mBAGTc,WAAY,CACVf,IAAK,cACLC,MAAO,wBAGTe,aAAc,CACZhB,IAAK,gBACLC,MAAO,2BC3EJ,SAASgB,GAAkBC,GAChC,MAAO,CAACjsB,EAAU,MAEhB,MAAMksB,EAAQlsB,EAAQksB,MAAQ/0B,OAAO6I,EAAQksB,OAASD,EAAKE,aAE3D,OADeF,EAAKG,QAAQF,IAAUD,EAAKG,QAAQH,EAAKE,aAC3C,CAEjB,CCLA,MAqBaE,GAAa,CACxB5E,KAAMuE,GAAkB,CACtBI,QAvBgB,CAClBE,KAAM,mBACNC,KAAM,aACNC,OAAQ,WACRC,MAAO,cAoBLN,aAAc,SAGhBO,KAAMV,GAAkB,CACtBI,QArBgB,CAClBE,KAAM,iBACNC,KAAM,cACNC,OAAQ,YACRC,MAAO,UAkBLN,aAAc,SAGhBQ,SAAUX,GAAkB,CAC1BI,QAnBoB,CACtBE,KAAM,yBACNC,KAAM,yBACNC,OAAQ,qBACRC,MAAO,sBAgBLN,aAAc,UCpCZS,GAAuB,CAC3BC,SAAU,qBACVC,UAAW,mBACXC,MAAO,eACPC,SAAU,kBACVC,SAAU,cACVjC,MAAO,KCiCF,SAASkC,GAAgBjB,GAC9B,MAAO,CAAC57B,EAAO2P,KAGb,IAAImtB,EACJ,GAAgB,gBAHAntB,GAAS4nB,QAAUzwB,OAAO6I,EAAQ4nB,SAAW,eAG7BqE,EAAKmB,iBAAkB,CACrD,MAAMjB,EAAeF,EAAKoB,wBAA0BpB,EAAKE,aACnDD,EAAQlsB,GAASksB,MAAQ/0B,OAAO6I,EAAQksB,OAASC,EAEvDgB,EACElB,EAAKmB,iBAAiBlB,IAAUD,EAAKmB,iBAAiBjB,EAC1D,KAAO,CACL,MAAMA,EAAeF,EAAKE,aACpBD,EAAQlsB,GAASksB,MAAQ/0B,OAAO6I,EAAQksB,OAASD,EAAKE,aAE5DgB,EAAclB,EAAKz1B,OAAO01B,IAAUD,EAAKz1B,OAAO21B,EAClD,CAIA,OAAOgB,EAHOlB,EAAKqB,iBAAmBrB,EAAKqB,iBAAiBj9B,GAASA,EAG5C,CAE7B,CC7DO,SAASk9B,GAAatB,GAC3B,MAAO,CAACuB,EAAQxtB,EAAU,MACxB,MAAMksB,EAAQlsB,EAAQksB,MAEhBuB,EACHvB,GAASD,EAAKyB,cAAcxB,IAC7BD,EAAKyB,cAAczB,EAAK0B,mBACpBC,EAAcJ,EAAOt1B,MAAMu1B,GAEjC,IAAKG,EACH,OAAO,KAET,MAAMC,EAAgBD,EAAY,GAE5BE,EACH5B,GAASD,EAAK6B,cAAc5B,IAC7BD,EAAK6B,cAAc7B,EAAK8B,mBAEpBp7B,EAAM5C,MAAMC,QAAQ89B,GA+B9B,SAAmBE,EAAOC,GACxB,IAAK,IAAIt7B,EAAM,EAAGA,EAAMq7B,EAAMp+B,OAAQ+C,IACpC,GAAIs7B,EAAUD,EAAMr7B,IAClB,OAAOA,EAGX,MACF,CArCQu7B,CAAUJ,GAAgBK,GAAYA,EAAQ92B,KAAKw2B,KAkB3D,SAAiBO,EAAQH,GACvB,IAAK,MAAMt7B,KAAOy7B,EAChB,GACEp9B,OAAOK,UAAU6C,eAAerD,KAAKu9B,EAAQz7B,IAC7Cs7B,EAAUG,EAAOz7B,IAEjB,OAAOA,EAGX,MACF,CA1BQic,CAAQkf,GAAgBK,GAAYA,EAAQ92B,KAAKw2B,KAErD,IAAIx9B,EAEJA,EAAQ47B,EAAKoC,cAAgBpC,EAAKoC,cAAc17B,GAAOA,EACvDtC,EAAQ2P,EAAQquB,cAEZruB,EAAQquB,cAAch+B,GACtBA,EAIJ,MAAO,CAAEA,QAAOi+B,KAFHd,EAAO72B,MAAMk3B,EAAcj+B,QAElB,CAE1B,CCnCO,IAA6Bq8B,GCc7B,MAAMsC,GAAO,CAClBrpB,KAAM,QACNspB,eP+D4B,CAACnP,EAAOyH,EAAO9mB,KAC3C,IAAIyuB,EAEJ,MAAMC,EAAa7D,GAAqBxL,GASxC,OAPEoP,EADwB,iBAAfC,EACAA,EACU,IAAV5H,EACA4H,EAAW3D,IAEX2D,EAAW1D,MAAM7yB,QAAQ,YAAa2uB,EAAM1vB,YAGnD4I,GAAS2uB,UACP3uB,EAAQ4uB,YAAc5uB,EAAQ4uB,WAAa,EACtC,MAAQH,EAERA,EAAS,OAIbA,CAAM,EOlFbpC,WAAYA,GACZwC,eJT4B,CAACxP,EAAOyI,EAAOgH,EAAWC,IACtDnC,GAAqBvN,GISrB2P,SCyIsB,CACtBC,cAzBoB,CAACC,EAAaH,KAClC,MAAMlf,EAASnB,OAAOwgB,GAShBC,EAAStf,EAAS,IACxB,GAAIsf,EAAS,IAAMA,EAAS,GAC1B,OAAQA,EAAS,IACf,KAAK,EACH,OAAOtf,EAAS,KAClB,KAAK,EACH,OAAOA,EAAS,KAClB,KAAK,EACH,OAAOA,EAAS,KAGtB,OAAOA,EAAS,IAAI,EAMpBuf,IAAKlC,GAAgB,CACnB12B,OA9Jc,CAChB64B,OAAQ,CAAC,IAAK,KACdC,YAAa,CAAC,KAAM,MACpBC,KAAM,CAAC,gBAAiB,gBA4JtBpD,aAAc,SAGhBqD,QAAStC,GAAgB,CACvB12B,OA7JkB,CACpB64B,OAAQ,CAAC,IAAK,IAAK,IAAK,KACxBC,YAAa,CAAC,KAAM,KAAM,KAAM,MAChCC,KAAM,CAAC,cAAe,cAAe,cAAe,gBA2JlDpD,aAAc,OACdmB,iBAAmBkC,GAAYA,EAAU,IAG3CC,MAAOvC,GAAgB,CACrB12B,OAzJgB,CAClB64B,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChEC,YAAa,CACX,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAGFC,KAAM,CACJ,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,aA6HApD,aAAc,SAGhB3D,IAAK0E,GAAgB,CACnB12B,OA7Hc,CAChB64B,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACvC5C,MAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAC5C6C,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACxDC,KAAM,CACJ,SACA,SACA,UACA,YACA,WACA,SACA,aAmHApD,aAAc,SAGhBuD,UAAWxC,GAAgB,CACzB12B,OAnHoB,CACtB64B,OAAQ,CACNM,GAAI,IACJC,GAAI,IACJC,SAAU,KACVC,KAAM,IACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,SAETZ,YAAa,CACXK,GAAI,KACJC,GAAI,KACJC,SAAU,WACVC,KAAM,OACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,SAETX,KAAM,CACJI,GAAI,OACJC,GAAI,OACJC,SAAU,WACVC,KAAM,OACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,UAuFP/D,aAAc,OACdiB,iBApF8B,CAChCiC,OAAQ,CACNM,GAAI,IACJC,GAAI,IACJC,SAAU,KACVC,KAAM,IACNC,QAAS,iBACTC,UAAW,mBACXC,QAAS,iBACTC,MAAO,YAETZ,YAAa,CACXK,GAAI,KACJC,GAAI,KACJC,SAAU,WACVC,KAAM,OACNC,QAAS,iBACTC,UAAW,mBACXC,QAAS,iBACTC,MAAO,YAETX,KAAM,CACJI,GAAI,OACJC,GAAI,OACJC,SAAU,WACVC,KAAM,OACNC,QAAS,iBACTC,UAAW,mBACXC,QAAS,iBACTC,MAAO,aAwDP7C,uBAAwB,UDpK1Bn1B,MEqEmB,CACnB+2B,eH1FkChD,GG0FC,CACjCwB,aAxF8B,wBAyF9B0C,aAxF8B,OAyF9B9B,cAAgBh+B,GAAUqJ,SAASrJ,EAAO,KH5FrC,CAACm9B,EAAQxtB,EAAU,MACxB,MAAM4tB,EAAcJ,EAAOt1B,MAAM+zB,GAAKwB,cACtC,IAAKG,EAAa,OAAO,KACzB,MAAMC,EAAgBD,EAAY,GAE5BwC,EAAc5C,EAAOt1B,MAAM+zB,GAAKkE,cACtC,IAAKC,EAAa,OAAO,KACzB,IAAI//B,EAAQ47B,GAAKoC,cACbpC,GAAKoC,cAAc+B,EAAY,IAC/BA,EAAY,GAOhB,OAJA//B,EAAQ2P,EAAQquB,cAAgBruB,EAAQquB,cAAch+B,GAASA,EAIxD,CAAEA,QAAOi+B,KAFHd,EAAO72B,MAAMk3B,EAAcj+B,QAElB,GG+ExBw/B,IAAK7B,GAAa,CAChBG,cA3FqB,CACvB2B,OAAQ,UACRC,YAAa,6DACbC,KAAM,8DAyFJ5B,kBAAmB,OACnBG,cAxFqB,CACvBuC,IAAK,CAAC,MAAO,YAwFXtC,kBAAmB,QAGrByB,QAASjC,GAAa,CACpBG,cAzFyB,CAC3B2B,OAAQ,WACRC,YAAa,YACbC,KAAM,kCAuFJ5B,kBAAmB,OACnBG,cAtFyB,CAC3BuC,IAAK,CAAC,KAAM,KAAM,KAAM,OAsFtBtC,kBAAmB,MACnBM,cAAgBiC,GAAUA,EAAQ,IAGpCb,MAAOlC,GAAa,CAClBG,cAxFuB,CACzB2B,OAAQ,eACRC,YAAa,sDACbC,KAAM,6FAsFJ5B,kBAAmB,OACnBG,cArFuB,CACzBuB,OAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAGFgB,IAAK,CACH,OACA,MACA,QACA,OACA,QACA,QACA,QACA,OACA,MACA,MACA,MACA,QA0DAtC,kBAAmB,QAGrBvF,IAAK+E,GAAa,CAChBG,cA1DqB,CACvB2B,OAAQ,YACR5C,MAAO,2BACP6C,YAAa,kCACbC,KAAM,gEAuDJ5B,kBAAmB,OACnBG,cAtDqB,CACvBuB,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACnDgB,IAAK,CAAC,OAAQ,MAAO,OAAQ,MAAO,OAAQ,MAAO,SAqDjDtC,kBAAmB,QAGrB2B,UAAWnC,GAAa,CACtBG,cAtD2B,CAC7B2B,OAAQ,6DACRgB,IAAK,kFAqDH1C,kBAAmB,MACnBG,cApD2B,CAC7BuC,IAAK,CACHV,GAAI,MACJC,GAAI,MACJC,SAAU,OACVC,KAAM,OACNC,QAAS,WACTC,UAAW,aACXC,QAAS,WACTC,MAAO,WA4CPnC,kBAAmB,SF5GrB/tB,QAAS,CACPsoB,aAAc,EACdiI,sBAAuB,IGGpB,SAASC,GAAa/I,EAAMznB,GACjC,MAAM8nB,EAAQJ,GAAOD,EAAMznB,GAAS+nB,IAC9BW,EAAOsB,GAAyBlC,ECAjC,SAAqBL,EAAMznB,GAChC,MAAMywB,EAAQ/I,GAAOD,EAAMznB,GAAS+nB,IAGpC,OAFA0I,EAAMxH,YAAYwH,EAAM1H,cAAe,EAAG,GAC1C0H,EAAM9H,SAAS,EAAG,EAAG,EAAG,GACjB8H,CACT,CDL+CC,CAAY5I,IAEzD,OADkBY,EAAO,CAE3B,CEFO,SAASiI,GAAWlJ,EAAMznB,GAC/B,MAAM8nB,EAAQJ,GAAOD,EAAMznB,GAAS+nB,IAC9BW,GAAQE,GAAed,ICExB,SAA4BL,EAAMznB,GACvC,MAAM8oB,EAAOD,GAAepB,EAAMznB,GAC5B4wB,EAAkBpJ,GAA6BC,EAAM,GAG3D,OAFAmJ,EAAgB3H,YAAYH,EAAM,EAAG,GACrC8H,EAAgBjI,SAAS,EAAG,EAAG,EAAG,GAC3BC,GAAegI,EACxB,CDRyCC,CAAmB/I,GAK1D,OAAOhd,KAAKmL,MAAMyS,EAAOrB,IAAsB,CACjD,CEMO,SAASyJ,GAAYrJ,EAAMznB,GAChC,MAAM8nB,EAAQJ,GAAOD,EAAMznB,GAAS+nB,IAC9Be,EAAOhB,EAAMiB,cAEbZ,EAAiBC,KACjBmI,EACJvwB,GAASuwB,uBACTvwB,GAASuoB,QAAQvoB,SAASuwB,uBAC1BpI,EAAeoI,uBACfpI,EAAeI,QAAQvoB,SAASuwB,uBAChC,EAEIQ,EAAsBvJ,GAAcxnB,GAAS+nB,IAAMN,EAAM,GAC/DsJ,EAAoB9H,YAAYH,EAAO,EAAG,EAAGyH,GAC7CQ,EAAoBpI,SAAS,EAAG,EAAG,EAAG,GACtC,MAAMO,EAAkBb,GAAY0I,EAAqB/wB,GAEnDgxB,EAAsBxJ,GAAcxnB,GAAS+nB,IAAMN,EAAM,GAC/DuJ,EAAoB/H,YAAYH,EAAM,EAAGyH,GACzCS,EAAoBrI,SAAS,EAAG,EAAG,EAAG,GACtC,MAAMS,EAAkBf,GAAY2I,EAAqBhxB,GAEzD,OAAK8nB,IAAUoB,EACNJ,EAAO,GACJhB,IAAUsB,EACbN,EAEAA,EAAO,CAElB,CC7BO,SAASmI,GAAQxJ,EAAMznB,GAC5B,MAAM8nB,EAAQJ,GAAOD,EAAMznB,GAAS+nB,IAC9BW,GAAQL,GAAYP,EAAO9nB,ICC5B,SAAyBynB,EAAMznB,GACpC,MAAMmoB,EAAiBC,KACjBmI,EACJvwB,GAASuwB,uBACTvwB,GAASuoB,QAAQvoB,SAASuwB,uBAC1BpI,EAAeoI,uBACfpI,EAAeI,QAAQvoB,SAASuwB,uBAChC,EAEIzH,EAAOgI,GAAYrJ,EAAMznB,GACzBkxB,EAAY1J,GAAcxnB,GAAS+nB,IAAMN,EAAM,GAIrD,OAHAyJ,EAAUjI,YAAYH,EAAM,EAAGyH,GAC/BW,EAAUvI,SAAS,EAAG,EAAG,EAAG,GACdN,GAAY6I,EAAWlxB,EAEvC,CDhB+CmxB,CAAgBrJ,EAAO9nB,GAKpE,OAAO8K,KAAKmL,MAAMyS,EAAOrB,IAAsB,CACjD,CEnDO,SAAS+J,GAAgBvhB,EAAQwhB,GAGtC,OAFaxhB,EAAS,EAAI,IAAM,IACjB/E,KAAKwmB,IAAIzhB,GAAQzY,WAAWm6B,SAASF,EAAc,IAEpE,CCWO,MAAMG,GAAkB,CAE7B,CAAA7/B,CAAE81B,EAAMpI,GAUN,MAAMoS,EAAahK,EAAKsB,cAElBD,EAAO2I,EAAa,EAAIA,EAAa,EAAIA,EAC/C,OAAOL,GAA0B,OAAV/R,EAAiByJ,EAAO,IAAMA,EAAMzJ,EAAMzvB,OACnE,EAGA,CAAAyQ,CAAEonB,EAAMpI,GACN,MAAMoQ,EAAQhI,EAAKgC,WACnB,MAAiB,MAAVpK,EAAgBloB,OAAOs4B,EAAQ,GAAK2B,GAAgB3B,EAAQ,EAAG,EACxE,EAGAp9B,EAAC,CAACo1B,EAAMpI,IACC+R,GAAgB3J,EAAKS,UAAW7I,EAAMzvB,QAI/C,CAAAkB,CAAE22B,EAAMpI,GACN,MAAMqS,EAAqBjK,EAAKiC,WAAa,IAAM,EAAI,KAAO,KAE9D,OAAQrK,GACN,IAAK,IACL,IAAK,KACH,OAAOqS,EAAmBj5B,cAC5B,IAAK,MACH,OAAOi5B,EACT,IAAK,QACH,OAAOA,EAAmB,GAE5B,QACE,MAA8B,OAAvBA,EAA8B,OAAS,OAEpD,EAGA1/B,EAAC,CAACy1B,EAAMpI,IACC+R,GAAgB3J,EAAKiC,WAAa,IAAM,GAAIrK,EAAMzvB,QAI3D+hC,EAAC,CAAClK,EAAMpI,IACC+R,GAAgB3J,EAAKiC,WAAYrK,EAAMzvB,QAIhDgC,EAAC,CAAC61B,EAAMpI,IACC+R,GAAgB3J,EAAKkC,aAActK,EAAMzvB,QAIlDwB,EAAC,CAACq2B,EAAMpI,IACC+R,GAAgB3J,EAAKmC,aAAcvK,EAAMzvB,QAIlD,CAAAyE,CAAEozB,EAAMpI,GACN,MAAMuS,EAAiBvS,EAAMzvB,OACvBiiC,EAAepK,EAAKoC,kBAI1B,OAAOuH,GAHmBtmB,KAAKgnB,MAC7BD,EAAe/mB,KAAKinB,IAAI,GAAIH,EAAiB,IAELvS,EAAMzvB,OAClD,GCjFIoiC,GAGM,WAHNA,GAIE,OAJFA,GAKK,UALLA,GAMO,YANPA,GAOK,UAPLA,GAQG,QAiDIC,GAAa,CAExBz3B,EAAG,SAAUitB,EAAMpI,EAAO2P,GACxB,MAAMI,EAAM3H,EAAKsB,cAAgB,EAAI,EAAI,EACzC,OAAQ1J,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO2P,EAASI,IAAIA,EAAK,CAAElD,MAAO,gBAEpC,IAAK,QACH,OAAO8C,EAASI,IAAIA,EAAK,CAAElD,MAAO,WAGpC,QACE,OAAO8C,EAASI,IAAIA,EAAK,CAAElD,MAAO,SAExC,EAGAv6B,EAAG,SAAU81B,EAAMpI,EAAO2P,GAExB,GAAc,OAAV3P,EAAgB,CAClB,MAAMoS,EAAahK,EAAKsB,cAElBD,EAAO2I,EAAa,EAAIA,EAAa,EAAIA,EAC/C,OAAOzC,EAASC,cAAcnG,EAAM,CAAEoJ,KAAM,QAC9C,CAEA,OAAOV,GAAgB7/B,EAAE81B,EAAMpI,EACjC,EAGAtkB,EAAG,SAAU0sB,EAAMpI,EAAO2P,EAAUhvB,GAClC,MAAMmyB,EAAiBrB,GAAYrJ,EAAMznB,GAEnCoyB,EAAWD,EAAiB,EAAIA,EAAiB,EAAIA,EAG3D,GAAc,OAAV9S,EAAgB,CAElB,OAAO+R,GADcgB,EAAW,IACK,EACvC,CAGA,MAAc,OAAV/S,EACK2P,EAASC,cAAcmD,EAAU,CAAEF,KAAM,SAI3Cd,GAAgBgB,EAAU/S,EAAMzvB,OACzC,EAGA+E,EAAG,SAAU8yB,EAAMpI,GAIjB,OAAO+R,GAHavI,GAAepB,GAGCpI,EAAMzvB,OAC5C,EAWA4B,EAAG,SAAUi2B,EAAMpI,GAEjB,OAAO+R,GADM3J,EAAKsB,cACW1J,EAAMzvB,OACrC,EAGAgL,EAAG,SAAU6sB,EAAMpI,EAAO2P,GACxB,MAAMQ,EAAU1kB,KAAKunB,MAAM5K,EAAKgC,WAAa,GAAK,GAClD,OAAQpK,GAEN,IAAK,IACH,OAAOloB,OAAOq4B,GAEhB,IAAK,KACH,OAAO4B,GAAgB5B,EAAS,GAElC,IAAK,KACH,OAAOR,EAASC,cAAcO,EAAS,CAAE0C,KAAM,YAEjD,IAAK,MACH,OAAOlD,EAASQ,QAAQA,EAAS,CAC/BtD,MAAO,cACPtE,QAAS,eAGb,IAAK,QACH,OAAOoH,EAASQ,QAAQA,EAAS,CAC/BtD,MAAO,SACPtE,QAAS,eAIb,QACE,OAAOoH,EAASQ,QAAQA,EAAS,CAC/BtD,MAAO,OACPtE,QAAS,eAGjB,EAGAvtB,EAAG,SAAUotB,EAAMpI,EAAO2P,GACxB,MAAMQ,EAAU1kB,KAAKunB,MAAM5K,EAAKgC,WAAa,GAAK,GAClD,OAAQpK,GAEN,IAAK,IACH,OAAOloB,OAAOq4B,GAEhB,IAAK,KACH,OAAO4B,GAAgB5B,EAAS,GAElC,IAAK,KACH,OAAOR,EAASC,cAAcO,EAAS,CAAE0C,KAAM,YAEjD,IAAK,MACH,OAAOlD,EAASQ,QAAQA,EAAS,CAC/BtD,MAAO,cACPtE,QAAS,eAGb,IAAK,QACH,OAAOoH,EAASQ,QAAQA,EAAS,CAC/BtD,MAAO,SACPtE,QAAS,eAIb,QACE,OAAOoH,EAASQ,QAAQA,EAAS,CAC/BtD,MAAO,OACPtE,QAAS,eAGjB,EAGAvnB,EAAG,SAAUonB,EAAMpI,EAAO2P,GACxB,MAAMS,EAAQhI,EAAKgC,WACnB,OAAQpK,GACN,IAAK,IACL,IAAK,KACH,OAAOmS,GAAgBnxB,EAAEonB,EAAMpI,GAEjC,IAAK,KACH,OAAO2P,EAASC,cAAcQ,EAAQ,EAAG,CAAEyC,KAAM,UAEnD,IAAK,MACH,OAAOlD,EAASS,MAAMA,EAAO,CAC3BvD,MAAO,cACPtE,QAAS,eAGb,IAAK,QACH,OAAOoH,EAASS,MAAMA,EAAO,CAC3BvD,MAAO,SACPtE,QAAS,eAIb,QACE,OAAOoH,EAASS,MAAMA,EAAO,CAAEvD,MAAO,OAAQtE,QAAS,eAE7D,EAGAnzB,EAAG,SAAUgzB,EAAMpI,EAAO2P,GACxB,MAAMS,EAAQhI,EAAKgC,WACnB,OAAQpK,GAEN,IAAK,IACH,OAAOloB,OAAOs4B,EAAQ,GAExB,IAAK,KACH,OAAO2B,GAAgB3B,EAAQ,EAAG,GAEpC,IAAK,KACH,OAAOT,EAASC,cAAcQ,EAAQ,EAAG,CAAEyC,KAAM,UAEnD,IAAK,MACH,OAAOlD,EAASS,MAAMA,EAAO,CAC3BvD,MAAO,cACPtE,QAAS,eAGb,IAAK,QACH,OAAOoH,EAASS,MAAMA,EAAO,CAC3BvD,MAAO,SACPtE,QAAS,eAIb,QACE,OAAOoH,EAASS,MAAMA,EAAO,CAAEvD,MAAO,OAAQtE,QAAS,eAE7D,EAGAt0B,EAAG,SAAUm0B,EAAMpI,EAAO2P,EAAUhvB,GAClC,MAAMsyB,EAAOrB,GAAQxJ,EAAMznB,GAE3B,MAAc,OAAVqf,EACK2P,EAASC,cAAcqD,EAAM,CAAEJ,KAAM,SAGvCd,GAAgBkB,EAAMjT,EAAMzvB,OACrC,EAGA0K,EAAG,SAAUmtB,EAAMpI,EAAO2P,GACxB,MAAMuD,EAAU5B,GAAWlJ,GAE3B,MAAc,OAAVpI,EACK2P,EAASC,cAAcsD,EAAS,CAAEL,KAAM,SAG1Cd,GAAgBmB,EAASlT,EAAMzvB,OACxC,EAGAyC,EAAG,SAAUo1B,EAAMpI,EAAO2P,GACxB,MAAc,OAAV3P,EACK2P,EAASC,cAAcxH,EAAKS,UAAW,CAAEgK,KAAM,SAGjDV,GAAgBn/B,EAAEo1B,EAAMpI,EACjC,EAGAvlB,EAAG,SAAU2tB,EAAMpI,EAAO2P,GACxB,MAAMwD,EAAYhC,GAAa/I,GAE/B,MAAc,OAAVpI,EACK2P,EAASC,cAAcuD,EAAW,CAAEN,KAAM,cAG5Cd,GAAgBoB,EAAWnT,EAAMzvB,OAC1C,EAGA4D,EAAG,SAAUi0B,EAAMpI,EAAO2P,GACxB,MAAMyD,EAAYhL,EAAKgB,SACvB,OAAQpJ,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO2P,EAASxG,IAAIiK,EAAW,CAC7BvG,MAAO,cACPtE,QAAS,eAGb,IAAK,QACH,OAAOoH,EAASxG,IAAIiK,EAAW,CAC7BvG,MAAO,SACPtE,QAAS,eAGb,IAAK,SACH,OAAOoH,EAASxG,IAAIiK,EAAW,CAC7BvG,MAAO,QACPtE,QAAS,eAIb,QACE,OAAOoH,EAASxG,IAAIiK,EAAW,CAC7BvG,MAAO,OACPtE,QAAS,eAGjB,EAGAp4B,EAAG,SAAUi4B,EAAMpI,EAAO2P,EAAUhvB,GAClC,MAAMyyB,EAAYhL,EAAKgB,SACjBiK,GAAkBD,EAAYzyB,EAAQsoB,aAAe,GAAK,GAAK,EACrE,OAAQjJ,GAEN,IAAK,IACH,OAAOloB,OAAOu7B,GAEhB,IAAK,KACH,OAAOtB,GAAgBsB,EAAgB,GAEzC,IAAK,KACH,OAAO1D,EAASC,cAAcyD,EAAgB,CAAER,KAAM,QACxD,IAAK,MACH,OAAOlD,EAASxG,IAAIiK,EAAW,CAC7BvG,MAAO,cACPtE,QAAS,eAGb,IAAK,QACH,OAAOoH,EAASxG,IAAIiK,EAAW,CAC7BvG,MAAO,SACPtE,QAAS,eAGb,IAAK,SACH,OAAOoH,EAASxG,IAAIiK,EAAW,CAC7BvG,MAAO,QACPtE,QAAS,eAIb,QACE,OAAOoH,EAASxG,IAAIiK,EAAW,CAC7BvG,MAAO,OACPtE,QAAS,eAGjB,EAGAn2B,EAAG,SAAUg2B,EAAMpI,EAAO2P,EAAUhvB,GAClC,MAAMyyB,EAAYhL,EAAKgB,SACjBiK,GAAkBD,EAAYzyB,EAAQsoB,aAAe,GAAK,GAAK,EACrE,OAAQjJ,GAEN,IAAK,IACH,OAAOloB,OAAOu7B,GAEhB,IAAK,KACH,OAAOtB,GAAgBsB,EAAgBrT,EAAMzvB,QAE/C,IAAK,KACH,OAAOo/B,EAASC,cAAcyD,EAAgB,CAAER,KAAM,QACxD,IAAK,MACH,OAAOlD,EAASxG,IAAIiK,EAAW,CAC7BvG,MAAO,cACPtE,QAAS,eAGb,IAAK,QACH,OAAOoH,EAASxG,IAAIiK,EAAW,CAC7BvG,MAAO,SACPtE,QAAS,eAGb,IAAK,SACH,OAAOoH,EAASxG,IAAIiK,EAAW,CAC7BvG,MAAO,QACPtE,QAAS,eAIb,QACE,OAAOoH,EAASxG,IAAIiK,EAAW,CAC7BvG,MAAO,OACPtE,QAAS,eAGjB,EAGA13B,EAAG,SAAUu3B,EAAMpI,EAAO2P,GACxB,MAAMyD,EAAYhL,EAAKgB,SACjBkK,EAA6B,IAAdF,EAAkB,EAAIA,EAC3C,OAAQpT,GAEN,IAAK,IACH,OAAOloB,OAAOw7B,GAEhB,IAAK,KACH,OAAOvB,GAAgBuB,EAActT,EAAMzvB,QAE7C,IAAK,KACH,OAAOo/B,EAASC,cAAc0D,EAAc,CAAET,KAAM,QAEtD,IAAK,MACH,OAAOlD,EAASxG,IAAIiK,EAAW,CAC7BvG,MAAO,cACPtE,QAAS,eAGb,IAAK,QACH,OAAOoH,EAASxG,IAAIiK,EAAW,CAC7BvG,MAAO,SACPtE,QAAS,eAGb,IAAK,SACH,OAAOoH,EAASxG,IAAIiK,EAAW,CAC7BvG,MAAO,QACPtE,QAAS,eAIb,QACE,OAAOoH,EAASxG,IAAIiK,EAAW,CAC7BvG,MAAO,OACPtE,QAAS,eAGjB,EAGA92B,EAAG,SAAU22B,EAAMpI,EAAO2P,GACxB,MACM0C,EADQjK,EAAKiC,WACgB,IAAM,EAAI,KAAO,KAEpD,OAAQrK,GACN,IAAK,IACL,IAAK,KACH,OAAO2P,EAASU,UAAUgC,EAAoB,CAC5CxF,MAAO,cACPtE,QAAS,eAEb,IAAK,MACH,OAAOoH,EACJU,UAAUgC,EAAoB,CAC7BxF,MAAO,cACPtE,QAAS,eAEV3vB,cACL,IAAK,QACH,OAAO+2B,EAASU,UAAUgC,EAAoB,CAC5CxF,MAAO,SACPtE,QAAS,eAGb,QACE,OAAOoH,EAASU,UAAUgC,EAAoB,CAC5CxF,MAAO,OACPtE,QAAS,eAGjB,EAGA10B,EAAG,SAAUu0B,EAAMpI,EAAO2P,GACxB,MAAM4D,EAAQnL,EAAKiC,WACnB,IAAIgI,EASJ,OAPEA,EADY,KAAVkB,EACmBZ,GACF,IAAVY,EACYZ,GAEAY,EAAQ,IAAM,EAAI,KAAO,KAGxCvT,GACN,IAAK,IACL,IAAK,KACH,OAAO2P,EAASU,UAAUgC,EAAoB,CAC5CxF,MAAO,cACPtE,QAAS,eAEb,IAAK,MACH,OAAOoH,EACJU,UAAUgC,EAAoB,CAC7BxF,MAAO,cACPtE,QAAS,eAEV3vB,cACL,IAAK,QACH,OAAO+2B,EAASU,UAAUgC,EAAoB,CAC5CxF,MAAO,SACPtE,QAAS,eAGb,QACE,OAAOoH,EAASU,UAAUgC,EAAoB,CAC5CxF,MAAO,OACPtE,QAAS,eAGjB,EAGA5tB,EAAG,SAAUytB,EAAMpI,EAAO2P,GACxB,MAAM4D,EAAQnL,EAAKiC,WACnB,IAAIgI,EAWJ,OATEA,EADEkB,GAAS,GACUZ,GACZY,GAAS,GACGZ,GACZY,GAAS,EACGZ,GAEAA,GAGf3S,GACN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO2P,EAASU,UAAUgC,EAAoB,CAC5CxF,MAAO,cACPtE,QAAS,eAEb,IAAK,QACH,OAAOoH,EAASU,UAAUgC,EAAoB,CAC5CxF,MAAO,SACPtE,QAAS,eAGb,QACE,OAAOoH,EAASU,UAAUgC,EAAoB,CAC5CxF,MAAO,OACPtE,QAAS,eAGjB,EAGA51B,EAAG,SAAUy1B,EAAMpI,EAAO2P,GACxB,GAAc,OAAV3P,EAAgB,CAClB,IAAIuT,EAAQnL,EAAKiC,WAAa,GAE9B,OADc,IAAVkJ,IAAaA,EAAQ,IAClB5D,EAASC,cAAc2D,EAAO,CAAEV,KAAM,QAC/C,CAEA,OAAOV,GAAgBx/B,EAAEy1B,EAAMpI,EACjC,EAGAsS,EAAG,SAAUlK,EAAMpI,EAAO2P,GACxB,MAAc,OAAV3P,EACK2P,EAASC,cAAcxH,EAAKiC,WAAY,CAAEwI,KAAM,SAGlDV,GAAgBG,EAAElK,EAAMpI,EACjC,EAGAwT,EAAG,SAAUpL,EAAMpI,EAAO2P,GACxB,MAAM4D,EAAQnL,EAAKiC,WAAa,GAEhC,MAAc,OAAVrK,EACK2P,EAASC,cAAc2D,EAAO,CAAEV,KAAM,SAGxCd,GAAgBwB,EAAOvT,EAAMzvB,OACtC,EAGAD,EAAG,SAAU83B,EAAMpI,EAAO2P,GACxB,IAAI4D,EAAQnL,EAAKiC,WAGjB,OAFc,IAAVkJ,IAAaA,EAAQ,IAEX,OAAVvT,EACK2P,EAASC,cAAc2D,EAAO,CAAEV,KAAM,SAGxCd,GAAgBwB,EAAOvT,EAAMzvB,OACtC,EAGAgC,EAAG,SAAU61B,EAAMpI,EAAO2P,GACxB,MAAc,OAAV3P,EACK2P,EAASC,cAAcxH,EAAKkC,aAAc,CAAEuI,KAAM,WAGpDV,GAAgB5/B,EAAE61B,EAAMpI,EACjC,EAGAjuB,EAAG,SAAUq2B,EAAMpI,EAAO2P,GACxB,MAAc,OAAV3P,EACK2P,EAASC,cAAcxH,EAAKmC,aAAc,CAAEsI,KAAM,WAGpDV,GAAgBpgC,EAAEq2B,EAAMpI,EACjC,EAGAhrB,EAAG,SAAUozB,EAAMpI,GACjB,OAAOmS,GAAgBn9B,EAAEozB,EAAMpI,EACjC,EAGA1kB,EAAG,SAAU8sB,EAAMpI,EAAOyT,GACxB,MAAMC,EAAiBtL,EAAKuL,oBAE5B,GAAuB,IAAnBD,EACF,MAAO,IAGT,OAAQ1T,GAEN,IAAK,IACH,OAAO4T,GAAkCF,GAK3C,IAAK,OACL,IAAK,KACH,OAAOG,GAAeH,GAOxB,QACE,OAAOG,GAAeH,EAAgB,KAE5C,EAGA9+B,EAAG,SAAUwzB,EAAMpI,EAAOyT,GACxB,MAAMC,EAAiBtL,EAAKuL,oBAE5B,OAAQ3T,GAEN,IAAK,IACH,OAAO4T,GAAkCF,GAK3C,IAAK,OACL,IAAK,KACH,OAAOG,GAAeH,GAOxB,QACE,OAAOG,GAAeH,EAAgB,KAE5C,EAGA3gC,EAAG,SAAUq1B,EAAMpI,EAAOyT,GACxB,MAAMC,EAAiBtL,EAAKuL,oBAE5B,OAAQ3T,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQ8T,GAAoBJ,EAAgB,KAGrD,QACE,MAAO,MAAQG,GAAeH,EAAgB,KAEpD,EAGAh5B,EAAG,SAAU0tB,EAAMpI,EAAOyT,GACxB,MAAMC,EAAiBtL,EAAKuL,oBAE5B,OAAQ3T,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQ8T,GAAoBJ,EAAgB,KAGrD,QACE,MAAO,MAAQG,GAAeH,EAAgB,KAEpD,EAGAxjC,EAAG,SAAUk4B,EAAMpI,EAAOyT,GAExB,OAAO1B,GADWtmB,KAAKgnB,OAAOrK,EAAO,KACHpI,EAAMzvB,OAC1C,EAGA0F,EAAG,SAAUmyB,EAAMpI,EAAOyT,GACxB,OAAO1B,IAAiB3J,EAAMpI,EAAMzvB,OACtC,GAGF,SAASujC,GAAoBC,EAAQC,EAAY,IAC/C,MAAMC,EAAOF,EAAS,EAAI,IAAM,IAC1BG,EAAYzoB,KAAKwmB,IAAI8B,GACrBR,EAAQ9nB,KAAKgnB,MAAMyB,EAAY,IAC/BC,EAAUD,EAAY,GAC5B,OAAgB,IAAZC,EACKF,EAAOn8B,OAAOy7B,GAEhBU,EAAOn8B,OAAOy7B,GAASS,EAAYjC,GAAgBoC,EAAS,EACrE,CAEA,SAASP,GAAkCG,EAAQC,GACjD,GAAID,EAAS,IAAO,EAAG,CAErB,OADaA,EAAS,EAAI,IAAM,KAClBhC,GAAgBtmB,KAAKwmB,IAAI8B,GAAU,GAAI,EACvD,CACA,OAAOF,GAAeE,EAAQC,EAChC,CAEA,SAASH,GAAeE,EAAQC,EAAY,IAC1C,MAAMC,EAAOF,EAAS,EAAI,IAAM,IAC1BG,EAAYzoB,KAAKwmB,IAAI8B,GAG3B,OAAOE,EAFOlC,GAAgBtmB,KAAKgnB,MAAMyB,EAAY,IAAK,GAEpCF,EADNjC,GAAgBmC,EAAY,GAAI,EAElD,CCvwBA,MAAME,GAAoB,CAACtF,EAAS9B,KAClC,OAAQ8B,GACN,IAAK,IACH,OAAO9B,EAAW5E,KAAK,CAAEyE,MAAO,UAClC,IAAK,KACH,OAAOG,EAAW5E,KAAK,CAAEyE,MAAO,WAClC,IAAK,MACH,OAAOG,EAAW5E,KAAK,CAAEyE,MAAO,SAElC,QACE,OAAOG,EAAW5E,KAAK,CAAEyE,MAAO,SACtC,EAGMwH,GAAoB,CAACvF,EAAS9B,KAClC,OAAQ8B,GACN,IAAK,IACH,OAAO9B,EAAWK,KAAK,CAAER,MAAO,UAClC,IAAK,KACH,OAAOG,EAAWK,KAAK,CAAER,MAAO,WAClC,IAAK,MACH,OAAOG,EAAWK,KAAK,CAAER,MAAO,SAElC,QACE,OAAOG,EAAWK,KAAK,CAAER,MAAO,SACtC,EAmCayH,GAAiB,CAC5B/gC,EAAG8gC,GACHt/B,EAlC4B,CAAC+5B,EAAS9B,KACtC,MAAMuB,EAAcO,EAAQj2B,MAAM,cAAgB,GAC5C07B,EAAchG,EAAY,GAC1BiG,EAAcjG,EAAY,GAEhC,IAAKiG,EACH,OAAOJ,GAAkBtF,EAAS9B,GAGpC,IAAIyH,EAEJ,OAAQF,GACN,IAAK,IACHE,EAAiBzH,EAAWM,SAAS,CAAET,MAAO,UAC9C,MACF,IAAK,KACH4H,EAAiBzH,EAAWM,SAAS,CAAET,MAAO,WAC9C,MACF,IAAK,MACH4H,EAAiBzH,EAAWM,SAAS,CAAET,MAAO,SAC9C,MAEF,QACE4H,EAAiBzH,EAAWM,SAAS,CAAET,MAAO,SAIlD,OAAO4H,EACJ37B,QAAQ,WAAYs7B,GAAkBG,EAAavH,IACnDl0B,QAAQ,WAAYu7B,GAAkBG,EAAaxH,GAAY,GCzD9D0H,GAAmB,OACnBC,GAAkB,OAElBC,GAAc,CAAC,IAAK,KAAM,KAAM,QAE/B,SAASC,GAA0B7U,GACxC,OAAO0U,GAAiB18B,KAAKgoB,EAC/B,CAEO,SAAS8U,GAAyB9U,GACvC,OAAO2U,GAAgB38B,KAAKgoB,EAC9B,CAEO,SAAS+U,GAA0B/U,EAAO+G,EAAQiO,GACvD,MAAMC,EAKR,SAAiBjV,EAAO+G,EAAQiO,GAC9B,MAAME,EAAuB,MAAblV,EAAM,GAAa,QAAU,oBAC7C,MAAO,SAASA,EAAMpnB,gCAAgConB,aAAiB+G,uBAA4BmO,oBAA0BF,kFAC/H,CARmB7kB,CAAQ6P,EAAO+G,EAAQiO,GAExC,GADArW,QAAQC,KAAKqW,GACTL,GAAYp4B,SAASwjB,GAAQ,MAAM,IAAImV,WAAWF,EACxD,CCUA,MAAMG,GACJ,wDAIIC,GAA6B,oCAE7BC,GAAsB,eACtBC,GAAoB,MACpBC,GAAgC,WAoS/B,SAASzO,GAAOqB,EAAMqN,EAAW90B,GACtC,MAAMmoB,EAAiBC,KACjBG,EAA4BJ,EAAeI,QAAUwM,GAErDxE,EAGJpI,EAAeoI,uBACfpI,EAAeI,QAAQvoB,SAASuwB,uBAChC,EAEIjI,EAGJH,EAAeG,cACfH,EAAeI,QAAQvoB,SAASsoB,cAChC,EAEI0M,EAAetN,GAAOD,EAAMznB,GAAS+nB,IAE3C,IAAK6C,GAAQoK,GACX,MAAM,IAAIR,WAAW,sBAGvB,IAAIS,EAAQH,EACT58B,MAAMw8B,IACNl5B,KAAK9C,IACJ,MAAMw8B,EAAiBx8B,EAAU,GACjC,GAAuB,MAAnBw8B,GAA6C,MAAnBA,EAAwB,CAEpD,OAAOC,EADexB,GAAeuB,IAChBx8B,EAAW6vB,EAAO8D,WACzC,CACA,OAAO3zB,CAAS,IAEjBC,KAAK,IACLT,MAAMu8B,IACNj5B,KAAK9C,IAEJ,GAAkB,OAAdA,EACF,MAAO,CAAE08B,SAAS,EAAO/kC,MAAO,KAGlC,MAAM6kC,EAAiBx8B,EAAU,GACjC,GAAuB,MAAnBw8B,EACF,MAAO,CAAEE,SAAS,EAAO/kC,MAAOglC,GAAmB38B,IAGrD,GAAIu5B,GAAWiD,GACb,MAAO,CAAEE,SAAS,EAAM/kC,MAAOqI,GAGjC,GAAIw8B,EAAeh9B,MAAM28B,IACvB,MAAM,IAAIL,WACR,iEACEU,EACA,KAIN,MAAO,CAAEE,SAAS,EAAO/kC,MAAOqI,EAAW,IAI3C6vB,EAAOyG,SAASsG,eAClBL,EAAQ1M,EAAOyG,SAASsG,aAAaN,EAAcC,IAGrD,MAAMM,EAAmB,CACvBhF,wBACAjI,eACAC,UAGF,OAAO0M,EACJz5B,KAAKg6B,IACJ,IAAKA,EAAKJ,QAAS,OAAOI,EAAKnlC,MAE/B,MAAMgvB,EAAQmW,EAAKnlC,OAIf8jC,GAAyB9U,IAEzB6U,GAA0B7U,KAE5B+U,GAA0B/U,EAAOyV,EAAW39B,OAAOswB,IAIrD,OAAOgO,EADWxD,GAAW5S,EAAM,KAClB2V,EAAc3V,EAAOkJ,EAAOyG,SAAUuG,EAAiB,IAEzE58B,KAAK,GACV,CAEA,SAAS08B,GAAmBhB,GAC1B,MAAMqB,EAAUrB,EAAMn8B,MAAMy8B,IAE5B,OAAKe,EAIEA,EAAQ,GAAGv9B,QAAQy8B,GAAmB,KAHpCP,CAIX,CCzaO,MAAMsB,GACXC,YAAc,EAEd,QAAAC,CAASC,EAAU/G,GACjB,OAAO,CACT,EAGK,MAAMgH,WAAoBJ,GAC/B,WAAA5jC,CACE1B,EACA2lC,EAEAC,EAEAC,EACAN,GAEAlQ,QACAj2B,KAAKY,MAAQA,EACbZ,KAAKumC,cAAgBA,EACrBvmC,KAAKwmC,SAAWA,EAChBxmC,KAAKymC,SAAWA,EACZN,IACFnmC,KAAKmmC,YAAcA,EAEvB,CAEA,QAAAC,CAASpO,EAAMznB,GACb,OAAOvQ,KAAKumC,cAAcvO,EAAMh4B,KAAKY,MAAO2P,EAC9C,CAEA,GAAApI,CAAI6vB,EAAM0O,EAAOn2B,GACf,OAAOvQ,KAAKwmC,SAASxO,EAAM0O,EAAO1mC,KAAKY,MAAO2P,EAChD,EAGK,MAAMo2B,WAA2BT,GACtCO,SAxC6B,GAyC7BN,aAAc,EAEd,WAAA7jC,CAAY61B,EAASyO,GACnB3Q,QACAj2B,KAAKm4B,QAAUA,GAAO,CAAMH,GAASD,GAAc6O,EAAW5O,GAChE,CAEA,GAAA7vB,CAAI6vB,EAAM0O,GACR,OAAIA,EAAMG,eAAuB7O,EAC1BD,GAAcC,ECvBlB,SAAmBA,EAAM11B,GAC9B,MAAM0+B,EAaR,SAAuB1+B,GACrB,MACyB,mBAAhBA,GACPA,EAAYV,WAAWU,cAAgBA,CAE3C,CAlBgBwkC,CAAcxkC,GACxB,IAAIA,EAAY,GAChBy1B,GAAcz1B,EAAa,GAQ/B,OAPA0+B,EAAMxH,YAAYxB,EAAKsB,cAAetB,EAAKgC,WAAYhC,EAAKS,WAC5DuI,EAAM9H,SACJlB,EAAKiC,WACLjC,EAAKkC,aACLlC,EAAKmC,aACLnC,EAAKoC,mBAEA4G,CACT,CDW+B+F,CAAU/O,EAAMh4B,KAAKm4B,SAClD,EEpDK,MAAM6O,GACX,GAAAC,CAAIC,EAAYtX,EAAOnnB,EAAO8H,GAC5B,MAAMyuB,EAASh/B,KAAKykB,MAAMyiB,EAAYtX,EAAOnnB,EAAO8H,GACpD,OAAKyuB,EAIE,CACLmI,OAAQ,IAAIb,GACVtH,EAAOp+B,MACPZ,KAAKomC,SACLpmC,KAAKmI,IACLnI,KAAKymC,SACLzmC,KAAKmmC,aAEPtH,KAAMG,EAAOH,MAXN,IAaX,CAEA,QAAAuH,CAASC,EAAUe,EAAQ9H,GACzB,OAAO,CACT,ECvBK,MAAM+H,GACJ,iBADIA,GAEL,qBAFKA,GAGA,kCAHAA,GAIL,qBAJKA,GAKF,qBALEA,GAMF,qBANEA,GAOF,iBAPEA,GAQF,iBAREA,GASH,YATGA,GAUH,YAVGA,GAYE,MAZFA,GAaA,WAbAA,GAcE,WAdFA,GAeC,WAfDA,GAiBM,SAjBNA,GAkBQ,QAlBRA,GAmBM,aAnBNA,GAoBQ,aApBRA,GAqBO,aAGPC,GACW,2BADXA,GAEJ,0BAFIA,GAGW,oCAHXA,GAID,2BAJCA,GAKc,sCCrBpB,SAASC,GAASC,EAAeC,GACtC,OAAKD,EAIE,CACL5mC,MAAO6mC,EAAMD,EAAc5mC,OAC3Bi+B,KAAM2I,EAAc3I,MALb2I,CAOX,CAEO,SAASE,GAAoBhJ,EAASwI,GAC3C,MAAM/I,EAAc+I,EAAWz+B,MAAMi2B,GAErC,OAAKP,EAIE,CACLv9B,MAAOqJ,SAASk0B,EAAY,GAAI,IAChCU,KAAMqI,EAAWhgC,MAAMi3B,EAAY,GAAGh+B,SAL/B,IAOX,CAEO,SAASwnC,GAAqBjJ,EAASwI,GAC5C,MAAM/I,EAAc+I,EAAWz+B,MAAMi2B,GAErC,IAAKP,EACH,OAAO,KAIT,GAAuB,MAAnBA,EAAY,GACd,MAAO,CACLv9B,MAAO,EACPi+B,KAAMqI,EAAWhgC,MAAM,IAS3B,MAAO,CACLtG,OAN8B,MAAnBu9B,EAAY,GAAa,GAAI,IzCkDV,MyCjDlBA,EAAY,GAAKl0B,SAASk0B,EAAY,GAAI,IAAM,GzC0C5B,KyCzClBA,EAAY,GAAKl0B,SAASk0B,EAAY,GAAI,IAAM,GzCuD9B,KyCtDlBA,EAAY,GAAKl0B,SAASk0B,EAAY,GAAI,IAAM,IAQ9DU,KAAMqI,EAAWhgC,MAAMi3B,EAAY,GAAGh+B,QAE1C,CAEO,SAASynC,GAAqBV,GACnC,OAAOQ,GAAoBL,GAAiCH,EAC9D,CAEO,SAASW,GAAaznC,EAAG8mC,GAC9B,OAAQ9mC,GACN,KAAK,EACH,OAAOsnC,GAAoBL,GAA6BH,GAC1D,KAAK,EACH,OAAOQ,GAAoBL,GAA2BH,GACxD,KAAK,EACH,OAAOQ,GAAoBL,GAA6BH,GAC1D,KAAK,EACH,OAAOQ,GAAoBL,GAA4BH,GACzD,QACE,OAAOQ,GAAoB,IAAIr/B,OAAO,UAAYjI,EAAI,KAAM8mC,GAElE,CAEO,SAASY,GAAmB1nC,EAAG8mC,GACpC,OAAQ9mC,GACN,KAAK,EACH,OAAOsnC,GAAoBL,GAAmCH,GAChE,KAAK,EACH,OAAOQ,GAAoBL,GAAiCH,GAC9D,KAAK,EACH,OAAOQ,GAAoBL,GAAmCH,GAChE,KAAK,EACH,OAAOQ,GAAoBL,GAAkCH,GAC/D,QACE,OAAOQ,GAAoB,IAAIr/B,OAAO,YAAcjI,EAAI,KAAM8mC,GAEpE,CAEO,SAASa,GAAqB9H,GACnC,OAAQA,GACN,IAAK,UACH,OAAO,EACT,IAAK,UACH,OAAO,GACT,IAAK,KACL,IAAK,OACL,IAAK,YACH,OAAO,GAIT,QACE,OAAO,EAEb,CAEO,SAAS+H,GAAsBC,EAAcC,GAClD,MAAMC,EAAcD,EAAc,EAK5BE,EAAiBD,EAAcD,EAAc,EAAIA,EAEvD,IAAIlJ,EACJ,GAAIoJ,GAAkB,GACpBpJ,EAASiJ,GAAgB,QACpB,CACL,MAAMI,EAAWD,EAAiB,GAGlCpJ,EAASiJ,EAF4C,IAA7B5sB,KAAKgnB,MAAMgG,EAAW,MACpBJ,GAAgBI,EAAW,IACU,IAAM,EACvE,CAEA,OAAOF,EAAcnJ,EAAS,EAAIA,CACpC,CAEO,SAASsJ,GAAgBjP,GAC9B,OAAOA,EAAO,KAAQ,GAAMA,EAAO,GAAM,GAAKA,EAAO,KAAQ,CAC/D,CChIA,MAAMkP,GAAgB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAC7DC,GAA0B,CAC9B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,ICwBvC,SAASC,GAAOzQ,EAAMe,EAAKxoB,GAChC,MAAMmoB,EAAiBC,KACjBE,EACJtoB,GAASsoB,cACTtoB,GAASuoB,QAAQvoB,SAASsoB,cAC1BH,EAAeG,cACfH,EAAeI,QAAQvoB,SAASsoB,cAChC,EAEImI,EAAQ/I,GAAOD,EAAMznB,GAAS+nB,IAC9BoQ,EAAa1H,EAAMhI,SAKnB2P,EAAQ,EAAI9P,EAKlB,OAAOT,GAAQ4I,EAHbjI,EAAM,GAAKA,EAAM,EACbA,GAAQ2P,EAAaC,GAAS,IANlB5P,EAAM,EACM,GAAK,EAMhB4P,GAAS,GAAOD,EAAaC,GAAS,EAC7Bp4B,EAC9B,CCxBO,SAASq4B,GAAU5Q,EAAMe,EAAKxoB,GACnC,MAAMywB,EAAQ/I,GAAOD,EAAMznB,GAAS+nB,IAC9BoQ,ECPD,SAAmB1Q,EAAMznB,GAC9B,MAAMwoB,EAAMd,GAAOD,EAAMznB,GAAS+nB,IAAIU,SACtC,OAAe,IAARD,EAAY,EAAIA,CACzB,CDIqB8P,CAAU7H,EAAOzwB,GAEpC,OAAO6nB,GAAQ4I,EADFjI,EAAM2P,EACSn4B,EAC9B,CEsCO,MAAMu4B,GAAU,CACrB/9B,EAAG,IC1EE,cAAwBi8B,GAC7BP,SAAW,IAEX,KAAAhiB,CAAMyiB,EAAYtX,EAAOnnB,GACvB,OAAQmnB,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OACEnnB,EAAMk3B,IAAIuH,EAAY,CAAEzK,MAAO,iBAC/Bh0B,EAAMk3B,IAAIuH,EAAY,CAAEzK,MAAO,WAInC,IAAK,QACH,OAAOh0B,EAAMk3B,IAAIuH,EAAY,CAAEzK,MAAO,WAGxC,QACE,OACEh0B,EAAMk3B,IAAIuH,EAAY,CAAEzK,MAAO,UAC/Bh0B,EAAMk3B,IAAIuH,EAAY,CAAEzK,MAAO,iBAC/Bh0B,EAAMk3B,IAAIuH,EAAY,CAAEzK,MAAO,WAGvC,CAEA,GAAAt0B,CAAI6vB,EAAM0O,EAAO9lC,GAIf,OAHA8lC,EAAM/G,IAAM/+B,EACZo3B,EAAKwB,YAAY54B,EAAO,EAAG,GAC3Bo3B,EAAKkB,SAAS,EAAG,EAAG,EAAG,GAChBlB,CACT,CAEA+Q,mBAAqB,CAAC,IAAK,IAAK,IAAK,MDwCrC7mC,EAAG,IEjEE,cAAyB8kC,GAC9BP,SAAW,IACXsC,mBAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAEnE,KAAAtkB,CAAMyiB,EAAYtX,EAAOnnB,GACvB,MAAMm2B,EAAiBvF,IAAI,CACzBA,OACA2P,eAA0B,OAAVpZ,IAGlB,OAAQA,GACN,IAAK,IACH,OAAO2X,GAASM,GAAa,EAAGX,GAAatI,GAC/C,IAAK,KACH,OAAO2I,GACL9+B,EAAM+2B,cAAc0H,EAAY,CAC9BzE,KAAM,SAER7D,GAEJ,QACE,OAAO2I,GAASM,GAAajY,EAAMzvB,OAAQ+mC,GAAatI,GAE9D,CAEA,QAAAwH,CAAS/N,EAAOz3B,GACd,OAAOA,EAAMooC,gBAAkBpoC,EAAMy4B,KAAO,CAC9C,CAEA,GAAAlxB,CAAI6vB,EAAM0O,EAAO9lC,GACf,MAAMsnC,EAAclQ,EAAKsB,cAEzB,GAAI14B,EAAMooC,eAAgB,CACxB,MAAMC,EAAyBjB,GAC7BpnC,EAAMy4B,KACN6O,GAIF,OAFAlQ,EAAKwB,YAAYyP,EAAwB,EAAG,GAC5CjR,EAAKkB,SAAS,EAAG,EAAG,EAAG,GAChBlB,CACT,CAEA,MAAMqB,EACF,QAASqN,GAAwB,IAAdA,EAAM/G,IAAyB,EAAI/+B,EAAMy4B,KAAvBz4B,EAAMy4B,KAG/C,OAFArB,EAAKwB,YAAYH,EAAM,EAAG,GAC1BrB,EAAKkB,SAAS,EAAG,EAAG,EAAG,GAChBlB,CACT,GFmBA1sB,EAAG,IGtEE,cAAkC07B,GACvCP,SAAW,IAEX,KAAAhiB,CAAMyiB,EAAYtX,EAAOnnB,GACvB,MAAMm2B,EAAiBvF,IAAI,CACzBA,OACA2P,eAA0B,OAAVpZ,IAGlB,OAAQA,GACN,IAAK,IACH,OAAO2X,GAASM,GAAa,EAAGX,GAAatI,GAC/C,IAAK,KACH,OAAO2I,GACL9+B,EAAM+2B,cAAc0H,EAAY,CAC9BzE,KAAM,SAER7D,GAEJ,QACE,OAAO2I,GAASM,GAAajY,EAAMzvB,OAAQ+mC,GAAatI,GAE9D,CAEA,QAAAwH,CAAS/N,EAAOz3B,GACd,OAAOA,EAAMooC,gBAAkBpoC,EAAMy4B,KAAO,CAC9C,CAEA,GAAAlxB,CAAI6vB,EAAM0O,EAAO9lC,EAAO2P,GACtB,MAAM23B,EAAc7G,GAAYrJ,EAAMznB,GAEtC,GAAI3P,EAAMooC,eAAgB,CACxB,MAAMC,EAAyBjB,GAC7BpnC,EAAMy4B,KACN6O,GAQF,OANAlQ,EAAKwB,YACHyP,EACA,EACA14B,EAAQuwB,uBAEV9I,EAAKkB,SAAS,EAAG,EAAG,EAAG,GAChBN,GAAYZ,EAAMznB,EAC3B,CAEA,MAAM8oB,EACF,QAASqN,GAAwB,IAAdA,EAAM/G,IAAyB,EAAI/+B,EAAMy4B,KAAvBz4B,EAAMy4B,KAG/C,OAFArB,EAAKwB,YAAYH,EAAM,EAAG9oB,EAAQuwB,uBAClC9I,EAAKkB,SAAS,EAAG,EAAG,EAAG,GAChBN,GAAYZ,EAAMznB,EAC3B,CAEAw4B,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MHMF7jC,EAAG,IIxEE,cAAgC8hC,GACrCP,SAAW,IAEX,KAAAhiB,CAAMyiB,EAAYtX,GAChB,OACSkY,GADK,MAAVlY,EACwB,EAGFA,EAAMzvB,OAHD+mC,EAIjC,CAEA,GAAA/+B,CAAI6vB,EAAMkR,EAAQtoC,GAChB,MAAMuoC,EAAkBpR,GAAcC,EAAM,GAG5C,OAFAmR,EAAgB3P,YAAY54B,EAAO,EAAG,GACtCuoC,EAAgBjQ,SAAS,EAAG,EAAG,EAAG,GAC3BC,GAAegQ,EACxB,CAEAJ,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MJwCFhnC,EAAG,IK5EE,cAAiCilC,GACtCP,SAAW,IAEX,KAAAhiB,CAAMyiB,EAAYtX,GAChB,OACSkY,GADK,MAAVlY,EACwB,EAGFA,EAAMzvB,OAHD+mC,EAIjC,CAEA,GAAA/+B,CAAI6vB,EAAMkR,EAAQtoC,GAGhB,OAFAo3B,EAAKwB,YAAY54B,EAAO,EAAG,GAC3Bo3B,EAAKkB,SAAS,EAAG,EAAG,EAAG,GAChBlB,CACT,CAEA+Q,mBAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,ML4DxE59B,EAAG,IM7EE,cAA4B67B,GACjCP,SAAW,IAEX,KAAAhiB,CAAMyiB,EAAYtX,EAAOnnB,GACvB,OAAQmnB,GAEN,IAAK,IACL,IAAK,KACH,OAAOiY,GAAajY,EAAMzvB,OAAQ+mC,GAEpC,IAAK,KACH,OAAOz+B,EAAM+2B,cAAc0H,EAAY,CAAEzE,KAAM,YAEjD,IAAK,MACH,OACEh6B,EAAMs3B,QAAQmH,EAAY,CACxBzK,MAAO,cACPtE,QAAS,gBAEX1vB,EAAMs3B,QAAQmH,EAAY,CACxBzK,MAAO,SACPtE,QAAS,eAKf,IAAK,QACH,OAAO1vB,EAAMs3B,QAAQmH,EAAY,CAC/BzK,MAAO,SACPtE,QAAS,eAIb,QACE,OACE1vB,EAAMs3B,QAAQmH,EAAY,CACxBzK,MAAO,OACPtE,QAAS,gBAEX1vB,EAAMs3B,QAAQmH,EAAY,CACxBzK,MAAO,cACPtE,QAAS,gBAEX1vB,EAAMs3B,QAAQmH,EAAY,CACxBzK,MAAO,SACPtE,QAAS,eAInB,CAEA,QAAAiO,CAAS/N,EAAOz3B,GACd,OAAOA,GAAS,GAAKA,GAAS,CAChC,CAEA,GAAAuH,CAAI6vB,EAAMkR,EAAQtoC,GAGhB,OAFAo3B,EAAKoR,SAAuB,GAAbxoC,EAAQ,GAAQ,GAC/Bo3B,EAAKkB,SAAS,EAAG,EAAG,EAAG,GAChBlB,CACT,CAEA+Q,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MNGFn+B,EAAG,IO9EE,cAAsCo8B,GAC3CP,SAAW,IAEX,KAAAhiB,CAAMyiB,EAAYtX,EAAOnnB,GACvB,OAAQmnB,GAEN,IAAK,IACL,IAAK,KACH,OAAOiY,GAAajY,EAAMzvB,OAAQ+mC,GAEpC,IAAK,KACH,OAAOz+B,EAAM+2B,cAAc0H,EAAY,CAAEzE,KAAM,YAEjD,IAAK,MACH,OACEh6B,EAAMs3B,QAAQmH,EAAY,CACxBzK,MAAO,cACPtE,QAAS,gBAEX1vB,EAAMs3B,QAAQmH,EAAY,CACxBzK,MAAO,SACPtE,QAAS,eAKf,IAAK,QACH,OAAO1vB,EAAMs3B,QAAQmH,EAAY,CAC/BzK,MAAO,SACPtE,QAAS,eAIb,QACE,OACE1vB,EAAMs3B,QAAQmH,EAAY,CACxBzK,MAAO,OACPtE,QAAS,gBAEX1vB,EAAMs3B,QAAQmH,EAAY,CACxBzK,MAAO,cACPtE,QAAS,gBAEX1vB,EAAMs3B,QAAQmH,EAAY,CACxBzK,MAAO,SACPtE,QAAS,eAInB,CAEA,QAAAiO,CAAS/N,EAAOz3B,GACd,OAAOA,GAAS,GAAKA,GAAS,CAChC,CAEA,GAAAuH,CAAI6vB,EAAMkR,EAAQtoC,GAGhB,OAFAo3B,EAAKoR,SAAuB,GAAbxoC,EAAQ,GAAQ,GAC/Bo3B,EAAKkB,SAAS,EAAG,EAAG,EAAG,GAChBlB,CACT,CAEA+Q,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MPIFn4B,EAAG,IQ9EE,cAA0Bo2B,GAC/B+B,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAGFtC,SAAW,IAEX,KAAAhiB,CAAMyiB,EAAYtX,EAAOnnB,GACvB,MAAMm2B,EAAiBh+B,GAAUA,EAAQ,EAEzC,OAAQgvB,GAEN,IAAK,IACH,OAAO2X,GACLG,GAAoBL,GAAuBH,GAC3CtI,GAGJ,IAAK,KACH,OAAO2I,GAASM,GAAa,EAAGX,GAAatI,GAE/C,IAAK,KACH,OAAO2I,GACL9+B,EAAM+2B,cAAc0H,EAAY,CAC9BzE,KAAM,UAER7D,GAGJ,IAAK,MACH,OACEn2B,EAAMu3B,MAAMkH,EAAY,CACtBzK,MAAO,cACPtE,QAAS,gBAEX1vB,EAAMu3B,MAAMkH,EAAY,CAAEzK,MAAO,SAAUtE,QAAS,eAIxD,IAAK,QACH,OAAO1vB,EAAMu3B,MAAMkH,EAAY,CAC7BzK,MAAO,SACPtE,QAAS,eAIb,QACE,OACE1vB,EAAMu3B,MAAMkH,EAAY,CAAEzK,MAAO,OAAQtE,QAAS,gBAClD1vB,EAAMu3B,MAAMkH,EAAY,CACtBzK,MAAO,cACPtE,QAAS,gBAEX1vB,EAAMu3B,MAAMkH,EAAY,CAAEzK,MAAO,SAAUtE,QAAS,eAG5D,CAEA,QAAAiO,CAAS/N,EAAOz3B,GACd,OAAOA,GAAS,GAAKA,GAAS,EAChC,CAEA,GAAAuH,CAAI6vB,EAAMkR,EAAQtoC,GAGhB,OAFAo3B,EAAKoR,SAASxoC,EAAO,GACrBo3B,EAAKkB,SAAS,EAAG,EAAG,EAAG,GAChBlB,CACT,GRCAhzB,EAAG,IS/EE,cAAoCgiC,GACzCP,SAAW,IAEX,KAAAhiB,CAAMyiB,EAAYtX,EAAOnnB,GACvB,MAAMm2B,EAAiBh+B,GAAUA,EAAQ,EAEzC,OAAQgvB,GAEN,IAAK,IACH,OAAO2X,GACLG,GAAoBL,GAAuBH,GAC3CtI,GAGJ,IAAK,KACH,OAAO2I,GAASM,GAAa,EAAGX,GAAatI,GAE/C,IAAK,KACH,OAAO2I,GACL9+B,EAAM+2B,cAAc0H,EAAY,CAC9BzE,KAAM,UAER7D,GAGJ,IAAK,MACH,OACEn2B,EAAMu3B,MAAMkH,EAAY,CACtBzK,MAAO,cACPtE,QAAS,gBAEX1vB,EAAMu3B,MAAMkH,EAAY,CAAEzK,MAAO,SAAUtE,QAAS,eAIxD,IAAK,QACH,OAAO1vB,EAAMu3B,MAAMkH,EAAY,CAC7BzK,MAAO,SACPtE,QAAS,eAIb,QACE,OACE1vB,EAAMu3B,MAAMkH,EAAY,CAAEzK,MAAO,OAAQtE,QAAS,gBAClD1vB,EAAMu3B,MAAMkH,EAAY,CACtBzK,MAAO,cACPtE,QAAS,gBAEX1vB,EAAMu3B,MAAMkH,EAAY,CAAEzK,MAAO,SAAUtE,QAAS,eAG5D,CAEA,QAAAiO,CAAS/N,EAAOz3B,GACd,OAAOA,GAAS,GAAKA,GAAS,EAChC,CAEA,GAAAuH,CAAI6vB,EAAMkR,EAAQtoC,GAGhB,OAFAo3B,EAAKoR,SAASxoC,EAAO,GACrBo3B,EAAKkB,SAAS,EAAG,EAAG,EAAG,GAChBlB,CACT,CAEA+Q,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MTGFllC,EAAG,IU7EE,cAA8BmjC,GACnCP,SAAW,IAEX,KAAAhiB,CAAMyiB,EAAYtX,EAAOnnB,GACvB,OAAQmnB,GACN,IAAK,IACH,OAAO8X,GAAoBL,GAAsBH,GACnD,IAAK,KACH,OAAOz+B,EAAM+2B,cAAc0H,EAAY,CAAEzE,KAAM,SACjD,QACE,OAAOoF,GAAajY,EAAMzvB,OAAQ+mC,GAExC,CAEA,QAAAd,CAAS/N,EAAOz3B,GACd,OAAOA,GAAS,GAAKA,GAAS,EAChC,CAEA,GAAAuH,CAAI6vB,EAAMkR,EAAQtoC,EAAO2P,GACvB,OAAOqoB,GCkBJ,SAAiBZ,EAAM6K,EAAMtyB,GAClC,MAAMywB,EAAQ/I,GAAOD,EAAMznB,GAAS+nB,IAC9BW,EAAOuI,GAAQR,EAAOzwB,GAAWsyB,EAEvC,OADA7B,EAAMxI,QAAQwI,EAAMvI,UAAmB,EAAPQ,GACzBhB,GAAO+I,EAAOzwB,GAAS+nB,GAChC,CDvBuB+Q,CAAQrR,EAAMp3B,EAAO2P,GAAUA,EACpD,CAEAw4B,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MV2CFl+B,EAAG,IY9EE,cAA4Bm8B,GACjCP,SAAW,IAEX,KAAAhiB,CAAMyiB,EAAYtX,EAAOnnB,GACvB,OAAQmnB,GACN,IAAK,IACH,OAAO8X,GAAoBL,GAAsBH,GACnD,IAAK,KACH,OAAOz+B,EAAM+2B,cAAc0H,EAAY,CAAEzE,KAAM,SACjD,QACE,OAAOoF,GAAajY,EAAMzvB,OAAQ+mC,GAExC,CAEA,QAAAd,CAAS/N,EAAOz3B,GACd,OAAOA,GAAS,GAAKA,GAAS,EAChC,CAEA,GAAAuH,CAAI6vB,EAAMkR,EAAQtoC,GAChB,OAAOu4B,GCIJ,SAAoBnB,EAAM6K,EAAMtyB,GACrC,MAAM8nB,EAAQJ,GAAOD,EAAMznB,GAAS+nB,IAC9BW,EAAOiI,GAAW7I,EAAO9nB,GAAWsyB,EAE1C,OADAxK,EAAMG,QAAQH,EAAMI,UAAmB,EAAPQ,GACzBZ,CACT,CDT0BiR,CAAWtR,EAAMp3B,GACzC,CAEAmoC,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MZ2CFnmC,EAAG,IJxEE,cAAyBokC,GAC9BP,SAAW,GACXN,YAAc,EAEd,KAAA1hB,CAAMyiB,EAAYtX,EAAOnnB,GACvB,OAAQmnB,GACN,IAAK,IACH,OAAO8X,GAAoBL,GAAsBH,GACnD,IAAK,KACH,OAAOz+B,EAAM+2B,cAAc0H,EAAY,CAAEzE,KAAM,SACjD,QACE,OAAOoF,GAAajY,EAAMzvB,OAAQ+mC,GAExC,CAEA,QAAAd,CAASpO,EAAMp3B,GACb,MACM2oC,EAAajB,GADNtQ,EAAKsB,eAEZ0G,EAAQhI,EAAKgC,WACnB,OAAIuP,EACK3oC,GAAS,GAAKA,GAAS4nC,GAAwBxI,GAE/Cp/B,GAAS,GAAKA,GAAS2nC,GAAcvI,EAEhD,CAEA,GAAA73B,CAAI6vB,EAAMkR,EAAQtoC,GAGhB,OAFAo3B,EAAKQ,QAAQ53B,GACbo3B,EAAKkB,SAAS,EAAG,EAAG,EAAG,GAChBlB,CACT,CAEA+Q,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MI6BF1+B,EAAG,Ic/EE,cAA8B28B,GACnCP,SAAW,GAEX+C,YAAc,EAEd,KAAA/kB,CAAMyiB,EAAYtX,EAAOnnB,GACvB,OAAQmnB,GACN,IAAK,IACL,IAAK,KACH,OAAO8X,GAAoBL,GAA2BH,GACxD,IAAK,KACH,OAAOz+B,EAAM+2B,cAAc0H,EAAY,CAAEzE,KAAM,SACjD,QACE,OAAOoF,GAAajY,EAAMzvB,OAAQ+mC,GAExC,CAEA,QAAAd,CAASpO,EAAMp3B,GAGb,OADmB0nC,GADNtQ,EAAKsB,eAGT14B,GAAS,GAAKA,GAAS,IAEvBA,GAAS,GAAKA,GAAS,GAElC,CAEA,GAAAuH,CAAI6vB,EAAMkR,EAAQtoC,GAGhB,OAFAo3B,EAAKoR,SAAS,EAAGxoC,GACjBo3B,EAAKkB,SAAS,EAAG,EAAG,EAAG,GAChBlB,CACT,CAEA+Q,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MdgCFhlC,EAAG,IerFE,cAAwBijC,GAC7BP,SAAW,GAEX,KAAAhiB,CAAMyiB,EAAYtX,EAAOnnB,GACvB,OAAQmnB,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OACEnnB,EAAMswB,IAAImO,EAAY,CACpBzK,MAAO,cACPtE,QAAS,gBAEX1vB,EAAMswB,IAAImO,EAAY,CAAEzK,MAAO,QAAStE,QAAS,gBACjD1vB,EAAMswB,IAAImO,EAAY,CAAEzK,MAAO,SAAUtE,QAAS,eAItD,IAAK,QACH,OAAO1vB,EAAMswB,IAAImO,EAAY,CAC3BzK,MAAO,SACPtE,QAAS,eAGb,IAAK,SACH,OACE1vB,EAAMswB,IAAImO,EAAY,CAAEzK,MAAO,QAAStE,QAAS,gBACjD1vB,EAAMswB,IAAImO,EAAY,CAAEzK,MAAO,SAAUtE,QAAS,eAKtD,QACE,OACE1vB,EAAMswB,IAAImO,EAAY,CAAEzK,MAAO,OAAQtE,QAAS,gBAChD1vB,EAAMswB,IAAImO,EAAY,CACpBzK,MAAO,cACPtE,QAAS,gBAEX1vB,EAAMswB,IAAImO,EAAY,CAAEzK,MAAO,QAAStE,QAAS,gBACjD1vB,EAAMswB,IAAImO,EAAY,CAAEzK,MAAO,SAAUtE,QAAS,eAG1D,CAEA,QAAAiO,CAAS/N,EAAOz3B,GACd,OAAOA,GAAS,GAAKA,GAAS,CAChC,CAEA,GAAAuH,CAAI6vB,EAAMkR,EAAQtoC,EAAO2P,GAGvB,OAFAynB,EAAOyQ,GAAOzQ,EAAMp3B,EAAO2P,IACtB2oB,SAAS,EAAG,EAAG,EAAG,GAChBlB,CACT,CAEA+Q,mBAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,Mf8B/ChpC,EAAG,IgBpFE,cAA6BinC,GAClCP,SAAW,GACX,KAAAhiB,CAAMyiB,EAAYtX,EAAOnnB,EAAO8H,GAC9B,MAAMquB,EAAiBh+B,IAErB,MAAM6oC,EAA8C,EAA9BpuB,KAAK+K,OAAOxlB,EAAQ,GAAK,GAC/C,OAASA,EAAQ2P,EAAQsoB,aAAe,GAAK,EAAK4Q,CAAa,EAGjE,OAAQ7Z,GAEN,IAAK,IACL,IAAK,KACH,OAAO2X,GAASM,GAAajY,EAAMzvB,OAAQ+mC,GAAatI,GAE1D,IAAK,KACH,OAAO2I,GACL9+B,EAAM+2B,cAAc0H,EAAY,CAC9BzE,KAAM,QAER7D,GAGJ,IAAK,MACH,OACEn2B,EAAMswB,IAAImO,EAAY,CACpBzK,MAAO,cACPtE,QAAS,gBAEX1vB,EAAMswB,IAAImO,EAAY,CAAEzK,MAAO,QAAStE,QAAS,gBACjD1vB,EAAMswB,IAAImO,EAAY,CAAEzK,MAAO,SAAUtE,QAAS,eAItD,IAAK,QACH,OAAO1vB,EAAMswB,IAAImO,EAAY,CAC3BzK,MAAO,SACPtE,QAAS,eAGb,IAAK,SACH,OACE1vB,EAAMswB,IAAImO,EAAY,CAAEzK,MAAO,QAAStE,QAAS,gBACjD1vB,EAAMswB,IAAImO,EAAY,CAAEzK,MAAO,SAAUtE,QAAS,eAKtD,QACE,OACE1vB,EAAMswB,IAAImO,EAAY,CAAEzK,MAAO,OAAQtE,QAAS,gBAChD1vB,EAAMswB,IAAImO,EAAY,CACpBzK,MAAO,cACPtE,QAAS,gBAEX1vB,EAAMswB,IAAImO,EAAY,CAAEzK,MAAO,QAAStE,QAAS,gBACjD1vB,EAAMswB,IAAImO,EAAY,CAAEzK,MAAO,SAAUtE,QAAS,eAG1D,CAEA,QAAAiO,CAAS/N,EAAOz3B,GACd,OAAOA,GAAS,GAAKA,GAAS,CAChC,CAEA,GAAAuH,CAAI6vB,EAAMkR,EAAQtoC,EAAO2P,GAGvB,OAFAynB,EAAOyQ,GAAOzQ,EAAMp3B,EAAO2P,IACtB2oB,SAAS,EAAG,EAAG,EAAG,GAChBlB,CACT,CAEA+Q,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MhBDF/mC,EAAG,IiBrFE,cAAuCglC,GAC5CP,SAAW,GAEX,KAAAhiB,CAAMyiB,EAAYtX,EAAOnnB,EAAO8H,GAC9B,MAAMquB,EAAiBh+B,IAErB,MAAM6oC,EAA8C,EAA9BpuB,KAAK+K,OAAOxlB,EAAQ,GAAK,GAC/C,OAASA,EAAQ2P,EAAQsoB,aAAe,GAAK,EAAK4Q,CAAa,EAGjE,OAAQ7Z,GAEN,IAAK,IACL,IAAK,KACH,OAAO2X,GAASM,GAAajY,EAAMzvB,OAAQ+mC,GAAatI,GAE1D,IAAK,KACH,OAAO2I,GACL9+B,EAAM+2B,cAAc0H,EAAY,CAC9BzE,KAAM,QAER7D,GAGJ,IAAK,MACH,OACEn2B,EAAMswB,IAAImO,EAAY,CACpBzK,MAAO,cACPtE,QAAS,gBAEX1vB,EAAMswB,IAAImO,EAAY,CAAEzK,MAAO,QAAStE,QAAS,gBACjD1vB,EAAMswB,IAAImO,EAAY,CAAEzK,MAAO,SAAUtE,QAAS,eAItD,IAAK,QACH,OAAO1vB,EAAMswB,IAAImO,EAAY,CAC3BzK,MAAO,SACPtE,QAAS,eAGb,IAAK,SACH,OACE1vB,EAAMswB,IAAImO,EAAY,CAAEzK,MAAO,QAAStE,QAAS,gBACjD1vB,EAAMswB,IAAImO,EAAY,CAAEzK,MAAO,SAAUtE,QAAS,eAKtD,QACE,OACE1vB,EAAMswB,IAAImO,EAAY,CAAEzK,MAAO,OAAQtE,QAAS,gBAChD1vB,EAAMswB,IAAImO,EAAY,CACpBzK,MAAO,cACPtE,QAAS,gBAEX1vB,EAAMswB,IAAImO,EAAY,CAAEzK,MAAO,QAAStE,QAAS,gBACjD1vB,EAAMswB,IAAImO,EAAY,CAAEzK,MAAO,SAAUtE,QAAS,eAG1D,CAEA,QAAAiO,CAAS/N,EAAOz3B,GACd,OAAOA,GAAS,GAAKA,GAAS,CAChC,CAEA,GAAAuH,CAAI6vB,EAAMkR,EAAQtoC,EAAO2P,GAGvB,OAFAynB,EAAOyQ,GAAOzQ,EAAMp3B,EAAO2P,IACtB2oB,SAAS,EAAG,EAAG,EAAG,GAChBlB,CACT,CAEA+Q,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MjBDFtoC,EAAG,IkBtFE,cAA2BumC,GAChCP,SAAW,GAEX,KAAAhiB,CAAMyiB,EAAYtX,EAAOnnB,GACvB,MAAMm2B,EAAiBh+B,GACP,IAAVA,EACK,EAEFA,EAGT,OAAQgvB,GAEN,IAAK,IACL,IAAK,KACH,OAAOiY,GAAajY,EAAMzvB,OAAQ+mC,GAEpC,IAAK,KACH,OAAOz+B,EAAM+2B,cAAc0H,EAAY,CAAEzE,KAAM,QAEjD,IAAK,MACH,OAAO8E,GACL9+B,EAAMswB,IAAImO,EAAY,CACpBzK,MAAO,cACPtE,QAAS,gBAET1vB,EAAMswB,IAAImO,EAAY,CACpBzK,MAAO,QACPtE,QAAS,gBAEX1vB,EAAMswB,IAAImO,EAAY,CACpBzK,MAAO,SACPtE,QAAS,eAEbyG,GAGJ,IAAK,QACH,OAAO2I,GACL9+B,EAAMswB,IAAImO,EAAY,CACpBzK,MAAO,SACPtE,QAAS,eAEXyG,GAGJ,IAAK,SACH,OAAO2I,GACL9+B,EAAMswB,IAAImO,EAAY,CACpBzK,MAAO,QACPtE,QAAS,gBAET1vB,EAAMswB,IAAImO,EAAY,CACpBzK,MAAO,SACPtE,QAAS,eAEbyG,GAIJ,QACE,OAAO2I,GACL9+B,EAAMswB,IAAImO,EAAY,CACpBzK,MAAO,OACPtE,QAAS,gBAET1vB,EAAMswB,IAAImO,EAAY,CACpBzK,MAAO,cACPtE,QAAS,gBAEX1vB,EAAMswB,IAAImO,EAAY,CACpBzK,MAAO,QACPtE,QAAS,gBAEX1vB,EAAMswB,IAAImO,EAAY,CACpBzK,MAAO,SACPtE,QAAS,eAEbyG,GAGR,CAEA,QAAAwH,CAAS/N,EAAOz3B,GACd,OAAOA,GAAS,GAAKA,GAAS,CAChC,CAEA,GAAAuH,CAAI6vB,EAAMkR,EAAQtoC,GAGhB,OAFAo3B,EAAO4Q,GAAU5Q,EAAMp3B,IAClBs4B,SAAS,EAAG,EAAG,EAAG,GAChBlB,CACT,CAEA+Q,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MlBrBF1nC,EAAG,ImBzFE,cAAyB2lC,GAC9BP,SAAW,GAEX,KAAAhiB,CAAMyiB,EAAYtX,EAAOnnB,GACvB,OAAQmnB,GACN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OACEnnB,EAAMw3B,UAAUiH,EAAY,CAC1BzK,MAAO,cACPtE,QAAS,gBAEX1vB,EAAMw3B,UAAUiH,EAAY,CAC1BzK,MAAO,SACPtE,QAAS,eAIf,IAAK,QACH,OAAO1vB,EAAMw3B,UAAUiH,EAAY,CACjCzK,MAAO,SACPtE,QAAS,eAGb,QACE,OACE1vB,EAAMw3B,UAAUiH,EAAY,CAC1BzK,MAAO,OACPtE,QAAS,gBAEX1vB,EAAMw3B,UAAUiH,EAAY,CAC1BzK,MAAO,cACPtE,QAAS,gBAEX1vB,EAAMw3B,UAAUiH,EAAY,CAC1BzK,MAAO,SACPtE,QAAS,eAInB,CAEA,GAAAhwB,CAAI6vB,EAAMkR,EAAQtoC,GAEhB,OADAo3B,EAAKkB,SAAS6O,GAAqBnnC,GAAQ,EAAG,EAAG,GAC1Co3B,CACT,CAEA+Q,mBAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,MnB0C/CtlC,EAAG,IoB1FE,cAAiCujC,GACtCP,SAAW,GAEX,KAAAhiB,CAAMyiB,EAAYtX,EAAOnnB,GACvB,OAAQmnB,GACN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OACEnnB,EAAMw3B,UAAUiH,EAAY,CAC1BzK,MAAO,cACPtE,QAAS,gBAEX1vB,EAAMw3B,UAAUiH,EAAY,CAC1BzK,MAAO,SACPtE,QAAS,eAIf,IAAK,QACH,OAAO1vB,EAAMw3B,UAAUiH,EAAY,CACjCzK,MAAO,SACPtE,QAAS,eAGb,QACE,OACE1vB,EAAMw3B,UAAUiH,EAAY,CAC1BzK,MAAO,OACPtE,QAAS,gBAEX1vB,EAAMw3B,UAAUiH,EAAY,CAC1BzK,MAAO,cACPtE,QAAS,gBAEX1vB,EAAMw3B,UAAUiH,EAAY,CAC1BzK,MAAO,SACPtE,QAAS,eAInB,CAEA,GAAAhwB,CAAI6vB,EAAMkR,EAAQtoC,GAEhB,OADAo3B,EAAKkB,SAAS6O,GAAqBnnC,GAAQ,EAAG,EAAG,GAC1Co3B,CACT,CAEA+Q,mBAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,MpB2C/Cx+B,EAAG,IqB1FE,cAA8By8B,GACnCP,SAAW,GAEX,KAAAhiB,CAAMyiB,EAAYtX,EAAOnnB,GACvB,OAAQmnB,GACN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OACEnnB,EAAMw3B,UAAUiH,EAAY,CAC1BzK,MAAO,cACPtE,QAAS,gBAEX1vB,EAAMw3B,UAAUiH,EAAY,CAC1BzK,MAAO,SACPtE,QAAS,eAIf,IAAK,QACH,OAAO1vB,EAAMw3B,UAAUiH,EAAY,CACjCzK,MAAO,SACPtE,QAAS,eAGb,QACE,OACE1vB,EAAMw3B,UAAUiH,EAAY,CAC1BzK,MAAO,OACPtE,QAAS,gBAEX1vB,EAAMw3B,UAAUiH,EAAY,CAC1BzK,MAAO,cACPtE,QAAS,gBAEX1vB,EAAMw3B,UAAUiH,EAAY,CAC1BzK,MAAO,SACPtE,QAAS,eAInB,CAEA,GAAAhwB,CAAI6vB,EAAMkR,EAAQtoC,GAEhB,OADAo3B,EAAKkB,SAAS6O,GAAqBnnC,GAAQ,EAAG,EAAG,GAC1Co3B,CACT,CAEA+Q,mBAAqB,CAAC,IAAK,IAAK,IAAK,MrB2CrCxmC,EAAG,IsB3FE,cAA8BykC,GACnCP,SAAW,GAEX,KAAAhiB,CAAMyiB,EAAYtX,EAAOnnB,GACvB,OAAQmnB,GACN,IAAK,IACH,OAAO8X,GAAoBL,GAAyBH,GACtD,IAAK,KACH,OAAOz+B,EAAM+2B,cAAc0H,EAAY,CAAEzE,KAAM,SACjD,QACE,OAAOoF,GAAajY,EAAMzvB,OAAQ+mC,GAExC,CAEA,QAAAd,CAAS/N,EAAOz3B,GACd,OAAOA,GAAS,GAAKA,GAAS,EAChC,CAEA,GAAAuH,CAAI6vB,EAAMkR,EAAQtoC,GAChB,MAAM8oC,EAAO1R,EAAKiC,YAAc,GAQhC,OAPIyP,GAAQ9oC,EAAQ,GAClBo3B,EAAKkB,SAASt4B,EAAQ,GAAI,EAAG,EAAG,GACtB8oC,GAAkB,KAAV9oC,EAGlBo3B,EAAKkB,SAASt4B,EAAO,EAAG,EAAG,GAF3Bo3B,EAAKkB,SAAS,EAAG,EAAG,EAAG,GAIlBlB,CACT,CAEA+Q,mBAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,MtB8D1C7G,EAAG,IuB5FE,cAA8B8E,GACnCP,SAAW,GAEX,KAAAhiB,CAAMyiB,EAAYtX,EAAOnnB,GACvB,OAAQmnB,GACN,IAAK,IACH,OAAO8X,GAAoBL,GAAyBH,GACtD,IAAK,KACH,OAAOz+B,EAAM+2B,cAAc0H,EAAY,CAAEzE,KAAM,SACjD,QACE,OAAOoF,GAAajY,EAAMzvB,OAAQ+mC,GAExC,CAEA,QAAAd,CAAS/N,EAAOz3B,GACd,OAAOA,GAAS,GAAKA,GAAS,EAChC,CAEA,GAAAuH,CAAI6vB,EAAMkR,EAAQtoC,GAEhB,OADAo3B,EAAKkB,SAASt4B,EAAO,EAAG,EAAG,GACpBo3B,CACT,CAEA+Q,mBAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MvBsEpD3F,EAAG,IwB7FE,cAA8B4D,GACnCP,SAAW,GAEX,KAAAhiB,CAAMyiB,EAAYtX,EAAOnnB,GACvB,OAAQmnB,GACN,IAAK,IACH,OAAO8X,GAAoBL,GAAyBH,GACtD,IAAK,KACH,OAAOz+B,EAAM+2B,cAAc0H,EAAY,CAAEzE,KAAM,SACjD,QACE,OAAOoF,GAAajY,EAAMzvB,OAAQ+mC,GAExC,CAEA,QAAAd,CAAS/N,EAAOz3B,GACd,OAAOA,GAAS,GAAKA,GAAS,EAChC,CAEA,GAAAuH,CAAI6vB,EAAMkR,EAAQtoC,GAOhB,OANao3B,EAAKiC,YAAc,IACpBr5B,EAAQ,GAClBo3B,EAAKkB,SAASt4B,EAAQ,GAAI,EAAG,EAAG,GAEhCo3B,EAAKkB,SAASt4B,EAAO,EAAG,EAAG,GAEtBo3B,CACT,CAEA+Q,mBAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,MxBkE1C7oC,EAAG,IyB9FE,cAA8B8mC,GACnCP,SAAW,GAEX,KAAAhiB,CAAMyiB,EAAYtX,EAAOnnB,GACvB,OAAQmnB,GACN,IAAK,IACH,OAAO8X,GAAoBL,GAAyBH,GACtD,IAAK,KACH,OAAOz+B,EAAM+2B,cAAc0H,EAAY,CAAEzE,KAAM,SACjD,QACE,OAAOoF,GAAajY,EAAMzvB,OAAQ+mC,GAExC,CAEA,QAAAd,CAAS/N,EAAOz3B,GACd,OAAOA,GAAS,GAAKA,GAAS,EAChC,CAEA,GAAAuH,CAAI6vB,EAAMkR,EAAQtoC,GAChB,MAAMuiC,EAAQviC,GAAS,GAAKA,EAAQ,GAAKA,EAEzC,OADAo3B,EAAKkB,SAASiK,EAAO,EAAG,EAAG,GACpBnL,CACT,CAEA+Q,mBAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MzBuEpD5mC,EAAG,I0B/FE,cAA2B6kC,GAChCP,SAAW,GAEX,KAAAhiB,CAAMyiB,EAAYtX,EAAOnnB,GACvB,OAAQmnB,GACN,IAAK,IACH,OAAO8X,GAAoBL,GAAwBH,GACrD,IAAK,KACH,OAAOz+B,EAAM+2B,cAAc0H,EAAY,CAAEzE,KAAM,WACjD,QACE,OAAOoF,GAAajY,EAAMzvB,OAAQ+mC,GAExC,CAEA,QAAAd,CAAS/N,EAAOz3B,GACd,OAAOA,GAAS,GAAKA,GAAS,EAChC,CAEA,GAAAuH,CAAI6vB,EAAMkR,EAAQtoC,GAEhB,OADAo3B,EAAK2R,WAAW/oC,EAAO,EAAG,GACnBo3B,CACT,CAEA+Q,mBAAqB,CAAC,IAAK,M1ByE3BpnC,EAAG,I2BhGE,cAA2BqlC,GAChCP,SAAW,GAEX,KAAAhiB,CAAMyiB,EAAYtX,EAAOnnB,GACvB,OAAQmnB,GACN,IAAK,IACH,OAAO8X,GAAoBL,GAAwBH,GACrD,IAAK,KACH,OAAOz+B,EAAM+2B,cAAc0H,EAAY,CAAEzE,KAAM,WACjD,QACE,OAAOoF,GAAajY,EAAMzvB,OAAQ+mC,GAExC,CAEA,QAAAd,CAAS/N,EAAOz3B,GACd,OAAOA,GAAS,GAAKA,GAAS,EAChC,CAEA,GAAAuH,CAAI6vB,EAAMkR,EAAQtoC,GAEhB,OADAo3B,EAAK4R,WAAWhpC,EAAO,GAChBo3B,CACT,CAEA+Q,mBAAqB,CAAC,IAAK,M3B0E3BnkC,EAAG,I4BlGE,cAAqCoiC,GAC1CP,SAAW,GAEX,KAAAhiB,CAAMyiB,EAAYtX,GAGhB,OAAO2X,GAASM,GAAajY,EAAMzvB,OAAQ+mC,IAFpBtmC,GACrBya,KAAKgnB,MAAMzhC,EAAQya,KAAKinB,IAAI,GAAoB,EAAf1S,EAAMzvB,UAE3C,CAEA,GAAAgI,CAAI6vB,EAAMkR,EAAQtoC,GAEhB,OADAo3B,EAAK6R,gBAAgBjpC,GACdo3B,CACT,CAEA+Q,mBAAqB,CAAC,IAAK,M5BqF3B79B,EAAG,I6B/FE,cAAqC87B,GAC1CP,SAAW,GAEX,KAAAhiB,CAAMyiB,EAAYtX,GAChB,OAAQA,GACN,IAAK,IACH,OAAO+X,GACLL,GACAJ,GAEJ,IAAK,KACH,OAAOS,GAAqBL,GAAwBJ,GACtD,IAAK,OACH,OAAOS,GACLL,GACAJ,GAEJ,IAAK,QACH,OAAOS,GACLL,GACAJ,GAGJ,QACE,OAAOS,GAAqBL,GAA2BJ,GAE7D,CAEA,GAAA/+B,CAAI6vB,EAAM0O,EAAO9lC,GACf,OAAI8lC,EAAMG,eAAuB7O,EAC1BD,GACLC,EACAA,EAAK4B,UAAYC,GAAgC7B,GAAQp3B,EAE7D,CAEAmoC,mBAAqB,CAAC,IAAK,IAAK,M7B4DhCvkC,EAAG,I8BhGE,cAAgCwiC,GACrCP,SAAW,GAEX,KAAAhiB,CAAMyiB,EAAYtX,GAChB,OAAQA,GACN,IAAK,IACH,OAAO+X,GACLL,GACAJ,GAEJ,IAAK,KACH,OAAOS,GAAqBL,GAAwBJ,GACtD,IAAK,OACH,OAAOS,GACLL,GACAJ,GAEJ,IAAK,QACH,OAAOS,GACLL,GACAJ,GAGJ,QACE,OAAOS,GAAqBL,GAA2BJ,GAE7D,CAEA,GAAA/+B,CAAI6vB,EAAM0O,EAAO9lC,GACf,OAAI8lC,EAAMG,eAAuB7O,EAC1BD,GACLC,EACAA,EAAK4B,UAAYC,GAAgC7B,GAAQp3B,EAE7D,CAEAmoC,mBAAqB,CAAC,IAAK,IAAK,M9B6DhCjpC,EAAG,I+BpGE,cAAqCknC,GAC1CP,SAAW,GAEX,KAAAhiB,CAAMyiB,GACJ,OAAOU,GAAqBV,EAC9B,CAEA,GAAA/+B,CAAI6vB,EAAMkR,EAAQtoC,GAChB,MAAO,CAACm3B,GAAcC,EAAc,IAARp3B,GAAe,CAAEimC,gBAAgB,GAC/D,CAEAkC,mBAAqB,K/B0FrBljC,EAAG,IgCrGE,cAA0CmhC,GAC/CP,SAAW,GAEX,KAAAhiB,CAAMyiB,GACJ,OAAOU,GAAqBV,EAC9B,CAEA,GAAA/+B,CAAI6vB,EAAMkR,EAAQtoC,GAChB,MAAO,CAACm3B,GAAcC,EAAMp3B,GAAQ,CAAEimC,gBAAgB,GACxD,CAEAkC,mBAAqB,MCiBjB/D,GACJ,wDAIIC,GAA6B,oCAE7BC,GAAsB,eACtBC,GAAoB,MAEpB2E,GAAsB,KACtB1E,GAAgC,WA4S/B,SAAS3gB,GAAMslB,EAAS1E,EAAW2E,EAAez5B,GACvD,MAAM05B,EAAc,IAAMlS,GAA6BiS,EAAezR,KAChEG,EC/TCn3B,OAAO0c,OAAO,CAAA,EAAIisB,MDgUnBpR,EAA4BJ,EAAeI,QAAUwM,GAErDxE,EAGJpI,EAAeoI,uBACfpI,EAAeI,QAAQvoB,SAASuwB,uBAChC,EAEIjI,EAGJH,EAAeG,cACfH,EAAeI,QAAQvoB,SAASsoB,cAChC,EAEF,IAAKwM,EACH,OAAO0E,EAAUE,IAAgBhS,GAAO+R,EAAez5B,GAAS+nB,IAElE,MAAM6R,EAAe,CACnBrJ,wBACAjI,eACAC,UAKIsR,EAAU,CAAC,IAAIzD,GAAmBp2B,GAAS+nB,GAAI0R,IAE/CK,EAAShF,EACZ58B,MAAMw8B,IACNl5B,KAAK9C,IACJ,MAAMw8B,EAAiBx8B,EAAU,GACjC,GAAIw8B,KAAkBvB,GAAgB,CAEpC,OAAOwB,EADexB,GAAeuB,IAChBx8B,EAAW6vB,EAAO8D,WACzC,CACA,OAAO3zB,CAAS,IAEjBC,KAAK,IACLT,MAAMu8B,IAEHsF,EAAa,GAEnB,IAAK,IAAI1a,KAASya,EAAQ,CAGtB3F,GAAyB9U,IAEzB+U,GAA0B/U,EAAOyV,EAAW0E,GAI5CtF,GAA0B7U,IAE1B+U,GAA0B/U,EAAOyV,EAAW0E,GAG9C,MAAMtE,EAAiB7V,EAAM,GACvB2a,EAASzB,GAAQrD,GACvB,GAAI8E,EAAQ,CACV,MAAMxB,mBAAEA,GAAuBwB,EAC/B,GAAIjqC,MAAMC,QAAQwoC,GAAqB,CACrC,MAAMyB,EAAoBF,EAAWzP,MAClC4P,GACC1B,EAAmB38B,SAASq+B,EAAU7a,QACtC6a,EAAU7a,QAAU6V,IAExB,GAAI+E,EACF,MAAM,IAAIzF,WACR,uCAAuCyF,EAAkBE,qBAAqB9a,uBAGpF,MAAO,GAAkC,MAA9B2a,EAAOxB,oBAA8BuB,EAAWnqC,OAAS,EAClE,MAAM,IAAI4kC,WACR,uCAAuCnV,4CAI3C0a,EAAW7nC,KAAK,CAAEmtB,MAAO6V,EAAgBiF,UAAW9a,IAEpD,MAAM+Q,EAAc4J,EAAOtD,IACzB8C,EACAna,EACAkJ,EAAOrwB,MACP0hC,GAGF,IAAKxJ,EACH,OAAOsJ,IAGTG,EAAQ3nC,KAAKk+B,EAAYwG,QAEzB4C,EAAUpJ,EAAY9B,IACxB,KAAO,CACL,GAAI4G,EAAeh9B,MAAM28B,IACvB,MAAM,IAAIL,WACR,iEACEU,EACA,KAYN,GAPc,OAAV7V,EACFA,EAAQ,IACoB,MAAnB6V,IACT7V,EAA2BA,EAqDpBnnB,MAAMy8B,IAAqB,GAAGx8B,QAAQy8B,GAAmB,MAjDnC,IAA3B4E,EAAQ/hC,QAAQ4nB,GAGlB,OAAOqa,IAFPF,EAAUA,EAAQ7iC,MAAM0oB,EAAMzvB,OAIlC,CACF,CAGA,GAAI4pC,EAAQ5pC,OAAS,GAAK2pC,GAAoBliC,KAAKmiC,GACjD,OAAOE,IAGT,MAAMU,EAAwBP,EAC3Br+B,KAAKo7B,GAAWA,EAAOV,WACvBz6B,MAAK,CAAC3K,EAAGoC,IAAMA,EAAIpC,IACnB6C,QAAO,CAACuiC,EAAU5F,EAAOtC,IAAUA,EAAMv2B,QAAQy+B,KAAc5F,IAC/D90B,KAAK06B,GACJ2D,EACGlmC,QAAQijC,GAAWA,EAAOV,WAAaA,IACvCz6B,MAAK,CAAC3K,EAAGoC,IAAMA,EAAE0iC,YAAc9kC,EAAE8kC,gBAErCp6B,KAAK6+B,GAAgBA,EAAY,KAEpC,IAAI5S,EAAOC,GAAO+R,EAAez5B,GAAS+nB,IAE1C,GAAIjyB,OAAO2xB,GAAO,OAAOiS,IAEzB,MAAMvD,EAAQ,CAAA,EACd,IAAK,MAAMS,KAAUwD,EAAuB,CAC1C,IAAKxD,EAAOf,SAASpO,EAAMmS,GACzB,OAAOF,IAGT,MAAMjL,EAASmI,EAAOh/B,IAAI6vB,EAAM0O,EAAOyD,GAEnC7pC,MAAMC,QAAQy+B,IAChBhH,EAAOgH,EAAO,GACdz9B,OAAO0c,OAAOyoB,EAAO1H,EAAO,KAG5BhH,EAAOgH,CAEX,CAEA,OAAOhH,CACT,CEpfc,MAAO6S,WAAkB5T,GACnC,WAAA30B,CAAYqL,EAAyB,CAAA,EAAI+C,EAAmBH,EAAsB,CAAA,GAC9E0lB,MAAMtoB,EAAY+C,EAAS,aAAcH,EAC7C,CAEA,OAAIwoB,GACA,OAAO/4B,KAAK+Q,aAAa,MAC7B,CAEA,YAAI+5B,GACA,OAAsC,OAA/B9qC,KAAK+Q,aAAa,UAAkD,OAA7B/Q,KAAK+Q,aAAa,MACpE,CAEA,aAAIg6B,GACA,MAAM53B,EAAQnT,KAAKgrC,kBACbC,EAAMjrC,KAAKkrC,gBAEjB,GAAc,OAAV/3B,GAA0B,OAAR83B,IAAiB9P,GAAQhoB,KAAWgoB,GAAQ8P,GAC9D,OAAO,EAGX,MAAMhS,EAAO5d,KAAKwmB,IAAI1uB,EAAMymB,UAAYqR,EAAIrR,WAG5C,OAFcve,KAAK+K,MAAM6S,EAAO,IAAO,IAAM,GAE9B,EACnB,CAEA,qBAAI+R,GACA,IAAKhrC,KAAKqS,aAAa,SACnB,OAAO,KAGX,MAAMc,EAAQnT,KAAK+Q,aAAa,SAChC,GAAqB,iBAAVoC,EACP,OAAO,KAEX,MAAMg4B,EAA8C,IAA5Bh4B,EAAMpK,MAAM,KAAK5I,OAGzC,OAAOskB,GAAMtR,EAFEg4B,EAAkB,WAAa,QAElB,IAAIx5B,KACpC,CAEA,mBAAIu5B,GACA,IAAKlrC,KAAKqS,aAAa,OACnB,OAAO,KAGX,MAAM44B,EAAMjrC,KAAK+Q,aAAa,OAC9B,GAAmB,iBAARk6B,EACP,OAAO,KAEX,MAAME,EAA4C,IAA1BF,EAAIliC,MAAM,KAAK5I,OAGvC,OAAOskB,GAAMwmB,EAFEE,EAAkB,WAAa,QAEpB,IAAIx5B,KAClC,CAEA,2BAAIy5B,GACA,MAAMj4B,EAAQnT,KAAKgrC,kBACbC,EAAMjrC,KAAKkrC,gBAEjB,OAAc,OAAV/3B,GAA0B,OAAR83B,GAAiB9P,GAAQhoB,IAAWgoB,GAAQ8P,GAI3D,GAAGtU,GAAOxjB,EAAO,UAAUwjB,GAAOsU,EAAK,OAHnC,GAAGjrC,KAAK+Q,aAAa,cAAc/Q,KAAK+Q,aAAa,QAIpE,CAEA,sBAAIs6B,GACA,OAAIrrC,KAAK8qC,SACE,SAGP9qC,KAAK+qC,UACE,WAGJ/qC,KAAKorC,uBAChB,CAGA,MAAA1nC,GACI,MAAM,IAAI0B,MAAM,8CACpB,CAGA,MAAA8L,GACI,MAAM,IAAI9L,MAAM,8CACpB,CAGA,OAAAgM,GACI,MAAM,IAAIhM,MAAM,+CACpB,CAGA,MAAAkmC,GACI,MAAM,IAAIlmC,MAAM,8CACpB,EAGJ8xB,EAAS,WAAY,YAAa2T,ICpGpB,MAAOU,WAAsBtU,GACvC,WAAA30B,CAAYqL,EAAyB,CAAA,EAAI+C,EAAmBH,EAAsB,CAAA,GAC9E0lB,MAAMtoB,EAAY+C,EAAS,iBAAkBH,EACjD,CAEA,YAAItB,GACA,OAAOjP,KAAK+Q,aAAa,+BAC7B,CAEA,aAAI7B,GACA,OAAOlP,KAAK+Q,aAAa,+BAC7B,CAEA,SAAIoyB,GACA,MAAMA,EAAQnjC,KAAK+Q,aAA2B,QAAS,IACvD,OAAO,IAAIy6B,IAAYrI,GAAS,IAAIp3B,KAAK4B,GAAe,IAAIk9B,GAAUl9B,EAAY3N,KAAK0Q,WAC3F,CAGA,aAAI+6B,GACA,MAAMC,EAAgB1rC,KAAK+Q,aAAa,cAClC46B,EAAc3rC,KAAK+Q,aAAa,SAEtC,OAAO26B,IAAkBC,GAAsC,iBAAhBA,EAA2BA,EAAc,KAC5F,CAGA,WAAIrU,GACA,MAAM3mB,EAAQ3Q,KAAK+Q,aAAa,SAE1B0K,EAAOzb,KAAKyrC,UAClB,MAAyB,iBAAV96B,EAAqBA,EAAQ8K,GAAMtK,IAAMsK,GAAMmwB,SAClE,CAGA,YAAIC,GACA,OAAO7rC,KAAKyrC,UAAYzgC,EAAO,WAAY,QAAShL,KAAKyrC,UAAWzrC,KAAK0Q,SAAW,IACxF,CAEA,gBAAIo7B,GACA,OAAO9rC,KAAKmjC,MAAMhjC,OAAS,GAAKH,KAAKmjC,MAAM/wB,OAAO25B,GAASA,GAAMhB,WACrE,CAEA,SAAIzN,GACA,MAAMA,EAAQ3G,GAAO,IAAIhlB,KAAQ,QAEjC,OAAO3R,KAAKgsC,SAAS1O,EACzB,CAEA,YAAI0O,GACA,MAAMA,EAAkD,CAAA,EAClDnJ,EAAO,CAAC,SAAU,UAAW,YAAa,WAAY,SAAU,WAAY,UAElF,IAAK,IAAIpiC,EAAI,EAAGA,EAAIoiC,EAAK1iC,OAAQM,IAAK,CAGlCurC,EAFYnJ,EAAKpiC,IAED,IAAI+qC,EACxB,CAEA,IAAK,IAAI/qC,EAAI,EAAGA,EAAIT,KAAKmjC,MAAMhjC,OAAQM,IAAK,CACxC,MAAMsrC,EAAO/rC,KAAKmjC,MAAM13B,SAAShL,GAE7BsrC,GAAQC,EAASD,EAAKhT,MACtBiT,EAASD,EAAKhT,KAAKrsB,WAAWq/B,EAEtC,CAEA,OAAOC,CACX,CAGA,MAAAtoC,GACI,MAAM,IAAI0B,MAAM,8CACpB,CAGA,MAAA8L,GACI,MAAM,IAAI9L,MAAM,8CACpB,CAGA,OAAAgM,GACI,MAAM,IAAIhM,MAAM,+CACpB,EAGJ8xB,EAAS,WAAY,gBAAiBqU,ICxFxB,MAAOU,WAAuBhV,GAChCrH,MAER,WAAAttB,CAAYqL,EAAyB,CAAA,EAAI+C,EAAmBH,EAAsB,CAAA,GAC9E0lB,MAAMtoB,EAAY+C,EAAS,kBAAmBH,EAClD,CAEA,QAAI1L,GACA,OAAO7E,KAAK+Q,aAAa,OAC7B,CAEA,QAAI0E,GACA,OAAOzV,KAAK+Q,aAAa,OAC7B,CAEA,iBAAIm7B,GACA,MAAqB,SAAdlsC,KAAK6E,IAChB,CAEA,mBAAIsnC,GACA,MAAqB,WAAdnsC,KAAK6E,IAChB,CAEA,iBAAIunC,GACA,MAAqB,SAAdpsC,KAAK6E,MAAiC,SAAd7E,KAAKyV,IACxC,CAEA,gBAAA42B,CAAiBzc,GACb5vB,KAAK4vB,MAAQA,CACjB,CAEA,gBAAA0c,GACI,OAAOtsC,KAAK4vB,KAChB,CAGA,UAAAve,GACI,MAAM,IAAIjM,MAAM,wDACpB,CAGA,MAAA1B,GACI,MAAM,IAAI0B,MAAM,oDACpB,CAGA,MAAA8L,GACI,MAAM,IAAI9L,MAAM,oDACpB,CAGA,OAAAgM,GACI,MAAM,IAAIhM,MAAM,qDACpB,CAGA,MAAAkmC,GACI,MAAM,IAAIlmC,MAAM,oDACpB,EAGJ8xB,EAAS,WAAY,iBAAkB+U,IC1DzB,MAAOjW,WAAciB,GAC/B,WAAA30B,CAAYqL,EAAyB,CAAA,EAAI+C,EAAmBH,EAAsB,CAAA,GAC9E0lB,MAAMtoB,EAAY+C,EAAS,QAASH,EACxC,CAEA,UAAAg8B,CAAWjjB,EAAqB,IAC5B,OAAOtpB,KAAK0Q,QAAQxI,IAAkB,UAAW,CAAEyI,MAAO3Q,KAAKmR,MAAOmY,IAAU5nB,MAAM8qC,GAC3E,IAAIhB,GAAWgB,EAAQzgC,KAAK4B,GAA2B,IAAI4pB,GAAO5pB,EAAY3N,KAAK0Q,aAElG,CAEA,OAAA+7B,CAAQnjB,EAAqB,IACzB,OAAOtpB,KAAK0Q,QAAQxI,IAAI,OAAQohB,EACpC,CAEA,YAAAojB,CAAapjB,EAAqB,IAC9B,OAAOtpB,KAAK0Q,QAAQxI,IAAkB,YAAa,CAAEyI,MAAO3Q,KAAKmR,MAAOmY,IAAU5nB,MAAMirC,GAC7E,IAAInB,GACPmB,EAAe5gC,KAAK4B,IACZA,EAAWJ,QACXI,EAAWJ,MAAQ,IAAIq/B,GAAMj/B,EAAWJ,MAAqBvN,KAAK0Q,UAG/D,IAAI66B,GAAc59B,EAAY3N,KAAK0Q,cAI1D,CAEA,WAAAm8B,CAAY17B,GACR,OAAOnR,KAAK0Q,QAAQxI,IAAgB,aAAaiJ,IAAM,CAAER,MAAO3Q,KAAKmR,KAAMzP,MAAMiM,GACtE,IAAI49B,GAAc59B,EAAY3N,KAAK0Q,UAElD,CAEA,kBAAAo8B,CAAmBxjB,EAAqB,IACpC,OAAOtpB,KAAK0Q,QAAQxI,IAAkB,WAAYohB,GAAQ5nB,MAAMqrC,GACrD,IAAIvB,GACPuB,EAAShhC,KAAK4B,GACH,IAAIs+B,GAAet+B,EAAY3N,KAAK0Q,aAI3D,CAEA,iBAAAs8B,CAAkB77B,GACd,OAAOnR,KAAK0Q,QAAQxI,IAAgB,YAAYiJ,KAAMzP,MAAMiM,GACjD,IAAIs+B,GAAet+B,EAAY3N,KAAK0Q,UAEnD,EAGJwmB,EAAS,WAAY,QAASlB,ICpDhB,MAAOiX,WAAgBhW,GACjC,WAAA30B,CAAYqL,EAAyB,CAAA,EAAI+C,EAAmBH,EAAsB,CAAA,GAC9E0lB,MAAMtoB,EAAY+C,EAAS,UAAWH,EAC1C,CAEA,QAAA28B,GACI,OAAOltC,KAAK+Q,aAAa,WAC7B,CAEA,MAAAo8B,GACI,OAAOntC,KAAK+Q,aAAa,mBAC7B,CAEA,MAAAq8B,GACI,OAAOptC,KAAK+Q,aAAa,WAAa,EAC1C,CAEA,MAAAs8B,GACI,OAAOrtC,KAAK+Q,aAAa,WAAa,EAC1C,CAEA,KAAAoyB,GACI,OAAOnjC,KAAK+Q,aAAa,UAAY,EACzC,CAEA,YAAIu8B,GACA,OAAOttC,KAAK+Q,aAAa,aAC7B,CAEA,eAAIw8B,GACA,OAAQvtC,KAAK+Q,aAAa,aAC9B,CAEA,mBAAIy8B,GACA,MAAMC,MAAEA,EAAKC,WAAEA,EAAUpX,SAAEA,GAAat2B,KAAKuR,cAAc,CAAC,QAAS,aAAc,aAMnF,OAAIvR,KAAKstC,SACD1W,GAAQ8W,IAAe9W,GAAQN,GACxB,KAGJF,GAAgBsX,EAAwB,IAAKpX,GAGpDM,GAAQ6W,IAAU7W,GAAQN,GACnB,KAGJF,GAAgBqX,EAAmB,IAAKnX,EACnD,CAEA,YAAIuV,GACA,MAAMl+B,EAAa3N,KAAK+Q,aAAa,SAErC,OAAOpD,GAAoC,iBAAfA,EAA0B,IAAIqoB,GAAMroB,EAA0B3N,KAAK0Q,SAAW,IAC9G,CAEA,UAAA67B,GACI,OAAOvsC,KAAK0Q,QAAQxI,IAAkB,UAAW,CAAEyI,MAAO3Q,KAAKmR,KAAMzP,MAAM8qC,GAChE,IAAIhB,GAAWgB,EAAQzgC,KAAK4B,GAA2B,IAAI4pB,GAAO5pB,EAAY3N,KAAK0Q,aAElG,EAGJwmB,EAAS,WAAY,UAAW+V,ICtElB,MAAOU,WAAiB1W,GAClC,WAAA30B,CAAYqL,EAAyB,CAAA,EAAI+C,EAAmBH,EAAsB,CAAA,GAC9E0lB,MAAMtoB,EAAY+C,EAAS,WAAYH,EAC3C,CAEA,WAAAq9B,GACI,OAAO5tC,KAAK0Q,QAAQxI,IAAkB,WAAY,CAAE2lC,SAAU7tC,KAAKmR,KAAMzP,MAAMosC,GACpE,IAAItC,GAAWsC,EAAS/hC,KAAK4B,GAA2B,IAAIs/B,GAAQt/B,EAAY3N,KAAK0Q,aAEpG,EAGJwmB,EAAS,WAAY,WAAYyW,ICX1B,MAAMI,GAAkB,IAAI3W,GAAa,CAE5C/hB,MAAO,SAAiCC,EAAkBC,EAA0B,KAAM5H,EAAyB,CAAA,GAE/G,GCVF,SAAkBgH,EAAQ,IAC5B,MAAO,gDAAgD/M,KAAK+M,EAChE,CDQYq5B,CAAQ14B,GACR,OAAOtV,KAAK0Q,QAAQiC,KAAK,2BAA4B,CAAEgC,MAAOW,IAGlE,IAAKC,EACD,MAAM,IAAInQ,MAAM,4BAGpB,OAAOpF,KAAK0Q,QAAQiC,KAAiB,kBAAmB,CAAE2C,WAAUC,cAAa5H,IAAcjM,KAAK1B,KAAKyS,WAAW/P,KAAK1C,MAC7H,EAGAiuC,eAAgB,SAAiCC,EAAqBC,EAAuBC,EAA2BC,EAAe7nC,EAAcmH,EAAyB,IAC1K,OAAO3N,KAAK0Q,QAAQiC,KAAiB,6BAA8B,CAAEu7B,cAAaC,gBAAeC,oBAAmBC,QAAO7nC,UAASmH,IAAcjM,KAAK1B,KAAKyS,WAAW/P,KAAK1C,MAChL,EAGAsuC,kBAAmB,SAAiCC,EAAwBF,EAAe7nC,EAAcgoC,EAAmB7gC,EAAyB,IACjJ,OAAO3N,KAAK0Q,QAAQiC,KAAiB,gCAAiC,CAAE47B,iBAAgBF,QAAO7nC,OAAMgoC,eAAc7gC,IAAcjM,KAAK1B,KAAKyS,WAAW/P,KAAK1C,MAC/J,EAGAyuC,gBAAiB,SAAiCC,EAAiBC,EAAkBhhC,EAAyB,CAAA,GAC1G,OAAO3N,KAAK0Q,QAAQiC,KAAiB,8BAA+B,CAAE+7B,UAASC,cAAahhC,IAAcjM,KAAK1B,KAAKyS,WAAW/P,KAAK1C,MACxI,EAEAwV,WAAY,SAAiCF,EAAkBG,EAAc9H,EAAyB,CAAA,GAClG,OAAO3N,KAAK0Q,QAAQiC,KAAiB,wBAAyB,CAAE2C,WAAUG,UAAS9H,IAAcjM,KAAK1B,KAAKyS,WAAW/P,KAAK1C,MAC/H,EAEA,mBAAA4uC,CAA2Ct5B,EAAkB+B,EAAO,SAChE,OAAOrX,KAAK0Q,QAAQiC,KAAK,kCAAmC,CACxD2C,WACA+B,QAER,EAEA,MAAA3T,CAA8B4R,EAAkBG,EAAc9H,EAAyB,CAAA,GACnF,OAAO3N,KAAK0Q,QAAQiC,KAAiB,YAAa,CAAE2C,WAAUG,UAAS9H,IAAcjM,KAAK1B,KAAKyS,WAAW/P,KAAK1C,MACnH,EAEA8V,SAAU,SAAiC3E,GACvC,OAAQnR,KAAmCqR,WAAWF,EAC1D,IAGU,MAAO09B,WAAiB5X,GAClC,WAAA30B,CAAYqL,EAAyB,CAAA,EAAI+C,EAAmBH,EAAsB,CAAA,GAC9E0lB,MAAMtoB,EAAY+C,EAAS,WAAY,CACnC/F,QAASojC,MACNx9B,GAEX,CAQA,UAAAE,CAAWC,GAOP,OANA1Q,KAAK0Q,QAAUA,EACf1Q,KAAK2Q,MAAQ,IAAIolB,GAAgB/1B,KAAKsQ,SAAUI,EAAS,CACrDG,aAAc7Q,KAAK8Q,eAAepO,KAAK1C,MACvC2K,QAAS3K,KAAKuQ,SAAS5F,UAGpB3K,IACX,CAEA,SAAI4vB,GACA,MAAMA,EAAQ5vB,KAAK+Q,aAAa,SAChC,MAAwB,iBAAV6e,EAAqBA,OAAQkf,CAC/C,CAEA,gBAAM/4B,CAAW6Z,EAAemf,GAC5B,OAAO/uC,KAAKgvC,yBAAyB,4BAA6B,CAAEpf,QAAOmf,YAAY,OAC3F,CAEA,wBAAAC,CAAsCC,EAAkB3lB,EAAqB,CAAA,EAAIjkB,EAAS,MAAOkL,EAA0B,IACvH,MAAM2+B,EAAiC,IAChC3+B,EACHmG,QAAS,IACFnG,EAAQmG,QACX,iBAAkB1W,KAAK4vB,QAK/B,OADgB5vB,KAAK0Q,QACNrL,EAAOmD,eAAgBymC,EAAU3lB,EAAQ4lB,EAC5D,CAEA,oBAAMC,GACF,MAAM7Z,QAAet1B,KAAKgvC,yBAAuC,oBACjE,OAAO,IAAIxD,GAAWlW,EAAOvpB,KAAK4B,GAA2B,IAAIi/B,GAAMj/B,EAAY3N,KAAK0Q,WAC5F,CAEA,qBAAM0+B,CAAgB9lB,EAAqB,IACvC,MAAM+L,QAAer1B,KAAKgvC,yBAAuC,mBAAoB1lB,GACrF,OAAO,IAAIkiB,GAAWnW,EAAOtpB,KAAK4B,GAA2B,IAAI0hC,GAAM1hC,EAAY3N,KAAK0Q,WAC5F,CAEA,qBAAA4+B,CAAsBhmB,EAAqB,IACvC,OAAOtpB,KAAKgvC,yBAAyB,iCAAkC1lB,EAAQ,OACnF,CAEA,oBAAAimB,CAAqBjmB,EAAqB,IACtC,OAAOtpB,KAAKgvC,yBAAyB,gCAAiC1lB,EAAQ,OAClF,CAEA,mBAAAkmB,CAAoBlmB,EAAqB,GAAI/Y,EAA0B,CAAA,GACnE,OAAOvQ,KAAKgvC,yBAAyB,4BAA6B1lB,EAAQ,OAAQ/Y,EACtF,CAEA,qBAAAk/B,CAAsBh6B,EAAc6T,EAAqB,CAAA,EAAI/Y,EAA0B,CAAA,GACnF,OAAOvQ,KAAKgvC,yBAAyB,oCAAqC,CAAEv5B,UAAS6T,GAAU,OAAQ/Y,EAC3G,CAEA,wBAAAm/B,CAAyB/6B,EAAe2U,EAAqB,CAAA,EAAI/Y,EAA0B,CAAA,GACvF,OAAOvQ,KAAKgvC,yBAAyB,uCAAwC,CAAEr6B,WAAU2U,GAAU,OAAQ/Y,EAC/G,CAEA,iBAAAo/B,CAAkBl6B,EAAcd,EAAe2U,EAAqB,CAAA,EAAI/Y,EAA0B,IAC9F,OAAOvQ,KAAKgvC,yBAAyB,gCAAiC,CAAEv5B,OAAMd,WAAU2U,GAAU,OAAQ/Y,EAC9G,CAEA,kBAAAq/B,CAAmBjiC,EAAyB,GAAI4C,EAA0B,CAAA,GACtE,OAAOvQ,KAAKgvC,yBAAqC,YAAYhvC,KAAKmR,KAAMxD,EAAY,MAAO4C,GAAS7O,MAAMue,IACtGjgB,KAAK8Q,eAAemP,GACbjgB,OAEf,EAGJk3B,EAAS,WAAY,WAAY2X,IE1IjC,MAAMtuC,QAAEA,IAAYD,MAEPuvC,GAAc,IAAIzY,GAAa,CACxC1zB,YAAQorC,EACRgB,aAAShB,EACTiB,WAAOjB,EACPkB,iBAAalB,EAEb3iC,IAAK,SAAiCgF,EAAY8+B,EAAmBC,EAAW,EAAGz0B,EAAmB,CAAA,EAAIlL,EAA0B,IAChI,OAAOvQ,KAAK0Q,QAAQiC,KAAW,GAAG3S,KAAKuS,aAAapB,KAAM8+B,IAAa,IAAKx0B,EAAMy0B,YAAY3/B,GAAS7O,KAAK1B,KAAKyS,WAAW/P,KAAK1C,MACrI,EAEAkR,OAAQ,SAAiCC,EAAYg/B,EAAoBD,EAAkBz0B,EAAmB,CAAA,EAAIlL,EAA0B,IACxI,OAAOvQ,KAAK0Q,QAAQkC,IAAU,GAAG5S,KAAKuS,aAAapB,KAAMg/B,IAAc,IAAK10B,EAAMy0B,YAAY3/B,GAAS7O,KAAK1B,KAAKyS,WAAW/P,KAAK1C,MACrI,EAEA+nB,OAAQ,SAAiC5W,EAAYg/B,EAAoB5/B,EAA0B,CAAA,GAC/F,OAAOvQ,KAAK0Q,QAAQoC,OAAa,GAAG9S,KAAKuS,aAAapB,KAAMg/B,IAAc,CAAA,EAAI5/B,GAAS7O,KAAK1B,KAAKyS,WAAW/P,KAAK1C,MACrH,EAEAowC,MAAO,SAAiCj/B,EAAYZ,EAA0B,IAC1E,OAAOvQ,KAAK0Q,QAAQkC,IAAU,GAAG5S,KAAKuS,aAAapB,UAAY,CAAA,EAAIZ,GAAS7O,KAAK1B,KAAKyS,WAAW/P,KAAK1C,MAC1G,EAEA8V,SAAU,SAAiC3E,EAAK,IAC5C,OAAQnR,KAA+BqR,WAAWF,EACtD,IAGU,MAAOk/B,WAAapZ,GAC9B,WAAA30B,CAAYqL,EAAyB,CAAA,EAAI+C,EAAmBH,EAAsB,CAAA,GAC9E0lB,MAAMtoB,EAAY+C,EAAS,OAAQ,CAAE/F,QAASklC,MAAgBt/B,GAClE,CAEA,GAAApE,CAAI8jC,EAA6BC,EAAW,EAAGz0B,EAAmB,CAAA,EAAIlL,EAA0B,IAK5F,OAJI0/B,aAAqBhD,KACrBgD,EAAYA,EAAU9+B,IAGnBnR,KAAK2Q,MAAMxE,IAAInM,KAAKmR,GAAI8+B,EAAWC,EAAUz0B,EAAMlL,EAC9D,CAEA,MAAAW,CAAOi/B,EAAoBD,EAAkBz0B,EAAmB,CAAA,EAAIlL,EAA0B,IAE1F,OADevQ,KAAK2Q,MAAMO,OACZ9P,KAAKpB,KAAK2Q,MAAO3Q,KAAKmR,GAAIg/B,EAAYD,EAAUz0B,EAAMlL,EACxE,CAEA,MAAAwX,CAAOooB,EAAoB5/B,EAA0B,IACjD,OAAOvQ,KAAK2Q,MAAMoX,OAAO/nB,KAAKmR,GAAIg/B,EAAY5/B,EAClD,CAEA,KAAA6/B,CAAM7/B,EAA0B,IAC5B,OAAOvQ,KAAK2Q,MAAMy/B,MAAMpwC,KAAKmR,GAAIZ,EACrC,CAEA,SACI,OAAOvQ,KAAKoR,SAChB,CAEA,OAAAk/B,GACI,OAAOtwC,KAAK2Q,MAAMmF,SAAS9V,KAAKmR,GACpC,CAEA,QAAAo/B,GACI,OAAOvwC,KAAKwwC,WAAW1iC,QAAO,CAACyiC,EAAUE,IAAaF,EAAWtxB,OAAOwxB,GAAUF,UAAY,IAAI,EACtG,CAEA,QAAAC,GACI,MAAME,EAAQ1wC,KAAK+Q,aAAa,QAAS,IACzC,OAAOxQ,GAAQmwC,GAAUA,EAAyB,EACtD,CAEA,UAAAC,CAAWV,GACP,OAAsF,IAA/EjwC,KAAKwwC,WAAW/R,WAAWgS,GAAaA,EAASG,aAAeX,GAC3E,CAEA,WAAIrZ,GACA,OAAkC,IAA3B52B,KAAKwwC,WAAWrwC,MAC3B,CAEA,cAAI0wC,GACA,OAAQ7wC,KAAK42B,OACjB,EAGJM,EAAS,WAAY,OAAQmZ,ICjFf,MAAOS,WAAgB7Z,GACjC,WAAA30B,CAAYqL,EAAyB,CAAA,EAAI+C,EAAmBH,EAAsB,CAAA,GAC9E0lB,MAAMtoB,EAAY+C,EAAS,UAAWH,EAC1C,CAEA,OAAAk8B,CAAQnjB,EAAqB,IACzB,OAAOtpB,KAAK0Q,QAAQxI,IAAI,OAAQohB,EACpC,CAEA,2BAAMynB,CAAyB9B,EAAkB+B,EAAuC1nB,EAAqB,CAAA,GACzG,MAAM9e,QAAkBxK,KAAK0Q,QAAQxI,IAAkB+mC,EAAU3lB,GACjE,OAAO,IAAIkiB,GAAWhhC,EAAUuB,KAAK4B,GAA2B,IAAIqjC,EAAcrjC,EAAY3N,KAAK0Q,WACvG,CAEA,eAAMugC,CAAU3nB,EAAqB,IACjC,OAAOtpB,KAAK+wC,sBAAsB,SAAU/a,GAAO1M,EACvD,CAEA,uBAAM4nB,CAAkB5nB,EAAqB,IACzC,OAAOtpB,KAAK+wC,sBAAsB,kBAAmBxF,GAAejiB,EACxE,CAEA,mBAAM6nB,CAAc7nB,EAAqB,IACrC,OAAOtpB,KAAK+wC,sBAAsB,aAAcpD,GAAUrkB,EAC9D,CAEA,YAAMpc,CAAO6iC,EAAezmB,EAAqB,IAC7C,OAAOtpB,KAAK+wC,sBAAsB,SAAU9D,GAAS,CAAE8C,QAAOqB,YAAY,KAAS9nB,GACvF,CAEA,iBAAM+nB,CAAYlgC,GACd,MAAMxD,QAAmB3N,KAAK0Q,QAAQxI,IAAgB,UAAUiJ,KAChE,OAAO,IAAI6kB,GAAMroB,EAAY3N,KAAK0Q,QACtC,CAEA,gBAAM67B,CAAWjV,EAAiBhO,EAAqB,IACnD,OAAOtpB,KAAK+wC,sBAAsB,UAAWxZ,GAAQ,CAAE5mB,MAAO2mB,KAAYhO,GAC9E,CAEA,wBAAMwjB,CAAmBxjB,EAAqB,IAC1C,OAAOtpB,KAAK+wC,sBAAsB,WAAY9E,GAAgB3iB,EAClE,EAGJ4N,EAAS,WAAY,UAAW4Z,ICjDlB,MAAOQ,WAA6BC,GAC9C,WAAAjvC,CAAYqL,EAAmC,CAAA,EAAI+C,EAAmBH,EAAsB,CAAA,GACxF,IAAIihC,EAA8B7jC,EAC9B8jC,EAAoC/gC,GAGpC/C,aAAsB+jC,IAAY/jC,GAAwC,mBAAnBA,EAAWzF,KAAiD,mBAApByF,EAAWgF,QAC1G6+B,EAAkB,CAAA,EAClBC,EAAe9jC,GAInBsoB,MAAMub,EAAiBC,EAAc,gBAAiBlhC,EAC1D,CAQA,UAAAE,CAAWC,GAOP,OANA1Q,KAAK0Q,QAAUA,EACf1Q,KAAK2Q,MAAQ,IAAIolB,GAAgB/1B,KAAKsQ,SAAUI,EAAS,CACrDG,aAAc7Q,KAAK8Q,eAAepO,KAAK1C,MACvC2K,QAAS3K,KAAKuQ,SAAS5F,UAGpB3K,IACX,CAEA,mBAAIwtC,GACA,MAAMnX,OAAEA,EAAMC,SAAEA,GAAat2B,KAAKuR,cAAc,CAAC,SAAU,aAE3D,OAAIqlB,GAAQP,IAAWO,GAAQN,GACpB,KAGJF,GAAgBC,EAAoB,IAAKC,EACpD,CAEA,cAAMqb,IAAYnV,GACd,OAAOx8B,KAAK4xC,8BAA8BpV,EAC9C,CAEA,gCAAMoV,CAA2B7tB,EAA8B8tB,EAAmCC,EAA4B9xB,EAAS,aAAcqU,GAAM,GACjI,iBAAXtQ,GAAuBA,GAAQ5S,KACtC4S,EAASA,EAAO5S,IAGO,iBAAhB0gC,GAA4BA,GAAa1gC,KAChD0gC,EAAcA,EAAY1gC,IAGV,iBAAT2gC,GAAqBA,GAAM3gC,KAClC2gC,EAAOA,EAAK3gC,IAGhB,MAAM4gC,QAAsB/xC,KAAK0Q,QAAQxI,IAA+B,2BAA4B,CAChG6b,SACA8tB,cACAC,OACA9xB,SACAqU,QAGJ,OCvEgBzzB,EDuEJmxC,ECtETzxC,MAAMC,QAAQK,GDuEN,IAAI4qC,GAAWuG,EAAchmC,KAAKimC,GAA6B,IAAIV,GAAqBU,EAAchyC,KAAK0Q,YAG/G,IAAI4gC,GAAqBS,EAAe/xC,KAAK0Q,SC3EtD,IAAkB9P,CD4EpB,CAEA,wBAAaqxC,CAAYvhC,EAAkBqT,EAA8B8tB,EAAmCC,EAA4B9xB,EAAS,aAAcqU,GAAM,GAEjK,OADc,IAAIid,GAAqB5gC,GAC1BkhC,2BAA2B7tB,EAAQ8tB,EAAaC,EAAM9xB,EAAQqU,EAC/E,EAGJ6C,EAAS,WAAY,uBAAwBoa,IEjF/B,MAAOjC,WAAc6C,GAC/B,WAAA5vC,CAAYqL,EAAyB,CAAA,EAAI+C,EAAmBH,EAAsB,CAAA,GAC9E0lB,MAAMtoB,EAAY+C,EAASH,EAC/B,EAGJ2mB,EAAS,WAAY,QAASmY,ICHvB,MAAM8C,GAAkB,IAAI/a,GAAa,CAC5C1zB,YAAQorC,EACRgB,aAAShB,EACTiB,WAAOjB,EACPkB,iBAAalB,EAEbsD,WAAY,SAERC,EACAP,EACAE,EACAM,EACAC,EAA2B,CAAA,EAC3BhiC,EAA0B,IAkB1B,OAhBIiiC,GAAWH,KACXA,EAAWA,EAASlhC,IAGpBqhC,GAAWV,KACXA,EAAOA,EAAK3gC,IAGZqhC,GAAWR,KACXA,EAAeA,EAAa7gC,IAG5BqhC,GAAWF,KACXA,EAAUA,EAAQvhC,aAAa,SAG5B/Q,KAAK0Q,QAAQxI,IAAI,GAAGlI,KAAKuS,mBAAoB,IAAKggC,EAAcF,WAAUP,OAAME,eAAcM,WAAW/hC,EACpH,EAEAkiC,aAAc,SAAiC7iB,EAAetG,EAAqB,CAAA,EAAI/Y,EAA0B,CAAA,GAC7G,OAAOvQ,KAAK0Q,QAAQiC,KAAiB,GAAG3S,KAAKuS,oBAAqB,CAAEqd,WAAUtG,GAAU/Y,GAAS7O,MAAMgxC,GAAc,IAAIrD,GAAMqD,EAAW1yC,KAAK0Q,UACnJ,EAEAiiC,wBAAyB,SAAiCN,EAA8B/oB,EAAqB,CAAA,EAAI/Y,EAA0B,CAAA,GAKvI,OAJIiiC,GAAWH,KACXA,EAAWA,EAASlhC,IAGjBnR,KAAK0Q,QAAQiC,KAAK,GAAG3S,KAAKuS,gCAAiC,CAAE8/B,cAAa/oB,GAAU/Y,EAC/F,EAEAqiC,0BAA2B,SAEvBC,EACAR,EACAP,EACAE,EACAO,EAA2B,CAAA,EAC3BhiC,EAA0B,IAc1B,OAZIiiC,GAAWH,KACXA,EAAWA,EAASlhC,IAGpBqhC,GAAWV,KACXA,EAAOA,EAAK3gC,IAGZqhC,GAAWR,KACXA,EAAeA,EAAa7gC,IAGzBnR,KAAK0Q,QAAQkC,IAAI,GAAG5S,KAAKuS,yCAA0C,CAAEsgC,gBAAeR,WAAUP,OAAME,kBAAiBO,GAAgBhiC,EAChJ,EAEAuiC,UAAW,SAAiCC,EAA8BnjB,EAAerf,EAA0B,CAAA,GAK/G,OAJIiiC,GAAWO,KACXA,EAAWA,EAAS5hC,IAGjBnR,KAAK0Q,QAAQxI,IAAI,GAAGlI,KAAKuS,mBAAoB,CAAEwgC,WAAUnjB,SAASrf,EAC7E,EAEAyiC,YAAa,SAAiCD,EAA8BzpB,EAAqB,CAAA,EAAI/Y,EAA0B,CAAA,GAK3H,OAJIiiC,GAAWO,KACXA,EAAWA,EAAS5hC,IAGjBnR,KAAK0Q,QAAQiC,KAAK,GAAG3S,KAAKuS,yBAA0B,CAAEwgC,cAAazpB,GAAU/Y,EACxF,EAEA0iC,oBAAqB,SAAiCF,EAA8BzpB,EAAqB,CAAA,EAAI/Y,EAA0B,CAAA,GAKnI,OAJIiiC,GAAWO,KACXA,EAAWA,EAAS5hC,IAGjBnR,KAAK0Q,QAAQxI,IAAI,GAAGlI,KAAKuS,yBAA0B,CAAEwgC,cAAazpB,GAAU/Y,EACvF,IAGU,MAAO2iC,WAAiBjc,GAClC,WAAA30B,CAAYqL,EAAyB,CAAA,EAAI+C,EAAmBH,EAAsB,CAAA,GAC9E0lB,MAAMtoB,EAAY+C,EAAS,WAAY,CAAE/F,QAASwnC,MAAoB5hC,GAC1E,CAEA,UAAA6hC,CACIC,EACAP,EACAE,EACAM,EACAC,EAA2B,CAAA,EAC3BhiC,EAA0B,IAE1B,OAAOvQ,KAAK2Q,MAAMyhC,WAAWC,EAAUP,EAAME,EAAcM,EAASC,EAAchiC,EACtF,CAEA,YAAAkiC,CAAa7iB,EAAetG,EAAqB,CAAA,EAAI/Y,EAA0B,CAAA,GAC3E,OAAOvQ,KAAK2Q,MAAM8hC,aAAa7iB,EAAOtG,EAAQ/Y,EAClD,CAEA,uBAAAoiC,CAAwBN,EAA8B/oB,EAAqB,CAAA,EAAI/Y,EAA0B,CAAA,GACrG,OAAOvQ,KAAK2Q,MAAMgiC,wBAAwBN,EAAU/oB,EAAQ/Y,EAChE,CAEA,yBAAAqiC,CACIC,EACAR,EACAP,EACAE,EACAO,EAA2B,CAAA,EAC3BhiC,EAA0B,IAE1B,OAAOvQ,KAAK2Q,MAAMiiC,0BAA0BC,EAAeR,EAAUP,EAAME,EAAcO,EAAchiC,EAC3G,CAEA,SAAAuiC,CAAUC,EAA8BnjB,EAAerf,EAA0B,CAAA,GAC7E,OAAOvQ,KAAK2Q,MAAMmiC,UAAUC,EAAUnjB,EAAOrf,EACjD,CAEA,WAAAyiC,CAAYD,EAA8BzpB,EAAqB,CAAA,EAAI/Y,EAA0B,CAAA,GACzF,OAAOvQ,KAAK2Q,MAAMqiC,YAAYD,EAAUzpB,EAAQ/Y,EACpD,CAEA,mBAAA0iC,CAAoBF,EAA8BzpB,EAAqB,CAAA,EAAI/Y,EAA0B,CAAA,GACjG,OAAOvQ,KAAK2Q,MAAMsiC,oBAAoBF,EAAUzpB,EAAQ/Y,EAC5D,EAGJ2mB,EAAS,WAAY,WAAYgc,ICjJnB,MAAOC,WAAkBlc,GACnC,WAAA30B,CAAYqL,EAAyB,CAAA,EAAI+C,EAAmBH,EAAsB,CAAA,GAC9E0lB,MAAMtoB,EAAY+C,EAAS,aAAcH,EAC7C,ECHJ,SAAS6iC,GAAMxyC,GACX,OAAO4xC,GAAW5xC,GAASA,EAAMuQ,GAAKvQ,CAC1C,CDIAs2B,EAAS,WAAY,YAAaic,ICF3B,MAAME,GAAe,IAAIjc,GAAa,CACzC1zB,YAAQorC,EACR59B,YAAQ49B,EACRgB,aAAShB,EACTiB,WAAOjB,EACPkB,iBAAalB,EAEbwE,eAAgB,SAAiCC,EAA0BjqB,EAAqB,CAAA,EAAI/Y,EAA0B,CAAA,GAC1H,OAAOvQ,KAAK0Q,QAAQkC,IAAI,GAAG5S,KAAKuS,sBAAuB,CAAEghC,MAAOH,GAAMG,MAAWjqB,GAAU/Y,EAC/F,EAEAijC,WAAY,SAAiCD,EAA0BjqB,EAAqB,CAAA,EAAI/Y,EAA0B,CAAA,GACtH,OAAOvQ,KAAK0Q,QAAQiC,KAAK,GAAG3S,KAAKuS,oBAAqB,CAAEghC,MAAOH,GAAMG,MAAWjqB,GAAU/Y,EAC9F,ICsDU,MAAOkjC,GACjBjjC,QACAD,QACAG,QACAo9B,SACA4F,WACAC,WACAnH,QACAoH,UACA9B,KACAiB,SACA1d,OAUA,WAAA/yB,CAAYuxC,EAAkB7zB,EAA2B,CAAA,EAAImV,GAAQ,GAUjE,GATAn1B,KAAKwQ,QAAUwP,EAAOxP,SAAW,KACjCxQ,KAAKuQ,QAAU,CACXC,QAASxQ,KAAKwQ,QACdiG,KAAMuJ,EAAOvJ,MAAQ,2BACrBlE,UAAWyN,EAAOzN,WAAa,cAAcvS,KAAKwQ,UAClDsG,UAAW+8B,EACX1e,WCtGc,iBADCjyB,ED0GH2wC,ICzGc3wC,EAAI/C,OAAS,KAAO+C,EAAIkyB,WAAW,WAAalyB,EAAIkyB,WAAW,cD0GzF,MAAM,IAAIhwB,MAAM,qDC3GtB,IAAqBlC,ED8GnBlD,KAAK0Q,QAAUsP,EAAOtP,SAAWojC,GAAc9zC,KAAKuQ,SAEpDvQ,KAAK+zC,kBACT,CAEA,gBAAAA,GAUI,OATA/zC,KAAK8tC,SAAW,IAAI/X,GAAyB,UAAW/1B,KAAK0Q,SAC7D1Q,KAAK0zC,WAAa,IAAI3d,GAA0B,WAAY/1B,KAAK0Q,SACjE1Q,KAAK2zC,WAAa,IAAI5d,GAA2B,aAAc/1B,KAAK0Q,SACpE1Q,KAAKwsC,QAAU,IAAIzW,GAAwB,SAAU/1B,KAAK0Q,SAASb,cAAcsnB,IACjFn3B,KAAK4zC,UAAY,IAAI7d,GAA0B,WAAY/1B,KAAK0Q,SAASb,cAAck+B,IACvF/tC,KAAK8xC,KAAO,IAAI/b,GAAsB,OAAQ/1B,KAAK0Q,SAASb,cAAcggC,IAC1E7vC,KAAK+yC,SAAW,IAAIhd,GAA0B,WAAY/1B,KAAK0Q,SAASb,cAAcsiC,IACtFnyC,KAAKq1B,OAAS,IAAIU,GAAuB,QAAS/1B,KAAK0Q,SAASb,cAAcwjC,IAEvErzC,IACX,CAQA,KAAAg0C,CAAMzjC,EAAkC,IACpC,OAAOvQ,KAAK0Q,QAAQxI,IAAgB,SAASxG,MAAMiM,GAAgB4C,EAAQD,SAAWtQ,KAAKi0C,aAAatmC,GAAcA,GAC1H,CAGA,QAAAumC,GACI,OAAOl0C,KAAKg0C,MAAM,CAAE1jC,UAAU,GAClC,CASA,MAAAtF,CAAOmG,EAAYZ,EAAkC,IACjD,OAAOvQ,KAAK0Q,QAAQxI,IAAgB,UAAUiJ,KAAMzP,MAAMiM,GAAgB4C,EAAQD,SAAWtQ,KAAKi0C,aAAatmC,GAAcA,GACjI,CAMA,cAAAwmC,CAAehjC,GACX,OAAOnR,KAAKgL,OAAOmG,EAAI,CAAEb,UAAU,GACvC,CASA,MAAApD,CAAO6iC,EAAex/B,EAAsB,IACxC,OAAOvQ,KAAK0Q,QAAQxI,IAAkB,SAAU,CAAE6nC,WAAUx/B,IAAW7O,MAAMosC,GAClE,IAAItC,GAAWsC,EAAS/hC,KAAKsB,GAAwB,IAAI4/B,GAAQ5/B,EAASrN,KAAK0Q,aAE9F,CAEA,YAAAujC,CAAatmC,EAAyB,IAClC,OAA+B,IAA3BA,GAAYymC,WACL,IAAItD,GAAQnjC,EAAY3N,KAAK0Q,SAGjC,IAAIslB,GAAMroB,EAAY3N,KAAK0Q,QACtC,CAEA,kBAAO2jC,IAAe7X,GAClB,OAAO,IAAIiX,MAAcjX,EAC7B,CAEA,UAAA/rB,CAAWC,GAGP,OAFA1Q,KAAK0Q,QAAUA,EAER1Q,KAAK+zC,kBAChB,CAEA,UAAApf,GACI,OAAO30B,KAAK0Q,OAChB","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/storefront.cjs b/dist/cjs/storefront.cjs index bb5d362..cb74dac 100644 --- a/dist/cjs/storefront.cjs +++ b/dist/cjs/storefront.cjs @@ -2,17 +2,18 @@ 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() { - super(...arguments); + 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); } @@ -28,5936 +29,372 @@ function formatCurrency(amount = 0, currency = 'USD', currencyDisplay = 'symbol' 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.size === 'number') { - return !obj.size; - } - - if (typeof obj.length === 'number' && objectType !== 'function') { - return !obj.length; - } - - return false; -} - -const { isArray: isArray$1 } = Array; - -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 = undefined, options = {}) { - super(attributes, adapter, 'review', options); - } - - getMedia() { - return this.getPhotos(); - } - - getPhotos() { - return this.getAttribute('photos') ?? []; - } - - getVideos() { - return this.getMedia().filter((media) => media?.type?.startsWith('video/')); - } -} - -q('resource', 'Review', Review); - -/** - * @module constants - * @summary Useful constants - * @description - * Collection of useful date constants. - * - * The constants could be imported from `date-fns/constants`: - * - * ```ts - * import { maxTime, minTime } from "./constants/date-fns/constants"; - * - * function isAllowedTime(time) { - * return time <= maxTime && time >= minTime; - * } - * ``` - */ - - -/** - * @constant - * @name millisecondsInWeek - * @summary Milliseconds in 1 week. - */ -const millisecondsInWeek = 604800000; - -/** - * @constant - * @name millisecondsInDay - * @summary Milliseconds in 1 day. - */ -const millisecondsInDay = 86400000; - -/** - * @constant - * @name millisecondsInMinute - * @summary Milliseconds in 1 minute - */ -const millisecondsInMinute = 60000; - -/** - * @constant - * @name millisecondsInHour - * @summary Milliseconds in 1 hour - */ -const millisecondsInHour = 3600000; - -/** - * @constant - * @name millisecondsInSecond - * @summary Milliseconds in 1 second - */ -const millisecondsInSecond = 1000; - -/** - * @constant - * @name constructFromSymbol - * @summary Symbol enabling Date extensions to inherit properties from the reference date. - * - * The symbol is used to enable the `constructFrom` function to construct a date - * using a reference date and a value. It allows to transfer extra properties - * from the reference date to the new date. It's useful for extensions like - * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as - * a constructor argument. - */ -const constructFromSymbol = Symbol.for("constructDateFrom"); - -/** - * @name constructFrom - * @category Generic Helpers - * @summary Constructs a date using the reference date and the value - * - * @description - * The function constructs a new date using the constructor from the reference - * date and the given value. It helps to build generic functions that accept - * date extensions. - * - * It defaults to `Date` if the passed reference date is a number or a string. - * - * Starting from v3.7.0, it allows to construct a date using `[Symbol.for("constructDateFrom")]` - * enabling to transfer extra properties from the reference date to the new date. - * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz) - * that accept a time zone as a constructor argument. - * - * @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). - * - * @param date - The reference date to take constructor from - * @param value - The value to create the date - * - * @returns Date initialized using the given date and value - * - * @example - * import { constructFrom } from "./constructFrom/date-fns"; - * - * // A function that clones a date preserving the original type - * function cloneDate(date: DateType): DateType { - * return constructFrom( - * date, // Use constructor from the given date - * date.getTime() // Use the date value to create a new date - * ); - * } - */ -function constructFrom(date, value) { - if (typeof date === "function") return date(value); - - if (date && typeof date === "object" && constructFromSymbol in date) - return date[constructFromSymbol](value); - - if (date instanceof Date) return new date.constructor(value); - - return new Date(value); -} - -/** - * @name toDate - * @category Common Helpers - * @summary Convert the given argument to an instance of Date. - * - * @description - * Convert the given argument to an instance of Date. - * - * If the argument is an instance of Date, the function returns its clone. - * - * If the argument is a number, it is treated as a timestamp. - * - * If the argument is none of the above, the function returns Invalid Date. - * - * Starting from v3.7.0, it clones a date using `[Symbol.for("constructDateFrom")]` - * enabling to transfer extra properties from the reference date to the new date. - * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz) - * that accept a time zone as a constructor argument. - * - * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`. - * - * @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). - * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. - * - * @param argument - The value to convert - * - * @returns The parsed date in the local time zone - * - * @example - * // Clone the date: - * const result = toDate(new Date(2014, 1, 11, 11, 30, 30)) - * //=> Tue Feb 11 2014 11:30:30 - * - * @example - * // Convert the timestamp to date: - * const result = toDate(1392098430000) - * //=> Tue Feb 11 2014 11:30:30 - */ -function toDate(argument, context) { - // [TODO] Get rid of `toDate` or `constructFrom`? - return constructFrom(context || argument, argument); -} - -/** - * The {@link addDays} function options. - */ - -/** - * @name addDays - * @category Day Helpers - * @summary Add the specified number of days to the given date. - * - * @description - * Add the specified number of days to the given date. - * - * **You don't need date-fns\***: - * - * Temporal has a built-in `add` method on all its classes: - * - * - [`Temporal.Instant.prototype.add()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/Instant/add) - * - [`Temporal.PlainDate.prototype.add()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainDate/add) - * - [`Temporal.PlainDateTime.prototype.add()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainDateTime/add) - * - [`Temporal.PlainTime.prototype.add()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/add) - * - [`Temporal.PlainYearMonth.prototype.add()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/add) - * - [`Temporal.ZonedDateTime.prototype.add()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/add) - * - * \* **Not really**, see: https://date-fns.org/you-dont-need-date-fns - * - * @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). - * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. - * - * @param date - The date to be changed - * @param amount - The amount of days to be added. - * @param options - An object with options - * - * @returns The new date with the days added - * - * @example - * // Add 10 days to 1 September 2014: - * const result = addDays(new Date(2014, 8, 1), 10) - * //=> Thu Sep 11 2014 00:00:00 - * - * @example - * // Using Temporal: - * // Add 10 days to 1 September 2014: - * Temporal.PlainDate.from("2014-09-01").add({ days: 10 }).toString(); - * //=> "2014-09-11" - */ -function addDays(date, amount, options) { - const _date = toDate(date, options?.in); - if (isNaN(amount)) return constructFrom(options?.in || date, NaN); - - // If 0 days, no-op to avoid changing times in the hour before end of DST - if (!amount) return _date; - - _date.setDate(_date.getDate() + amount); - return _date; -} - -let defaultOptions = {}; - -function getDefaultOptions$1() { - return defaultOptions; -} - -/** - * The {@link startOfWeek} function options. - */ - -/** - * @name startOfWeek - * @category Week Helpers - * @summary Return the start of a week for the given date. - * - * @description - * Return the start of a week for the given date. - * The result will be in the local timezone. - * - * @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). - * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. - * - * @param date - The original date - * @param options - An object with options - * - * @returns The start of a week - * - * @example - * // The start of a week for 2 September 2014 11:55:00: - * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0)) - * //=> Sun Aug 31 2014 00:00:00 - * - * @example - * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00: - * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 }) - * //=> Mon Sep 01 2014 00:00:00 - */ -function startOfWeek(date, options) { - const defaultOptions = getDefaultOptions$1(); - const weekStartsOn = - options?.weekStartsOn ?? - options?.locale?.options?.weekStartsOn ?? - defaultOptions.weekStartsOn ?? - defaultOptions.locale?.options?.weekStartsOn ?? - 0; - - const _date = toDate(date, options?.in); - const day = _date.getDay(); - const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn; - - _date.setDate(_date.getDate() - diff); - _date.setHours(0, 0, 0, 0); - return _date; -} - -/** - * The {@link startOfISOWeek} function options. - */ - -/** - * @name startOfISOWeek - * @category ISO Week Helpers - * @summary Return the start of an ISO week for the given date. - * - * @description - * Return the start of an ISO week for the given date. - * The result will be in the local timezone. - * - * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date - * - * @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). - * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. - * - * @param date - The original date - * @param options - An object with options - * - * @returns The start of an ISO week - * - * @example - * // The start of an ISO week for 2 September 2014 11:55:00: - * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0)) - * //=> Mon Sep 01 2014 00:00:00 - */ -function startOfISOWeek(date, options) { - return startOfWeek(date, { ...options, weekStartsOn: 1 }); -} - -/** - * The {@link getISOWeekYear} function options. - */ - -/** - * @name getISOWeekYear - * @category ISO Week-Numbering Year Helpers - * @summary Get the ISO week-numbering year of the given date. - * - * @description - * Get the ISO week-numbering year of the given date, - * which always starts 3 days before the year's first Thursday. - * - * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date - * - * @param date - The given date - * - * @returns The ISO week-numbering year - * - * @example - * // Which ISO-week numbering year is 2 January 2005? - * const result = getISOWeekYear(new Date(2005, 0, 2)) - * //=> 2004 - */ -function getISOWeekYear(date, options) { - const _date = toDate(date, options?.in); - const year = _date.getFullYear(); - - const fourthOfJanuaryOfNextYear = constructFrom(_date, 0); - fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4); - fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0); - const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear); - - const fourthOfJanuaryOfThisYear = constructFrom(_date, 0); - fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4); - fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0); - const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear); - - if (_date.getTime() >= startOfNextYear.getTime()) { - return year + 1; - } else if (_date.getTime() >= startOfThisYear.getTime()) { - return year; - } else { - return year - 1; - } -} - -/** - * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds. - * They usually appear for dates that denote time before the timezones were introduced - * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891 - * and GMT+01:00:00 after that date) - * - * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above, - * which would lead to incorrect calculations. - * - * This function returns the timezone offset in milliseconds that takes seconds in account. - */ -function getTimezoneOffsetInMilliseconds(date) { - const _date = toDate(date); - const utcDate = new Date( - Date.UTC( - _date.getFullYear(), - _date.getMonth(), - _date.getDate(), - _date.getHours(), - _date.getMinutes(), - _date.getSeconds(), - _date.getMilliseconds(), - ), - ); - utcDate.setUTCFullYear(_date.getFullYear()); - return +date - +utcDate; -} - -function normalizeDates(context, ...dates) { - const normalize = constructFrom.bind( - null, - dates.find((date) => typeof date === "object"), - ); - return dates.map(normalize); -} - -/** - * The {@link startOfDay} function options. - */ - -/** - * @name startOfDay - * @category Day Helpers - * @summary Return the start of a day for the given date. - * - * @description - * Return the start of a day for the given date. - * The result will be in the local timezone. - * - * @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). - * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. - * - * @param date - The original date - * @param options - The options - * - * @returns The start of a day - * - * @example - * // The start of a day for 2 September 2014 11:55:00: - * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0)) - * //=> Tue Sep 02 2014 00:00:00 - */ -function startOfDay(date, options) { - const _date = toDate(date, options?.in); - _date.setHours(0, 0, 0, 0); - return _date; -} - -/** - * The {@link differenceInCalendarDays} function options. - */ - -/** - * @name differenceInCalendarDays - * @category Day Helpers - * @summary Get the number of calendar days between the given dates. - * - * @description - * Get the number of calendar days between the given dates. This means that the times are removed - * from the dates and then the difference in days is calculated. - * - * @param laterDate - The later date - * @param earlierDate - The earlier date - * @param options - The options object - * - * @returns The number of calendar days - * - * @example - * // How many calendar days are between - * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00? - * const result = differenceInCalendarDays( - * new Date(2012, 6, 2, 0, 0), - * new Date(2011, 6, 2, 23, 0) - * ) - * //=> 366 - * // How many calendar days are between - * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00? - * const result = differenceInCalendarDays( - * new Date(2011, 6, 3, 0, 1), - * new Date(2011, 6, 2, 23, 59) - * ) - * //=> 1 - */ -function differenceInCalendarDays(laterDate, earlierDate, options) { - const [laterDate_, earlierDate_] = normalizeDates( - options?.in, - laterDate, - earlierDate, - ); - - const laterStartOfDay = startOfDay(laterDate_); - const earlierStartOfDay = startOfDay(earlierDate_); - - const laterTimestamp = - +laterStartOfDay - getTimezoneOffsetInMilliseconds(laterStartOfDay); - const earlierTimestamp = - +earlierStartOfDay - getTimezoneOffsetInMilliseconds(earlierStartOfDay); - - // Round the number of days to the nearest integer because the number of - // milliseconds in a day is not constant (e.g. it's different in the week of - // the daylight saving time clock shift). - return Math.round((laterTimestamp - earlierTimestamp) / millisecondsInDay); -} - -/** - * The {@link startOfISOWeekYear} function options. - */ - -/** - * @name startOfISOWeekYear - * @category ISO Week-Numbering Year Helpers - * @summary Return the start of an ISO week-numbering year for the given date. - * - * @description - * Return the start of an ISO week-numbering year, - * which always starts 3 days before the year's first Thursday. - * The result will be in the local timezone. - * - * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date - * - * @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). - * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. - * - * @param date - The original date - * @param options - An object with options - * - * @returns The start of an ISO week-numbering year - * - * @example - * // The start of an ISO week-numbering year for 2 July 2005: - * const result = startOfISOWeekYear(new Date(2005, 6, 2)) - * //=> Mon Jan 03 2005 00:00:00 - */ -function startOfISOWeekYear(date, options) { - const year = getISOWeekYear(date, options); - const fourthOfJanuary = constructFrom(date, 0); - fourthOfJanuary.setFullYear(year, 0, 4); - fourthOfJanuary.setHours(0, 0, 0, 0); - return startOfISOWeek(fourthOfJanuary); -} - -/** - * @name isDate - * @category Common Helpers - * @summary Is the given value a date? - * - * @description - * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes. - * - * @param value - The value to check - * - * @returns True if the given value is a date - * - * @example - * // For a valid date: - * const result = isDate(new Date()) - * //=> true - * - * @example - * // For an invalid date: - * const result = isDate(new Date(NaN)) - * //=> true - * - * @example - * // For some value: - * const result = isDate('2014-02-31') - * //=> false - * - * @example - * // For an object: - * const result = isDate({}) - * //=> false - */ -function isDate(value) { - return ( - value instanceof Date || - (typeof value === "object" && - Object.prototype.toString.call(value) === "[object Date]") - ); -} - -/** - * @name isValid - * @category Common Helpers - * @summary Is the given date valid? - * - * @description - * Returns false if argument is Invalid Date and true otherwise. - * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate) - * Invalid Date is a Date, whose time value is NaN. - * - * Time value of Date: http://es5.github.io/#x15.9.1.1 - * - * @param date - The date to check - * - * @returns The date is valid - * - * @example - * // For the valid date: - * const result = isValid(new Date(2014, 1, 31)) - * //=> true - * - * @example - * // For the value, convertible into a date: - * const result = isValid(1393804800000) - * //=> true - * - * @example - * // For the invalid date: - * const result = isValid(new Date('')) - * //=> false - */ -function isValid(date) { - return !((!isDate(date) && typeof date !== "number") || isNaN(+toDate(date))); -} - -/** - * The {@link startOfYear} function options. - */ - -/** - * @name startOfYear - * @category Year Helpers - * @summary Return the start of a year for the given date. - * - * @description - * Return the start of a year for the given date. - * The result will be in the local timezone. - * - * @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). - * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. - * - * @param date - The original date - * @param options - The options - * - * @returns The start of a year - * - * @example - * // The start of a year for 2 September 2014 11:55:00: - * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00)) - * //=> Wed Jan 01 2014 00:00:00 - */ -function startOfYear(date, options) { - const date_ = toDate(date, options?.in); - date_.setFullYear(date_.getFullYear(), 0, 1); - date_.setHours(0, 0, 0, 0); - return date_; -} - -const formatDistanceLocale = { - 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", - }, -}; - -const formatDistance = (token, count, options) => { - let result; - - const tokenValue = formatDistanceLocale[token]; - if (typeof tokenValue === "string") { - result = tokenValue; - } else if (count === 1) { - result = tokenValue.one; - } else { - result = tokenValue.other.replace("{{count}}", count.toString()); - } - - if (options?.addSuffix) { - if (options.comparison && options.comparison > 0) { - return "in " + result; - } else { - return result + " ago"; - } - } - - return result; -}; - -function buildFormatLongFn(args) { - return (options = {}) => { - // TODO: Remove String() - const width = options.width ? String(options.width) : args.defaultWidth; - const format = args.formats[width] || args.formats[args.defaultWidth]; - return format; - }; -} - -const dateFormats = { - full: "EEEE, MMMM do, y", - long: "MMMM do, y", - medium: "MMM d, y", - short: "MM/dd/yyyy", -}; - -const timeFormats = { - full: "h:mm:ss a zzzz", - long: "h:mm:ss a z", - medium: "h:mm:ss a", - short: "h:mm a", -}; - -const dateTimeFormats = { - full: "{{date}} 'at' {{time}}", - long: "{{date}} 'at' {{time}}", - medium: "{{date}}, {{time}}", - short: "{{date}}, {{time}}", -}; - -const formatLong = { - date: buildFormatLongFn({ - formats: dateFormats, - defaultWidth: "full", - }), - - time: buildFormatLongFn({ - formats: timeFormats, - defaultWidth: "full", - }), - - dateTime: buildFormatLongFn({ - formats: dateTimeFormats, - defaultWidth: "full", - }), -}; - -const formatRelativeLocale = { - lastWeek: "'last' eeee 'at' p", - yesterday: "'yesterday at' p", - today: "'today at' p", - tomorrow: "'tomorrow at' p", - nextWeek: "eeee 'at' p", - other: "P", -}; - -const formatRelative = (token, _date, _baseDate, _options) => - formatRelativeLocale[token]; - -/** - * The localize function argument callback which allows to convert raw value to - * the actual type. - * - * @param value - The value to convert - * - * @returns The converted value - */ - -/** - * The map of localized values for each width. - */ - -/** - * The index type of the locale unit value. It types conversion of units of - * values that don't start at 0 (i.e. quarters). - */ - -/** - * Converts the unit value to the tuple of values. - */ - -/** - * The tuple of localized era values. The first element represents BC, - * the second element represents AD. - */ - -/** - * The tuple of localized quarter values. The first element represents Q1. - */ - -/** - * The tuple of localized day values. The first element represents Sunday. - */ - -/** - * The tuple of localized month values. The first element represents January. - */ - -function buildLocalizeFn(args) { - return (value, options) => { - const context = options?.context ? String(options.context) : "standalone"; - - let valuesArray; - if (context === "formatting" && args.formattingValues) { - const defaultWidth = args.defaultFormattingWidth || args.defaultWidth; - const width = options?.width ? String(options.width) : defaultWidth; - - valuesArray = - args.formattingValues[width] || args.formattingValues[defaultWidth]; - } else { - const defaultWidth = args.defaultWidth; - const width = options?.width ? String(options.width) : args.defaultWidth; - - valuesArray = args.values[width] || args.values[defaultWidth]; - } - const index = args.argumentCallback ? args.argumentCallback(value) : value; - - // @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! - return valuesArray[index]; - }; -} - -const eraValues = { - narrow: ["B", "A"], - abbreviated: ["BC", "AD"], - wide: ["Before Christ", "Anno Domini"], -}; - -const quarterValues = { - narrow: ["1", "2", "3", "4"], - abbreviated: ["Q1", "Q2", "Q3", "Q4"], - wide: ["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"], -}; - -// Note: in English, the names of days of the week and months are capitalized. -// If you are making a new locale based on this one, check if the same is true for the language you're working on. -// Generally, formatted dates should look like they are in the middle of a sentence, -// e.g. in Spanish language the weekdays and months should be in the lowercase. -const monthValues = { - 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", - ], -}; - -const dayValues = { - 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", - ], -}; - -const dayPeriodValues = { - 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", - }, -}; - -const formattingDayPeriodValues = { - 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", - }, -}; - -const ordinalNumber = (dirtyNumber, _options) => { - const number = Number(dirtyNumber); - - // If ordinal numbers depend on context, for example, - // if they are different for different grammatical genders, - // use `options.unit`. - // - // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear', - // 'day', 'hour', 'minute', 'second'. - - const rem100 = number % 100; - if (rem100 > 20 || rem100 < 10) { - switch (rem100 % 10) { - case 1: - return number + "st"; - case 2: - return number + "nd"; - case 3: - return number + "rd"; - } - } - return number + "th"; -}; - -const localize = { - ordinalNumber, - - era: buildLocalizeFn({ - values: eraValues, - defaultWidth: "wide", - }), - - quarter: buildLocalizeFn({ - values: quarterValues, - defaultWidth: "wide", - argumentCallback: (quarter) => quarter - 1, - }), - - month: buildLocalizeFn({ - values: monthValues, - defaultWidth: "wide", - }), - - day: buildLocalizeFn({ - values: dayValues, - defaultWidth: "wide", - }), - - dayPeriod: buildLocalizeFn({ - values: dayPeriodValues, - defaultWidth: "wide", - formattingValues: formattingDayPeriodValues, - defaultFormattingWidth: "wide", - }), -}; - -function buildMatchFn(args) { - return (string, options = {}) => { - const width = options.width; - - const matchPattern = - (width && args.matchPatterns[width]) || - args.matchPatterns[args.defaultMatchWidth]; - const matchResult = string.match(matchPattern); - - if (!matchResult) { - return null; - } - const matchedString = matchResult[0]; - - const parsePatterns = - (width && args.parsePatterns[width]) || - args.parsePatterns[args.defaultParseWidth]; - - const key = Array.isArray(parsePatterns) - ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString)) - : // [TODO] -- I challenge you to fix the type - findKey(parsePatterns, (pattern) => pattern.test(matchedString)); - - let value; - - value = args.valueCallback ? args.valueCallback(key) : key; - value = options.valueCallback - ? // [TODO] -- I challenge you to fix the type - options.valueCallback(value) - : value; - - const rest = string.slice(matchedString.length); - - return { value, rest }; - }; -} - -function findKey(object, predicate) { - for (const key in object) { - if ( - Object.prototype.hasOwnProperty.call(object, key) && - predicate(object[key]) - ) { - return key; - } - } - return undefined; -} - -function findIndex(array, predicate) { - for (let key = 0; key < array.length; key++) { - if (predicate(array[key])) { - return key; - } - } - return undefined; -} - -function buildMatchPatternFn(args) { - return (string, options = {}) => { - const matchResult = string.match(args.matchPattern); - if (!matchResult) return null; - const matchedString = matchResult[0]; - - const parseResult = string.match(args.parsePattern); - if (!parseResult) return null; - let value = args.valueCallback - ? args.valueCallback(parseResult[0]) - : parseResult[0]; - - // [TODO] I challenge you to fix the type - value = options.valueCallback ? options.valueCallback(value) : value; - - const rest = string.slice(matchedString.length); - - return { value, rest }; - }; -} - -const matchOrdinalNumberPattern = /^(\d+)(th|st|nd|rd)?/i; -const parseOrdinalNumberPattern = /\d+/i; - -const matchEraPatterns = { - 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, -}; -const parseEraPatterns = { - any: [/^b/i, /^(a|c)/i], -}; - -const matchQuarterPatterns = { - narrow: /^[1234]/i, - abbreviated: /^q[1234]/i, - wide: /^[1234](th|st|nd|rd)? quarter/i, -}; -const parseQuarterPatterns = { - any: [/1/i, /2/i, /3/i, /4/i], -}; - -const matchMonthPatterns = { - 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, -}; -const parseMonthPatterns = { - 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, - ], -}; - -const matchDayPatterns = { - 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, -}; -const parseDayPatterns = { - 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], -}; - -const matchDayPeriodPatterns = { - 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, -}; -const parseDayPeriodPatterns = { - 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, - }, -}; - -const match = { - ordinalNumber: buildMatchPatternFn({ - matchPattern: matchOrdinalNumberPattern, - parsePattern: parseOrdinalNumberPattern, - valueCallback: (value) => parseInt(value, 10), - }), - - era: buildMatchFn({ - matchPatterns: matchEraPatterns, - defaultMatchWidth: "wide", - parsePatterns: parseEraPatterns, - defaultParseWidth: "any", - }), - - quarter: buildMatchFn({ - matchPatterns: matchQuarterPatterns, - defaultMatchWidth: "wide", - parsePatterns: parseQuarterPatterns, - defaultParseWidth: "any", - valueCallback: (index) => index + 1, - }), - - month: buildMatchFn({ - matchPatterns: matchMonthPatterns, - defaultMatchWidth: "wide", - parsePatterns: parseMonthPatterns, - defaultParseWidth: "any", - }), - - day: buildMatchFn({ - matchPatterns: matchDayPatterns, - defaultMatchWidth: "wide", - parsePatterns: parseDayPatterns, - defaultParseWidth: "any", - }), - - dayPeriod: buildMatchFn({ - matchPatterns: matchDayPeriodPatterns, - defaultMatchWidth: "any", - parsePatterns: parseDayPeriodPatterns, - defaultParseWidth: "any", - }), -}; - -/** - * @category Locales - * @summary English locale (United States). - * @language English - * @iso-639-2 eng - * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp) - * @author Lesha Koss [@leshakoss](https://github.com/leshakoss) - */ -const enUS = { - code: "en-US", - formatDistance: formatDistance, - formatLong: formatLong, - formatRelative: formatRelative, - localize: localize, - match: match, - options: { - weekStartsOn: 0 /* Sunday */, - firstWeekContainsDate: 1, - }, -}; - -/** - * The {@link getDayOfYear} function options. - */ - -/** - * @name getDayOfYear - * @category Day Helpers - * @summary Get the day of the year of the given date. - * - * @description - * Get the day of the year of the given date. - * - * @param date - The given date - * @param options - The options - * - * @returns The day of year - * - * @example - * // Which day of the year is 2 July 2014? - * const result = getDayOfYear(new Date(2014, 6, 2)) - * //=> 183 - */ -function getDayOfYear(date, options) { - const _date = toDate(date, options?.in); - const diff = differenceInCalendarDays(_date, startOfYear(_date)); - const dayOfYear = diff + 1; - return dayOfYear; -} - -/** - * The {@link getISOWeek} function options. - */ - -/** - * @name getISOWeek - * @category ISO Week Helpers - * @summary Get the ISO week of the given date. - * - * @description - * Get the ISO week of the given date. - * - * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date - * - * @param date - The given date - * @param options - The options - * - * @returns The ISO week - * - * @example - * // Which week of the ISO-week numbering year is 2 January 2005? - * const result = getISOWeek(new Date(2005, 0, 2)) - * //=> 53 - */ -function getISOWeek(date, options) { - const _date = toDate(date, options?.in); - const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date); - - // Round the number of weeks to the nearest integer because the number of - // milliseconds in a week is not constant (e.g. it's different in the week of - // the daylight saving time clock shift). - return Math.round(diff / millisecondsInWeek) + 1; -} - -/** - * The {@link getWeekYear} function options. - */ - -/** - * @name getWeekYear - * @category Week-Numbering Year Helpers - * @summary Get the local week-numbering year of the given date. - * - * @description - * Get the local week-numbering year of the given date. - * The exact calculation depends on the values of - * `options.weekStartsOn` (which is the index of the first day of the week) - * and `options.firstWeekContainsDate` (which is the day of January, which is always in - * the first week of the week-numbering year) - * - * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system - * - * @param date - The given date - * @param options - An object with options. - * - * @returns The local week-numbering year - * - * @example - * // Which week numbering year is 26 December 2004 with the default settings? - * const result = getWeekYear(new Date(2004, 11, 26)) - * //=> 2005 - * - * @example - * // Which week numbering year is 26 December 2004 if week starts on Saturday? - * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 }) - * //=> 2004 - * - * @example - * // Which week numbering year is 26 December 2004 if the first week contains 4 January? - * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 }) - * //=> 2004 - */ -function getWeekYear(date, options) { - const _date = toDate(date, options?.in); - const year = _date.getFullYear(); - - const defaultOptions = getDefaultOptions$1(); - const firstWeekContainsDate = - options?.firstWeekContainsDate ?? - options?.locale?.options?.firstWeekContainsDate ?? - defaultOptions.firstWeekContainsDate ?? - defaultOptions.locale?.options?.firstWeekContainsDate ?? - 1; - - const firstWeekOfNextYear = constructFrom(options?.in || date, 0); - firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate); - firstWeekOfNextYear.setHours(0, 0, 0, 0); - const startOfNextYear = startOfWeek(firstWeekOfNextYear, options); - - const firstWeekOfThisYear = constructFrom(options?.in || date, 0); - firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate); - firstWeekOfThisYear.setHours(0, 0, 0, 0); - const startOfThisYear = startOfWeek(firstWeekOfThisYear, options); - - if (+_date >= +startOfNextYear) { - return year + 1; - } else if (+_date >= +startOfThisYear) { - return year; - } else { - return year - 1; - } -} - -/** - * The {@link startOfWeekYear} function options. - */ - -/** - * @name startOfWeekYear - * @category Week-Numbering Year Helpers - * @summary Return the start of a local week-numbering year for the given date. - * - * @description - * Return the start of a local week-numbering year. - * The exact calculation depends on the values of - * `options.weekStartsOn` (which is the index of the first day of the week) - * and `options.firstWeekContainsDate` (which is the day of January, which is always in - * the first week of the week-numbering year) - * - * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system - * - * @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). - * @typeParam ResultDate - The result `Date` type. - * - * @param date - The original date - * @param options - An object with options - * - * @returns The start of a week-numbering year - * - * @example - * // The start of an a week-numbering year for 2 July 2005 with default settings: - * const result = startOfWeekYear(new Date(2005, 6, 2)) - * //=> Sun Dec 26 2004 00:00:00 - * - * @example - * // The start of a week-numbering year for 2 July 2005 - * // if Monday is the first day of week - * // and 4 January is always in the first week of the year: - * const result = startOfWeekYear(new Date(2005, 6, 2), { - * weekStartsOn: 1, - * firstWeekContainsDate: 4 - * }) - * //=> Mon Jan 03 2005 00:00:00 - */ -function startOfWeekYear(date, options) { - const defaultOptions = getDefaultOptions$1(); - const firstWeekContainsDate = - options?.firstWeekContainsDate ?? - options?.locale?.options?.firstWeekContainsDate ?? - defaultOptions.firstWeekContainsDate ?? - defaultOptions.locale?.options?.firstWeekContainsDate ?? - 1; - - const year = getWeekYear(date, options); - const firstWeek = constructFrom(options?.in || date, 0); - firstWeek.setFullYear(year, 0, firstWeekContainsDate); - firstWeek.setHours(0, 0, 0, 0); - const _date = startOfWeek(firstWeek, options); - return _date; -} - -/** - * The {@link getWeek} function options. - */ - -/** - * @name getWeek - * @category Week Helpers - * @summary Get the local week index of the given date. - * - * @description - * Get the local week index of the given date. - * The exact calculation depends on the values of - * `options.weekStartsOn` (which is the index of the first day of the week) - * and `options.firstWeekContainsDate` (which is the day of January, which is always in - * the first week of the week-numbering year) - * - * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system - * - * @param date - The given date - * @param options - An object with options - * - * @returns The week - * - * @example - * // Which week of the local week numbering year is 2 January 2005 with default options? - * const result = getWeek(new Date(2005, 0, 2)) - * //=> 2 - * - * @example - * // Which week of the local week numbering year is 2 January 2005, - * // if Monday is the first day of the week, - * // and the first week of the year always contains 4 January? - * const result = getWeek(new Date(2005, 0, 2), { - * weekStartsOn: 1, - * firstWeekContainsDate: 4 - * }) - * //=> 53 - */ -function getWeek(date, options) { - const _date = toDate(date, options?.in); - const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options); - - // Round the number of weeks to the nearest integer because the number of - // milliseconds in a week is not constant (e.g. it's different in the week of - // the daylight saving time clock shift). - return Math.round(diff / millisecondsInWeek) + 1; -} - -function addLeadingZeros(number, targetLength) { - const sign = number < 0 ? "-" : ""; - const output = Math.abs(number).toString().padStart(targetLength, "0"); - return sign + output; -} - -/* - * | | Unit | | Unit | - * |-----|--------------------------------|-----|--------------------------------| - * | a | AM, PM | A* | | - * | d | Day of month | D | | - * | h | Hour [1-12] | H | Hour [0-23] | - * | m | Minute | M | Month | - * | s | Second | S | Fraction of second | - * | y | Year (abs) | Y | | - * - * Letters marked by * are not implemented but reserved by Unicode standard. - */ - -const lightFormatters = { - // Year - y(date, token) { - // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens - // | Year | y | yy | yyy | yyyy | yyyyy | - // |----------|-------|----|-------|-------|-------| - // | AD 1 | 1 | 01 | 001 | 0001 | 00001 | - // | AD 12 | 12 | 12 | 012 | 0012 | 00012 | - // | AD 123 | 123 | 23 | 123 | 0123 | 00123 | - // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 | - // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 | - - const signedYear = date.getFullYear(); - // Returns 1 for 1 BC (which is year 0 in JavaScript) - const year = signedYear > 0 ? signedYear : 1 - signedYear; - return addLeadingZeros(token === "yy" ? year % 100 : year, token.length); - }, - - // Month - M(date, token) { - const month = date.getMonth(); - return token === "M" ? String(month + 1) : addLeadingZeros(month + 1, 2); - }, - - // Day of the month - d(date, token) { - return addLeadingZeros(date.getDate(), token.length); - }, - - // AM or PM - a(date, token) { - const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? "pm" : "am"; - - switch (token) { - case "a": - case "aa": - return dayPeriodEnumValue.toUpperCase(); - case "aaa": - return dayPeriodEnumValue; - case "aaaaa": - return dayPeriodEnumValue[0]; - case "aaaa": - default: - return dayPeriodEnumValue === "am" ? "a.m." : "p.m."; - } - }, - - // Hour [1-12] - h(date, token) { - return addLeadingZeros(date.getHours() % 12 || 12, token.length); - }, - - // Hour [0-23] - H(date, token) { - return addLeadingZeros(date.getHours(), token.length); - }, - - // Minute - m(date, token) { - return addLeadingZeros(date.getMinutes(), token.length); - }, - - // Second - s(date, token) { - return addLeadingZeros(date.getSeconds(), token.length); - }, - - // Fraction of second - S(date, token) { - const numberOfDigits = token.length; - const milliseconds = date.getMilliseconds(); - const fractionalSeconds = Math.trunc( - milliseconds * Math.pow(10, numberOfDigits - 3), - ); - return addLeadingZeros(fractionalSeconds, token.length); - }, -}; - -const dayPeriodEnum = { - midnight: "midnight", - noon: "noon", - morning: "morning", - afternoon: "afternoon", - evening: "evening", - night: "night", -}; - -/* - * | | Unit | | Unit | - * |-----|--------------------------------|-----|--------------------------------| - * | a | AM, PM | A* | Milliseconds in day | - * | b | AM, PM, noon, midnight | B | Flexible day period | - * | c | Stand-alone local day of week | C* | Localized hour w/ day period | - * | d | Day of month | D | Day of year | - * | e | Local day of week | E | Day of week | - * | f | | F* | Day of week in month | - * | g* | Modified Julian day | G | Era | - * | h | Hour [1-12] | H | Hour [0-23] | - * | i! | ISO day of week | I! | ISO week of year | - * | j* | Localized hour w/ day period | J* | Localized hour w/o day period | - * | k | Hour [1-24] | K | Hour [0-11] | - * | l* | (deprecated) | L | Stand-alone month | - * | m | Minute | M | Month | - * | n | | N | | - * | o! | Ordinal number modifier | O | Timezone (GMT) | - * | p! | Long localized time | P! | Long localized date | - * | q | Stand-alone quarter | Q | Quarter | - * | r* | Related Gregorian year | R! | ISO week-numbering year | - * | s | Second | S | Fraction of second | - * | t! | Seconds timestamp | T! | Milliseconds timestamp | - * | u | Extended year | U* | Cyclic year | - * | v* | Timezone (generic non-locat.) | V* | Timezone (location) | - * | w | Local week of year | W* | Week of month | - * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) | - * | y | Year (abs) | Y | Local week-numbering year | - * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) | - * - * Letters marked by * are not implemented but reserved by Unicode standard. - * - * Letters marked by ! are non-standard, but implemented by date-fns: - * - `o` modifies the previous token to turn it into an ordinal (see `format` docs) - * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days, - * i.e. 7 for Sunday, 1 for Monday, etc. - * - `I` is ISO week of year, as opposed to `w` which is local week of year. - * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year. - * `R` is supposed to be used in conjunction with `I` and `i` - * for universal ISO week-numbering date, whereas - * `Y` is supposed to be used in conjunction with `w` and `e` - * for week-numbering date specific to the locale. - * - `P` is long localized date format - * - `p` is long localized time format - */ - -const formatters = { - // Era - G: function (date, token, localize) { - const era = date.getFullYear() > 0 ? 1 : 0; - switch (token) { - // AD, BC - case "G": - case "GG": - case "GGG": - return localize.era(era, { width: "abbreviated" }); - // A, B - case "GGGGG": - return localize.era(era, { width: "narrow" }); - // Anno Domini, Before Christ - case "GGGG": - default: - return localize.era(era, { width: "wide" }); - } - }, - - // Year - y: function (date, token, localize) { - // Ordinal number - if (token === "yo") { - const signedYear = date.getFullYear(); - // Returns 1 for 1 BC (which is year 0 in JavaScript) - const year = signedYear > 0 ? signedYear : 1 - signedYear; - return localize.ordinalNumber(year, { unit: "year" }); - } - - return lightFormatters.y(date, token); - }, - - // Local week-numbering year - Y: function (date, token, localize, options) { - const signedWeekYear = getWeekYear(date, options); - // Returns 1 for 1 BC (which is year 0 in JavaScript) - const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; - - // Two digit year - if (token === "YY") { - const twoDigitYear = weekYear % 100; - return addLeadingZeros(twoDigitYear, 2); - } - - // Ordinal number - if (token === "Yo") { - return localize.ordinalNumber(weekYear, { unit: "year" }); - } - - // Padding - return addLeadingZeros(weekYear, token.length); - }, - - // ISO week-numbering year - R: function (date, token) { - const isoWeekYear = getISOWeekYear(date); - - // Padding - return addLeadingZeros(isoWeekYear, token.length); - }, - - // Extended year. This is a single number designating the year of this calendar system. - // The main difference between `y` and `u` localizers are B.C. years: - // | Year | `y` | `u` | - // |------|-----|-----| - // | AC 1 | 1 | 1 | - // | BC 1 | 1 | 0 | - // | BC 2 | 2 | -1 | - // Also `yy` always returns the last two digits of a year, - // while `uu` pads single digit years to 2 characters and returns other years unchanged. - u: function (date, token) { - const year = date.getFullYear(); - return addLeadingZeros(year, token.length); - }, - - // Quarter - Q: function (date, token, localize) { - const quarter = Math.ceil((date.getMonth() + 1) / 3); - switch (token) { - // 1, 2, 3, 4 - case "Q": - return String(quarter); - // 01, 02, 03, 04 - case "QQ": - return addLeadingZeros(quarter, 2); - // 1st, 2nd, 3rd, 4th - case "Qo": - return localize.ordinalNumber(quarter, { unit: "quarter" }); - // Q1, Q2, Q3, Q4 - case "QQQ": - return localize.quarter(quarter, { - width: "abbreviated", - context: "formatting", - }); - // 1, 2, 3, 4 (narrow quarter; could be not numerical) - case "QQQQQ": - return localize.quarter(quarter, { - width: "narrow", - context: "formatting", - }); - // 1st quarter, 2nd quarter, ... - case "QQQQ": - default: - return localize.quarter(quarter, { - width: "wide", - context: "formatting", - }); - } - }, - - // Stand-alone quarter - q: function (date, token, localize) { - const quarter = Math.ceil((date.getMonth() + 1) / 3); - switch (token) { - // 1, 2, 3, 4 - case "q": - return String(quarter); - // 01, 02, 03, 04 - case "qq": - return addLeadingZeros(quarter, 2); - // 1st, 2nd, 3rd, 4th - case "qo": - return localize.ordinalNumber(quarter, { unit: "quarter" }); - // Q1, Q2, Q3, Q4 - case "qqq": - return localize.quarter(quarter, { - width: "abbreviated", - context: "standalone", - }); - // 1, 2, 3, 4 (narrow quarter; could be not numerical) - case "qqqqq": - return localize.quarter(quarter, { - width: "narrow", - context: "standalone", - }); - // 1st quarter, 2nd quarter, ... - case "qqqq": - default: - return localize.quarter(quarter, { - width: "wide", - context: "standalone", - }); - } - }, - - // Month - M: function (date, token, localize) { - const month = date.getMonth(); - switch (token) { - case "M": - case "MM": - return lightFormatters.M(date, token); - // 1st, 2nd, ..., 12th - case "Mo": - return localize.ordinalNumber(month + 1, { unit: "month" }); - // Jan, Feb, ..., Dec - case "MMM": - return localize.month(month, { - width: "abbreviated", - context: "formatting", - }); - // J, F, ..., D - case "MMMMM": - return localize.month(month, { - width: "narrow", - context: "formatting", - }); - // January, February, ..., December - case "MMMM": - default: - return localize.month(month, { width: "wide", context: "formatting" }); - } - }, - - // Stand-alone month - L: function (date, token, localize) { - const month = date.getMonth(); - switch (token) { - // 1, 2, ..., 12 - case "L": - return String(month + 1); - // 01, 02, ..., 12 - case "LL": - return addLeadingZeros(month + 1, 2); - // 1st, 2nd, ..., 12th - case "Lo": - return localize.ordinalNumber(month + 1, { unit: "month" }); - // Jan, Feb, ..., Dec - case "LLL": - return localize.month(month, { - width: "abbreviated", - context: "standalone", - }); - // J, F, ..., D - case "LLLLL": - return localize.month(month, { - width: "narrow", - context: "standalone", - }); - // January, February, ..., December - case "LLLL": - default: - return localize.month(month, { width: "wide", context: "standalone" }); - } - }, - - // Local week of year - w: function (date, token, localize, options) { - const week = getWeek(date, options); - - if (token === "wo") { - return localize.ordinalNumber(week, { unit: "week" }); - } - - return addLeadingZeros(week, token.length); - }, - - // ISO week of year - I: function (date, token, localize) { - const isoWeek = getISOWeek(date); - - if (token === "Io") { - return localize.ordinalNumber(isoWeek, { unit: "week" }); - } - - return addLeadingZeros(isoWeek, token.length); - }, - - // Day of the month - d: function (date, token, localize) { - if (token === "do") { - return localize.ordinalNumber(date.getDate(), { unit: "date" }); - } - - return lightFormatters.d(date, token); - }, - - // Day of year - D: function (date, token, localize) { - const dayOfYear = getDayOfYear(date); - - if (token === "Do") { - return localize.ordinalNumber(dayOfYear, { unit: "dayOfYear" }); - } - - return addLeadingZeros(dayOfYear, token.length); - }, - - // Day of week - E: function (date, token, localize) { - const dayOfWeek = date.getDay(); - switch (token) { - // Tue - case "E": - case "EE": - case "EEE": - return localize.day(dayOfWeek, { - width: "abbreviated", - context: "formatting", - }); - // T - case "EEEEE": - return localize.day(dayOfWeek, { - width: "narrow", - context: "formatting", - }); - // Tu - case "EEEEEE": - return localize.day(dayOfWeek, { - width: "short", - context: "formatting", - }); - // Tuesday - case "EEEE": - default: - return localize.day(dayOfWeek, { - width: "wide", - context: "formatting", - }); - } - }, - - // Local day of week - e: function (date, token, localize, options) { - const dayOfWeek = date.getDay(); - const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7; - switch (token) { - // Numerical value (Nth day of week with current locale or weekStartsOn) - case "e": - return String(localDayOfWeek); - // Padded numerical value - case "ee": - return addLeadingZeros(localDayOfWeek, 2); - // 1st, 2nd, ..., 7th - case "eo": - return localize.ordinalNumber(localDayOfWeek, { unit: "day" }); - case "eee": - return localize.day(dayOfWeek, { - width: "abbreviated", - context: "formatting", - }); - // T - case "eeeee": - return localize.day(dayOfWeek, { - width: "narrow", - context: "formatting", - }); - // Tu - case "eeeeee": - return localize.day(dayOfWeek, { - width: "short", - context: "formatting", - }); - // Tuesday - case "eeee": - default: - return localize.day(dayOfWeek, { - width: "wide", - context: "formatting", - }); - } - }, - - // Stand-alone local day of week - c: function (date, token, localize, options) { - const dayOfWeek = date.getDay(); - const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7; - switch (token) { - // Numerical value (same as in `e`) - case "c": - return String(localDayOfWeek); - // Padded numerical value - case "cc": - return addLeadingZeros(localDayOfWeek, token.length); - // 1st, 2nd, ..., 7th - case "co": - return localize.ordinalNumber(localDayOfWeek, { unit: "day" }); - case "ccc": - return localize.day(dayOfWeek, { - width: "abbreviated", - context: "standalone", - }); - // T - case "ccccc": - return localize.day(dayOfWeek, { - width: "narrow", - context: "standalone", - }); - // Tu - case "cccccc": - return localize.day(dayOfWeek, { - width: "short", - context: "standalone", - }); - // Tuesday - case "cccc": - default: - return localize.day(dayOfWeek, { - width: "wide", - context: "standalone", - }); - } - }, - - // ISO day of week - i: function (date, token, localize) { - const dayOfWeek = date.getDay(); - const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek; - switch (token) { - // 2 - case "i": - return String(isoDayOfWeek); - // 02 - case "ii": - return addLeadingZeros(isoDayOfWeek, token.length); - // 2nd - case "io": - return localize.ordinalNumber(isoDayOfWeek, { unit: "day" }); - // Tue - case "iii": - return localize.day(dayOfWeek, { - width: "abbreviated", - context: "formatting", - }); - // T - case "iiiii": - return localize.day(dayOfWeek, { - width: "narrow", - context: "formatting", - }); - // Tu - case "iiiiii": - return localize.day(dayOfWeek, { - width: "short", - context: "formatting", - }); - // Tuesday - case "iiii": - default: - return localize.day(dayOfWeek, { - width: "wide", - context: "formatting", - }); - } - }, - - // AM or PM - a: function (date, token, localize) { - const hours = date.getHours(); - const dayPeriodEnumValue = hours / 12 >= 1 ? "pm" : "am"; - - switch (token) { - case "a": - case "aa": - return localize.dayPeriod(dayPeriodEnumValue, { - width: "abbreviated", - context: "formatting", - }); - case "aaa": - return localize - .dayPeriod(dayPeriodEnumValue, { - width: "abbreviated", - context: "formatting", - }) - .toLowerCase(); - case "aaaaa": - return localize.dayPeriod(dayPeriodEnumValue, { - width: "narrow", - context: "formatting", - }); - case "aaaa": - default: - return localize.dayPeriod(dayPeriodEnumValue, { - width: "wide", - context: "formatting", - }); - } - }, - - // AM, PM, midnight, noon - b: function (date, token, localize) { - const hours = date.getHours(); - let dayPeriodEnumValue; - if (hours === 12) { - dayPeriodEnumValue = dayPeriodEnum.noon; - } else if (hours === 0) { - dayPeriodEnumValue = dayPeriodEnum.midnight; - } else { - dayPeriodEnumValue = hours / 12 >= 1 ? "pm" : "am"; - } - - switch (token) { - case "b": - case "bb": - return localize.dayPeriod(dayPeriodEnumValue, { - width: "abbreviated", - context: "formatting", - }); - case "bbb": - return localize - .dayPeriod(dayPeriodEnumValue, { - width: "abbreviated", - context: "formatting", - }) - .toLowerCase(); - case "bbbbb": - return localize.dayPeriod(dayPeriodEnumValue, { - width: "narrow", - context: "formatting", - }); - case "bbbb": - default: - return localize.dayPeriod(dayPeriodEnumValue, { - width: "wide", - context: "formatting", - }); - } - }, - - // in the morning, in the afternoon, in the evening, at night - B: function (date, token, localize) { - const hours = date.getHours(); - let dayPeriodEnumValue; - if (hours >= 17) { - dayPeriodEnumValue = dayPeriodEnum.evening; - } else if (hours >= 12) { - dayPeriodEnumValue = dayPeriodEnum.afternoon; - } else if (hours >= 4) { - dayPeriodEnumValue = dayPeriodEnum.morning; - } else { - dayPeriodEnumValue = dayPeriodEnum.night; - } - - switch (token) { - case "B": - case "BB": - case "BBB": - return localize.dayPeriod(dayPeriodEnumValue, { - width: "abbreviated", - context: "formatting", - }); - case "BBBBB": - return localize.dayPeriod(dayPeriodEnumValue, { - width: "narrow", - context: "formatting", - }); - case "BBBB": - default: - return localize.dayPeriod(dayPeriodEnumValue, { - width: "wide", - context: "formatting", - }); - } - }, - - // Hour [1-12] - h: function (date, token, localize) { - if (token === "ho") { - let hours = date.getHours() % 12; - if (hours === 0) hours = 12; - return localize.ordinalNumber(hours, { unit: "hour" }); - } - - return lightFormatters.h(date, token); - }, - - // Hour [0-23] - H: function (date, token, localize) { - if (token === "Ho") { - return localize.ordinalNumber(date.getHours(), { unit: "hour" }); - } - - return lightFormatters.H(date, token); - }, - - // Hour [0-11] - K: function (date, token, localize) { - const hours = date.getHours() % 12; - - if (token === "Ko") { - return localize.ordinalNumber(hours, { unit: "hour" }); - } - - return addLeadingZeros(hours, token.length); - }, - - // Hour [1-24] - k: function (date, token, localize) { - let hours = date.getHours(); - if (hours === 0) hours = 24; - - if (token === "ko") { - return localize.ordinalNumber(hours, { unit: "hour" }); - } - - return addLeadingZeros(hours, token.length); - }, - - // Minute - m: function (date, token, localize) { - if (token === "mo") { - return localize.ordinalNumber(date.getMinutes(), { unit: "minute" }); - } - - return lightFormatters.m(date, token); - }, - - // Second - s: function (date, token, localize) { - if (token === "so") { - return localize.ordinalNumber(date.getSeconds(), { unit: "second" }); - } - - return lightFormatters.s(date, token); - }, - - // Fraction of second - S: function (date, token) { - return lightFormatters.S(date, token); - }, - - // Timezone (ISO-8601. If offset is 0, output is always `'Z'`) - X: function (date, token, _localize) { - const timezoneOffset = date.getTimezoneOffset(); - - if (timezoneOffset === 0) { - return "Z"; - } - - switch (token) { - // Hours and optional minutes - case "X": - return formatTimezoneWithOptionalMinutes(timezoneOffset); - - // Hours, minutes and optional seconds without `:` delimiter - // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets - // so this token always has the same output as `XX` - case "XXXX": - case "XX": // Hours and minutes without `:` delimiter - return formatTimezone(timezoneOffset); - - // Hours, minutes and optional seconds with `:` delimiter - // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets - // so this token always has the same output as `XXX` - case "XXXXX": - case "XXX": // Hours and minutes with `:` delimiter - default: - return formatTimezone(timezoneOffset, ":"); - } - }, - - // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent) - x: function (date, token, _localize) { - const timezoneOffset = date.getTimezoneOffset(); - - switch (token) { - // Hours and optional minutes - case "x": - return formatTimezoneWithOptionalMinutes(timezoneOffset); - - // Hours, minutes and optional seconds without `:` delimiter - // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets - // so this token always has the same output as `xx` - case "xxxx": - case "xx": // Hours and minutes without `:` delimiter - return formatTimezone(timezoneOffset); - - // Hours, minutes and optional seconds with `:` delimiter - // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets - // so this token always has the same output as `xxx` - case "xxxxx": - case "xxx": // Hours and minutes with `:` delimiter - default: - return formatTimezone(timezoneOffset, ":"); - } - }, - - // Timezone (GMT) - O: function (date, token, _localize) { - const timezoneOffset = date.getTimezoneOffset(); - - switch (token) { - // Short - case "O": - case "OO": - case "OOO": - return "GMT" + formatTimezoneShort(timezoneOffset, ":"); - // Long - case "OOOO": - default: - return "GMT" + formatTimezone(timezoneOffset, ":"); - } - }, - - // Timezone (specific non-location) - z: function (date, token, _localize) { - const timezoneOffset = date.getTimezoneOffset(); - - switch (token) { - // Short - case "z": - case "zz": - case "zzz": - return "GMT" + formatTimezoneShort(timezoneOffset, ":"); - // Long - case "zzzz": - default: - return "GMT" + formatTimezone(timezoneOffset, ":"); - } - }, - - // Seconds timestamp - t: function (date, token, _localize) { - const timestamp = Math.trunc(+date / 1000); - return addLeadingZeros(timestamp, token.length); - }, - - // Milliseconds timestamp - T: function (date, token, _localize) { - return addLeadingZeros(+date, token.length); - }, -}; - -function formatTimezoneShort(offset, delimiter = "") { - const sign = offset > 0 ? "-" : "+"; - const absOffset = Math.abs(offset); - const hours = Math.trunc(absOffset / 60); - const minutes = absOffset % 60; - if (minutes === 0) { - return sign + String(hours); - } - return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2); -} - -function formatTimezoneWithOptionalMinutes(offset, delimiter) { - if (offset % 60 === 0) { - const sign = offset > 0 ? "-" : "+"; - return sign + addLeadingZeros(Math.abs(offset) / 60, 2); - } - return formatTimezone(offset, delimiter); -} - -function formatTimezone(offset, delimiter = "") { - const sign = offset > 0 ? "-" : "+"; - const absOffset = Math.abs(offset); - const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2); - const minutes = addLeadingZeros(absOffset % 60, 2); - return sign + hours + delimiter + minutes; -} - -const dateLongFormatter = (pattern, formatLong) => { - switch (pattern) { - case "P": - return formatLong.date({ width: "short" }); - case "PP": - return formatLong.date({ width: "medium" }); - case "PPP": - return formatLong.date({ width: "long" }); - case "PPPP": - default: - return formatLong.date({ width: "full" }); - } -}; - -const timeLongFormatter = (pattern, formatLong) => { - switch (pattern) { - case "p": - return formatLong.time({ width: "short" }); - case "pp": - return formatLong.time({ width: "medium" }); - case "ppp": - return formatLong.time({ width: "long" }); - case "pppp": - default: - return formatLong.time({ width: "full" }); - } -}; - -const dateTimeLongFormatter = (pattern, formatLong) => { - const matchResult = pattern.match(/(P+)(p+)?/) || []; - const datePattern = matchResult[1]; - const timePattern = matchResult[2]; - - if (!timePattern) { - return dateLongFormatter(pattern, formatLong); - } - - let dateTimeFormat; - - switch (datePattern) { - case "P": - dateTimeFormat = formatLong.dateTime({ width: "short" }); - break; - case "PP": - dateTimeFormat = formatLong.dateTime({ width: "medium" }); - break; - case "PPP": - dateTimeFormat = formatLong.dateTime({ width: "long" }); - break; - case "PPPP": - default: - dateTimeFormat = formatLong.dateTime({ width: "full" }); - break; - } - - return dateTimeFormat - .replace("{{date}}", dateLongFormatter(datePattern, formatLong)) - .replace("{{time}}", timeLongFormatter(timePattern, formatLong)); -}; - -const longFormatters = { - p: timeLongFormatter, - P: dateTimeLongFormatter, -}; - -const dayOfYearTokenRE = /^D+$/; -const weekYearTokenRE = /^Y+$/; - -const throwTokens = ["D", "DD", "YY", "YYYY"]; - -function isProtectedDayOfYearToken(token) { - return dayOfYearTokenRE.test(token); -} - -function isProtectedWeekYearToken(token) { - return weekYearTokenRE.test(token); -} - -function warnOrThrowProtectedError(token, format, input) { - const _message = message(token, format, input); - console.warn(_message); - if (throwTokens.includes(token)) throw new RangeError(_message); -} - -function message(token, format, input) { - const subject = token[0] === "Y" ? "years" : "days of the month"; - 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`; -} - -// This RegExp consists of three parts separated by `|`: -// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token -// (one of the certain letters followed by `o`) -// - (\w)\1* matches any sequences of the same letter -// - '' matches two quote characters in a row -// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('), -// except a single quote symbol, which ends the sequence. -// Two quote characters do not end the sequence. -// If there is no matching single quote -// then the sequence will continue until the end of the string. -// - . matches any single character unmatched by previous parts of the RegExps -const formattingTokensRegExp$1 = - /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g; - -// This RegExp catches symbols escaped by quotes, and also -// sequences of symbols P, p, and the combinations like `PPPPPPPppppp` -const longFormattingTokensRegExp$1 = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g; - -const escapedStringRegExp$1 = /^'([^]*?)'?$/; -const doubleQuoteRegExp$1 = /''/g; -const unescapedLatinCharacterRegExp$1 = /[a-zA-Z]/; - -/** - * The {@link format} function options. - */ - -/** - * @name format - * @alias formatDate - * @category Common Helpers - * @summary Format the date. - * - * @description - * Return the formatted date string in the given format. The result may vary by locale. - * - * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries. - * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md - * - * The characters wrapped between two single quotes characters (') are escaped. - * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote. - * (see the last example) - * - * Format of the string is based on Unicode Technical Standard #35: - * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table - * with a few additions (see note 7 below the table). - * - * Accepted patterns: - * | Unit | Pattern | Result examples | Notes | - * |---------------------------------|---------|-----------------------------------|-------| - * | Era | G..GGG | AD, BC | | - * | | GGGG | Anno Domini, Before Christ | 2 | - * | | GGGGG | A, B | | - * | Calendar year | y | 44, 1, 1900, 2017 | 5 | - * | | yo | 44th, 1st, 0th, 17th | 5,7 | - * | | yy | 44, 01, 00, 17 | 5 | - * | | yyy | 044, 001, 1900, 2017 | 5 | - * | | yyyy | 0044, 0001, 1900, 2017 | 5 | - * | | yyyyy | ... | 3,5 | - * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 | - * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 | - * | | YY | 44, 01, 00, 17 | 5,8 | - * | | YYY | 044, 001, 1900, 2017 | 5 | - * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 | - * | | YYYYY | ... | 3,5 | - * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 | - * | | RR | -43, 00, 01, 1900, 2017 | 5,7 | - * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 | - * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 | - * | | RRRRR | ... | 3,5,7 | - * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 | - * | | uu | -43, 01, 1900, 2017 | 5 | - * | | uuu | -043, 001, 1900, 2017 | 5 | - * | | uuuu | -0043, 0001, 1900, 2017 | 5 | - * | | uuuuu | ... | 3,5 | - * | Quarter (formatting) | Q | 1, 2, 3, 4 | | - * | | Qo | 1st, 2nd, 3rd, 4th | 7 | - * | | QQ | 01, 02, 03, 04 | | - * | | QQQ | Q1, Q2, Q3, Q4 | | - * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 | - * | | QQQQQ | 1, 2, 3, 4 | 4 | - * | Quarter (stand-alone) | q | 1, 2, 3, 4 | | - * | | qo | 1st, 2nd, 3rd, 4th | 7 | - * | | qq | 01, 02, 03, 04 | | - * | | qqq | Q1, Q2, Q3, Q4 | | - * | | qqqq | 1st quarter, 2nd quarter, ... | 2 | - * | | qqqqq | 1, 2, 3, 4 | 4 | - * | Month (formatting) | M | 1, 2, ..., 12 | | - * | | Mo | 1st, 2nd, ..., 12th | 7 | - * | | MM | 01, 02, ..., 12 | | - * | | MMM | Jan, Feb, ..., Dec | | - * | | MMMM | January, February, ..., December | 2 | - * | | MMMMM | J, F, ..., D | | - * | Month (stand-alone) | L | 1, 2, ..., 12 | | - * | | Lo | 1st, 2nd, ..., 12th | 7 | - * | | LL | 01, 02, ..., 12 | | - * | | LLL | Jan, Feb, ..., Dec | | - * | | LLLL | January, February, ..., December | 2 | - * | | LLLLL | J, F, ..., D | | - * | Local week of year | w | 1, 2, ..., 53 | | - * | | wo | 1st, 2nd, ..., 53th | 7 | - * | | ww | 01, 02, ..., 53 | | - * | ISO week of year | I | 1, 2, ..., 53 | 7 | - * | | Io | 1st, 2nd, ..., 53th | 7 | - * | | II | 01, 02, ..., 53 | 7 | - * | Day of month | d | 1, 2, ..., 31 | | - * | | do | 1st, 2nd, ..., 31st | 7 | - * | | dd | 01, 02, ..., 31 | | - * | Day of year | D | 1, 2, ..., 365, 366 | 9 | - * | | Do | 1st, 2nd, ..., 365th, 366th | 7 | - * | | DD | 01, 02, ..., 365, 366 | 9 | - * | | DDD | 001, 002, ..., 365, 366 | | - * | | DDDD | ... | 3 | - * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | | - * | | EEEE | Monday, Tuesday, ..., Sunday | 2 | - * | | EEEEE | M, T, W, T, F, S, S | | - * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | | - * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 | - * | | io | 1st, 2nd, ..., 7th | 7 | - * | | ii | 01, 02, ..., 07 | 7 | - * | | iii | Mon, Tue, Wed, ..., Sun | 7 | - * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 | - * | | iiiii | M, T, W, T, F, S, S | 7 | - * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 | - * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | | - * | | eo | 2nd, 3rd, ..., 1st | 7 | - * | | ee | 02, 03, ..., 01 | | - * | | eee | Mon, Tue, Wed, ..., Sun | | - * | | eeee | Monday, Tuesday, ..., Sunday | 2 | - * | | eeeee | M, T, W, T, F, S, S | | - * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | | - * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | | - * | | co | 2nd, 3rd, ..., 1st | 7 | - * | | cc | 02, 03, ..., 01 | | - * | | ccc | Mon, Tue, Wed, ..., Sun | | - * | | cccc | Monday, Tuesday, ..., Sunday | 2 | - * | | ccccc | M, T, W, T, F, S, S | | - * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | | - * | AM, PM | a..aa | AM, PM | | - * | | aaa | am, pm | | - * | | aaaa | a.m., p.m. | 2 | - * | | aaaaa | a, p | | - * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | | - * | | bbb | am, pm, noon, midnight | | - * | | bbbb | a.m., p.m., noon, midnight | 2 | - * | | bbbbb | a, p, n, mi | | - * | Flexible day period | B..BBB | at night, in the morning, ... | | - * | | BBBB | at night, in the morning, ... | 2 | - * | | BBBBB | at night, in the morning, ... | | - * | Hour [1-12] | h | 1, 2, ..., 11, 12 | | - * | | ho | 1st, 2nd, ..., 11th, 12th | 7 | - * | | hh | 01, 02, ..., 11, 12 | | - * | Hour [0-23] | H | 0, 1, 2, ..., 23 | | - * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 | - * | | HH | 00, 01, 02, ..., 23 | | - * | Hour [0-11] | K | 1, 2, ..., 11, 0 | | - * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 | - * | | KK | 01, 02, ..., 11, 00 | | - * | Hour [1-24] | k | 24, 1, 2, ..., 23 | | - * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 | - * | | kk | 24, 01, 02, ..., 23 | | - * | Minute | m | 0, 1, ..., 59 | | - * | | mo | 0th, 1st, ..., 59th | 7 | - * | | mm | 00, 01, ..., 59 | | - * | Second | s | 0, 1, ..., 59 | | - * | | so | 0th, 1st, ..., 59th | 7 | - * | | ss | 00, 01, ..., 59 | | - * | Fraction of second | S | 0, 1, ..., 9 | | - * | | SS | 00, 01, ..., 99 | | - * | | SSS | 000, 001, ..., 999 | | - * | | SSSS | ... | 3 | - * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | | - * | | XX | -0800, +0530, Z | | - * | | XXX | -08:00, +05:30, Z | | - * | | XXXX | -0800, +0530, Z, +123456 | 2 | - * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | | - * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | | - * | | xx | -0800, +0530, +0000 | | - * | | xxx | -08:00, +05:30, +00:00 | 2 | - * | | xxxx | -0800, +0530, +0000, +123456 | | - * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | | - * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | | - * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 | - * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 | - * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 | - * | Seconds timestamp | t | 512969520 | 7 | - * | | tt | ... | 3,7 | - * | Milliseconds timestamp | T | 512969520900 | 7 | - * | | TT | ... | 3,7 | - * | Long localized date | P | 04/29/1453 | 7 | - * | | PP | Apr 29, 1453 | 7 | - * | | PPP | April 29th, 1453 | 7 | - * | | PPPP | Friday, April 29th, 1453 | 2,7 | - * | Long localized time | p | 12:00 AM | 7 | - * | | pp | 12:00:00 AM | 7 | - * | | ppp | 12:00:00 AM GMT+2 | 7 | - * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 | - * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 | - * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 | - * | | PPPppp | April 29th, 1453 at ... | 7 | - * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 | - * Notes: - * 1. "Formatting" units (e.g. formatting quarter) in the default en-US locale - * are the same as "stand-alone" units, but are different in some languages. - * "Formatting" units are declined according to the rules of the language - * in the context of a date. "Stand-alone" units are always nominative singular: - * - * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'` - * - * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'` - * - * 2. Any sequence of the identical letters is a pattern, unless it is escaped by - * the single quote characters (see below). - * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`) - * the output will be the same as default pattern for this unit, usually - * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units - * are marked with "2" in the last column of the table. - * - * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'` - * - * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'` - * - * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'` - * - * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'` - * - * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'` - * - * 3. Some patterns could be unlimited length (such as `yyyyyyyy`). - * The output will be padded with zeros to match the length of the pattern. - * - * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'` - * - * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales. - * These tokens represent the shortest form of the quarter. - * - * 5. The main difference between `y` and `u` patterns are B.C. years: - * - * | Year | `y` | `u` | - * |------|-----|-----| - * | AC 1 | 1 | 1 | - * | BC 1 | 1 | 0 | - * | BC 2 | 2 | -1 | - * - * Also `yy` always returns the last two digits of a year, - * while `uu` pads single digit years to 2 characters and returns other years unchanged: - * - * | Year | `yy` | `uu` | - * |------|------|------| - * | 1 | 01 | 01 | - * | 14 | 14 | 14 | - * | 376 | 76 | 376 | - * | 1453 | 53 | 1453 | - * - * The same difference is true for local and ISO week-numbering years (`Y` and `R`), - * except local week-numbering years are dependent on `options.weekStartsOn` - * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear) - * and [getWeekYear](https://date-fns.org/docs/getWeekYear)). - * - * 6. Specific non-location timezones are currently unavailable in `date-fns`, - * so right now these tokens fall back to GMT timezones. - * - * 7. These patterns are not in the Unicode Technical Standard #35: - * - `i`: ISO day of week - * - `I`: ISO week of year - * - `R`: ISO week-numbering year - * - `t`: seconds timestamp - * - `T`: milliseconds timestamp - * - `o`: ordinal number modifier - * - `P`: long localized date - * - `p`: long localized time - * - * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years. - * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md - * - * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month. - * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md - * - * @param date - The original date - * @param format - The string of tokens - * @param options - An object with options - * - * @returns The formatted date string - * - * @throws `date` must not be Invalid Date - * @throws `options.locale` must contain `localize` property - * @throws `options.locale` must contain `formatLong` property - * @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 - * @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 - * @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 - * @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 - * @throws format string contains an unescaped latin alphabet character - * - * @example - * // Represent 11 February 2014 in middle-endian format: - * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy') - * //=> '02/11/2014' - * - * @example - * // Represent 2 July 2014 in Esperanto: - * import { eoLocale } from 'date-fns/locale/eo' - * const result = format(new Date(2014, 6, 2), "do 'de' MMMM yyyy", { - * locale: eoLocale - * }) - * //=> '2-a de julio 2014' - * - * @example - * // Escape string by single quote characters: - * const result = format(new Date(2014, 6, 2, 15), "h 'o''clock'") - * //=> "3 o'clock" - */ -function format(date, formatStr, options) { - const defaultOptions = getDefaultOptions$1(); - const locale = defaultOptions.locale ?? enUS; - - const firstWeekContainsDate = - defaultOptions.firstWeekContainsDate ?? - defaultOptions.locale?.options?.firstWeekContainsDate ?? - 1; - - const weekStartsOn = - defaultOptions.weekStartsOn ?? - defaultOptions.locale?.options?.weekStartsOn ?? - 0; - - const originalDate = toDate(date, options?.in); - - if (!isValid(originalDate)) { - throw new RangeError("Invalid time value"); - } - - let parts = formatStr - .match(longFormattingTokensRegExp$1) - .map((substring) => { - const firstCharacter = substring[0]; - if (firstCharacter === "p" || firstCharacter === "P") { - const longFormatter = longFormatters[firstCharacter]; - return longFormatter(substring, locale.formatLong); - } - return substring; - }) - .join("") - .match(formattingTokensRegExp$1) - .map((substring) => { - // Replace two single quote characters with one single quote character - if (substring === "''") { - return { isToken: false, value: "'" }; - } - - const firstCharacter = substring[0]; - if (firstCharacter === "'") { - return { isToken: false, value: cleanEscapedString$1(substring) }; - } - - if (formatters[firstCharacter]) { - return { isToken: true, value: substring }; - } - - if (firstCharacter.match(unescapedLatinCharacterRegExp$1)) { - throw new RangeError( - "Format string contains an unescaped latin alphabet character `" + - firstCharacter + - "`", - ); - } - - return { isToken: false, value: substring }; - }); - - // invoke localize preprocessor (only for french locales at the moment) - if (locale.localize.preprocessor) { - parts = locale.localize.preprocessor(originalDate, parts); - } - - const formatterOptions = { - firstWeekContainsDate, - weekStartsOn, - locale, - }; - - return parts - .map((part) => { - if (!part.isToken) return part.value; - - const token = part.value; - - if ( - (isProtectedWeekYearToken(token)) || - (isProtectedDayOfYearToken(token)) - ) { - warnOrThrowProtectedError(token, formatStr, String(date)); - } - - const formatter = formatters[token[0]]; - return formatter(originalDate, token, locale.localize, formatterOptions); - }) - .join(""); -} - -function cleanEscapedString$1(input) { - const matched = input.match(escapedStringRegExp$1); - - if (!matched) { - return input; - } - - return matched[1].replace(doubleQuoteRegExp$1, "'"); -} - -/** - * @name getDefaultOptions - * @category Common Helpers - * @summary Get default options. - * @pure false - * - * @description - * Returns an object that contains defaults for - * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate` - * arguments for all functions. - * - * You can change these with [setDefaultOptions](https://date-fns.org/docs/setDefaultOptions). - * - * @returns The default options - * - * @example - * const result = getDefaultOptions() - * //=> {} - * - * @example - * setDefaultOptions({ weekStarsOn: 1, firstWeekContainsDate: 4 }) - * const result = getDefaultOptions() - * //=> { weekStarsOn: 1, firstWeekContainsDate: 4 } - */ -function getDefaultOptions() { - return Object.assign({}, getDefaultOptions$1()); -} - -/** - * The {@link getISODay} function options. - */ - -/** - * @name getISODay - * @category Weekday Helpers - * @summary Get the day of the ISO week of the given date. - * - * @description - * Get the day of the ISO week of the given date, - * which is 7 for Sunday, 1 for Monday etc. - * - * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date - * - * @param date - The given date - * @param options - An object with options - * - * @returns The day of ISO week - * - * @example - * // Which day of the ISO week is 26 February 2012? - * const result = getISODay(new Date(2012, 1, 26)) - * //=> 7 - */ -function getISODay(date, options) { - const day = toDate(date, options?.in).getDay(); - return day === 0 ? 7 : day; -} - -/** - * @name transpose - * @category Generic Helpers - * @summary Transpose the date to the given constructor. - * - * @description - * The function transposes the date to the given constructor. It helps you - * to transpose the date in the system time zone to say `UTCDate` or any other - * date extension. - * - * @typeParam InputDate - The input `Date` type derived from the passed argument. - * @typeParam ResultDate - The result `Date` type derived from the passed constructor. - * - * @param date - The date to use values from - * @param constructor - The date constructor to use - * - * @returns Date transposed to the given constructor - * - * @example - * // Create July 10, 2022 00:00 in locale time zone - * const date = new Date(2022, 6, 10) - * //=> 'Sun Jul 10 2022 00:00:00 GMT+0800 (Singapore Standard Time)' - * - * @example - * // Transpose the date to July 10, 2022 00:00 in UTC - * transpose(date, UTCDate) - * //=> 'Sun Jul 10 2022 00:00:00 GMT+0000 (Coordinated Universal Time)' - */ -function transpose(date, constructor) { - const date_ = isConstructor(constructor) - ? new constructor(0) - : constructFrom(constructor, 0); - date_.setFullYear(date.getFullYear(), date.getMonth(), date.getDate()); - date_.setHours( - date.getHours(), - date.getMinutes(), - date.getSeconds(), - date.getMilliseconds(), - ); - return date_; -} - -function isConstructor(constructor) { - return ( - typeof constructor === "function" && - constructor.prototype?.constructor === constructor - ); -} - -const TIMEZONE_UNIT_PRIORITY = 10; - -class Setter { - subPriority = 0; - - validate(_utcDate, _options) { - return true; - } -} - -class ValueSetter extends Setter { - constructor( - value, - validateValue, - - setValue, - - priority, - subPriority, - ) { - super(); - this.value = value; - this.validateValue = validateValue; - this.setValue = setValue; - this.priority = priority; - if (subPriority) { - this.subPriority = subPriority; - } - } - - validate(date, options) { - return this.validateValue(date, this.value, options); - } - - set(date, flags, options) { - return this.setValue(date, flags, this.value, options); - } -} - -class DateTimezoneSetter extends Setter { - priority = TIMEZONE_UNIT_PRIORITY; - subPriority = -1; - - constructor(context, reference) { - super(); - this.context = context || ((date) => constructFrom(reference, date)); - } - - set(date, flags) { - if (flags.timestampIsSet) return date; - return constructFrom(date, transpose(date, this.context)); - } -} - -class Parser { - run(dateString, token, match, options) { - const result = this.parse(dateString, token, match, options); - if (!result) { - return null; - } - - return { - setter: new ValueSetter( - result.value, - this.validate, - this.set, - this.priority, - this.subPriority, - ), - rest: result.rest, - }; - } - - validate(_utcDate, _value, _options) { - return true; - } -} - -class EraParser extends Parser { - priority = 140; - - parse(dateString, token, match) { - switch (token) { - // AD, BC - case "G": - case "GG": - case "GGG": - return ( - match.era(dateString, { width: "abbreviated" }) || - match.era(dateString, { width: "narrow" }) - ); - - // A, B - case "GGGGG": - return match.era(dateString, { width: "narrow" }); - // Anno Domini, Before Christ - case "GGGG": - default: - return ( - match.era(dateString, { width: "wide" }) || - match.era(dateString, { width: "abbreviated" }) || - match.era(dateString, { width: "narrow" }) - ); - } - } - - set(date, flags, value) { - flags.era = value; - date.setFullYear(value, 0, 1); - date.setHours(0, 0, 0, 0); - return date; - } - - incompatibleTokens = ["R", "u", "t", "T"]; -} - -const numericPatterns = { - month: /^(1[0-2]|0?\d)/, // 0 to 12 - date: /^(3[0-1]|[0-2]?\d)/, // 0 to 31 - dayOfYear: /^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/, // 0 to 366 - week: /^(5[0-3]|[0-4]?\d)/, // 0 to 53 - hour23h: /^(2[0-3]|[0-1]?\d)/, // 0 to 23 - hour24h: /^(2[0-4]|[0-1]?\d)/, // 0 to 24 - hour11h: /^(1[0-1]|0?\d)/, // 0 to 11 - hour12h: /^(1[0-2]|0?\d)/, // 0 to 12 - minute: /^[0-5]?\d/, // 0 to 59 - second: /^[0-5]?\d/, // 0 to 59 - - singleDigit: /^\d/, // 0 to 9 - twoDigits: /^\d{1,2}/, // 0 to 99 - threeDigits: /^\d{1,3}/, // 0 to 999 - fourDigits: /^\d{1,4}/, // 0 to 9999 - - anyDigitsSigned: /^-?\d+/, - singleDigitSigned: /^-?\d/, // 0 to 9, -0 to -9 - twoDigitsSigned: /^-?\d{1,2}/, // 0 to 99, -0 to -99 - threeDigitsSigned: /^-?\d{1,3}/, // 0 to 999, -0 to -999 - fourDigitsSigned: /^-?\d{1,4}/, // 0 to 9999, -0 to -9999 -}; - -const timezonePatterns = { - basicOptionalMinutes: /^([+-])(\d{2})(\d{2})?|Z/, - basic: /^([+-])(\d{2})(\d{2})|Z/, - basicOptionalSeconds: /^([+-])(\d{2})(\d{2})((\d{2}))?|Z/, - extended: /^([+-])(\d{2}):(\d{2})|Z/, - extendedOptionalSeconds: /^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/, -}; - -function mapValue(parseFnResult, mapFn) { - if (!parseFnResult) { - return parseFnResult; - } - - return { - value: mapFn(parseFnResult.value), - rest: parseFnResult.rest, - }; -} - -function parseNumericPattern(pattern, dateString) { - const matchResult = dateString.match(pattern); - - if (!matchResult) { - return null; - } - - return { - value: parseInt(matchResult[0], 10), - rest: dateString.slice(matchResult[0].length), - }; -} - -function parseTimezonePattern(pattern, dateString) { - const matchResult = dateString.match(pattern); - - if (!matchResult) { - return null; - } - - // Input is 'Z' - if (matchResult[0] === "Z") { - return { - value: 0, - rest: dateString.slice(1), - }; - } - - const sign = matchResult[1] === "+" ? 1 : -1; - const hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0; - const minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0; - const seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0; - - return { - value: - sign * - (hours * millisecondsInHour + - minutes * millisecondsInMinute + - seconds * millisecondsInSecond), - rest: dateString.slice(matchResult[0].length), - }; -} - -function parseAnyDigitsSigned(dateString) { - return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString); -} - -function parseNDigits(n, dateString) { - switch (n) { - case 1: - return parseNumericPattern(numericPatterns.singleDigit, dateString); - case 2: - return parseNumericPattern(numericPatterns.twoDigits, dateString); - case 3: - return parseNumericPattern(numericPatterns.threeDigits, dateString); - case 4: - return parseNumericPattern(numericPatterns.fourDigits, dateString); - default: - return parseNumericPattern(new RegExp("^\\d{1," + n + "}"), dateString); - } -} - -function parseNDigitsSigned(n, dateString) { - switch (n) { - case 1: - return parseNumericPattern(numericPatterns.singleDigitSigned, dateString); - case 2: - return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString); - case 3: - return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString); - case 4: - return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString); - default: - return parseNumericPattern(new RegExp("^-?\\d{1," + n + "}"), dateString); - } -} - -function dayPeriodEnumToHours(dayPeriod) { - switch (dayPeriod) { - case "morning": - return 4; - case "evening": - return 17; - case "pm": - case "noon": - case "afternoon": - return 12; - case "am": - case "midnight": - case "night": - default: - return 0; - } -} - -function normalizeTwoDigitYear(twoDigitYear, currentYear) { - const isCommonEra = currentYear > 0; - // Absolute number of the current year: - // 1 -> 1 AC - // 0 -> 1 BC - // -1 -> 2 BC - const absCurrentYear = isCommonEra ? currentYear : 1 - currentYear; - - let result; - if (absCurrentYear <= 50) { - result = twoDigitYear || 100; - } else { - const rangeEnd = absCurrentYear + 50; - const rangeEndCentury = Math.trunc(rangeEnd / 100) * 100; - const isPreviousCentury = twoDigitYear >= rangeEnd % 100; - result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0); - } - - return isCommonEra ? result : 1 - result; -} - -function isLeapYearIndex(year) { - return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0); -} - -// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns -// | Year | y | yy | yyy | yyyy | yyyyy | -// |----------|-------|----|-------|-------|-------| -// | AD 1 | 1 | 01 | 001 | 0001 | 00001 | -// | AD 12 | 12 | 12 | 012 | 0012 | 00012 | -// | AD 123 | 123 | 23 | 123 | 0123 | 00123 | -// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 | -// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 | -class YearParser extends Parser { - priority = 130; - incompatibleTokens = ["Y", "R", "u", "w", "I", "i", "e", "c", "t", "T"]; - - parse(dateString, token, match) { - const valueCallback = (year) => ({ - year, - isTwoDigitYear: token === "yy", - }); - - switch (token) { - case "y": - return mapValue(parseNDigits(4, dateString), valueCallback); - case "yo": - return mapValue( - match.ordinalNumber(dateString, { - unit: "year", - }), - valueCallback, - ); - default: - return mapValue(parseNDigits(token.length, dateString), valueCallback); - } - } - - validate(_date, value) { - return value.isTwoDigitYear || value.year > 0; - } - - set(date, flags, value) { - const currentYear = date.getFullYear(); - - if (value.isTwoDigitYear) { - const normalizedTwoDigitYear = normalizeTwoDigitYear( - value.year, - currentYear, - ); - date.setFullYear(normalizedTwoDigitYear, 0, 1); - date.setHours(0, 0, 0, 0); - return date; - } - - const year = - !("era" in flags) || flags.era === 1 ? value.year : 1 - value.year; - date.setFullYear(year, 0, 1); - date.setHours(0, 0, 0, 0); - return date; - } -} - -// Local week-numbering year -class LocalWeekYearParser extends Parser { - priority = 130; - - parse(dateString, token, match) { - const valueCallback = (year) => ({ - year, - isTwoDigitYear: token === "YY", - }); - - switch (token) { - case "Y": - return mapValue(parseNDigits(4, dateString), valueCallback); - case "Yo": - return mapValue( - match.ordinalNumber(dateString, { - unit: "year", - }), - valueCallback, - ); - default: - return mapValue(parseNDigits(token.length, dateString), valueCallback); - } - } - - validate(_date, value) { - return value.isTwoDigitYear || value.year > 0; - } - - set(date, flags, value, options) { - const currentYear = getWeekYear(date, options); - - if (value.isTwoDigitYear) { - const normalizedTwoDigitYear = normalizeTwoDigitYear( - value.year, - currentYear, - ); - date.setFullYear( - normalizedTwoDigitYear, - 0, - options.firstWeekContainsDate, - ); - date.setHours(0, 0, 0, 0); - return startOfWeek(date, options); - } - - const year = - !("era" in flags) || flags.era === 1 ? value.year : 1 - value.year; - date.setFullYear(year, 0, options.firstWeekContainsDate); - date.setHours(0, 0, 0, 0); - return startOfWeek(date, options); - } - - incompatibleTokens = [ - "y", - "R", - "u", - "Q", - "q", - "M", - "L", - "I", - "d", - "D", - "i", - "t", - "T", - ]; -} - -// ISO week-numbering year -class ISOWeekYearParser extends Parser { - priority = 130; - - parse(dateString, token) { - if (token === "R") { - return parseNDigitsSigned(4, dateString); - } - - return parseNDigitsSigned(token.length, dateString); - } - - set(date, _flags, value) { - const firstWeekOfYear = constructFrom(date, 0); - firstWeekOfYear.setFullYear(value, 0, 4); - firstWeekOfYear.setHours(0, 0, 0, 0); - return startOfISOWeek(firstWeekOfYear); - } - - incompatibleTokens = [ - "G", - "y", - "Y", - "u", - "Q", - "q", - "M", - "L", - "w", - "d", - "D", - "e", - "c", - "t", - "T", - ]; -} - -class ExtendedYearParser extends Parser { - priority = 130; - - parse(dateString, token) { - if (token === "u") { - return parseNDigitsSigned(4, dateString); - } - - return parseNDigitsSigned(token.length, dateString); - } - - set(date, _flags, value) { - date.setFullYear(value, 0, 1); - date.setHours(0, 0, 0, 0); - return date; - } - - incompatibleTokens = ["G", "y", "Y", "R", "w", "I", "i", "e", "c", "t", "T"]; -} - -class QuarterParser extends Parser { - priority = 120; - - parse(dateString, token, match) { - switch (token) { - // 1, 2, 3, 4 - case "Q": - case "QQ": // 01, 02, 03, 04 - return parseNDigits(token.length, dateString); - // 1st, 2nd, 3rd, 4th - case "Qo": - return match.ordinalNumber(dateString, { unit: "quarter" }); - // Q1, Q2, Q3, Q4 - case "QQQ": - return ( - match.quarter(dateString, { - width: "abbreviated", - context: "formatting", - }) || - match.quarter(dateString, { - width: "narrow", - context: "formatting", - }) - ); - - // 1, 2, 3, 4 (narrow quarter; could be not numerical) - case "QQQQQ": - return match.quarter(dateString, { - width: "narrow", - context: "formatting", - }); - // 1st quarter, 2nd quarter, ... - case "QQQQ": - default: - return ( - match.quarter(dateString, { - width: "wide", - context: "formatting", - }) || - match.quarter(dateString, { - width: "abbreviated", - context: "formatting", - }) || - match.quarter(dateString, { - width: "narrow", - context: "formatting", - }) - ); - } - } - - validate(_date, value) { - return value >= 1 && value <= 4; - } - - set(date, _flags, value) { - date.setMonth((value - 1) * 3, 1); - date.setHours(0, 0, 0, 0); - return date; - } - - incompatibleTokens = [ - "Y", - "R", - "q", - "M", - "L", - "w", - "I", - "d", - "D", - "i", - "e", - "c", - "t", - "T", - ]; -} - -class StandAloneQuarterParser extends Parser { - priority = 120; - - parse(dateString, token, match) { - switch (token) { - // 1, 2, 3, 4 - case "q": - case "qq": // 01, 02, 03, 04 - return parseNDigits(token.length, dateString); - // 1st, 2nd, 3rd, 4th - case "qo": - return match.ordinalNumber(dateString, { unit: "quarter" }); - // Q1, Q2, Q3, Q4 - case "qqq": - return ( - match.quarter(dateString, { - width: "abbreviated", - context: "standalone", - }) || - match.quarter(dateString, { - width: "narrow", - context: "standalone", - }) - ); - - // 1, 2, 3, 4 (narrow quarter; could be not numerical) - case "qqqqq": - return match.quarter(dateString, { - width: "narrow", - context: "standalone", - }); - // 1st quarter, 2nd quarter, ... - case "qqqq": - default: - return ( - match.quarter(dateString, { - width: "wide", - context: "standalone", - }) || - match.quarter(dateString, { - width: "abbreviated", - context: "standalone", - }) || - match.quarter(dateString, { - width: "narrow", - context: "standalone", - }) - ); - } - } - - validate(_date, value) { - return value >= 1 && value <= 4; - } - - set(date, _flags, value) { - date.setMonth((value - 1) * 3, 1); - date.setHours(0, 0, 0, 0); - return date; - } - - incompatibleTokens = [ - "Y", - "R", - "Q", - "M", - "L", - "w", - "I", - "d", - "D", - "i", - "e", - "c", - "t", - "T", - ]; -} - -class MonthParser extends Parser { - incompatibleTokens = [ - "Y", - "R", - "q", - "Q", - "L", - "w", - "I", - "D", - "i", - "e", - "c", - "t", - "T", - ]; - - priority = 110; - - parse(dateString, token, match) { - const valueCallback = (value) => value - 1; - - switch (token) { - // 1, 2, ..., 12 - case "M": - return mapValue( - parseNumericPattern(numericPatterns.month, dateString), - valueCallback, - ); - // 01, 02, ..., 12 - case "MM": - return mapValue(parseNDigits(2, dateString), valueCallback); - // 1st, 2nd, ..., 12th - case "Mo": - return mapValue( - match.ordinalNumber(dateString, { - unit: "month", - }), - valueCallback, - ); - // Jan, Feb, ..., Dec - case "MMM": - return ( - match.month(dateString, { - width: "abbreviated", - context: "formatting", - }) || - match.month(dateString, { width: "narrow", context: "formatting" }) - ); - - // J, F, ..., D - case "MMMMM": - return match.month(dateString, { - width: "narrow", - context: "formatting", - }); - // January, February, ..., December - case "MMMM": - default: - return ( - match.month(dateString, { width: "wide", context: "formatting" }) || - match.month(dateString, { - width: "abbreviated", - context: "formatting", - }) || - match.month(dateString, { width: "narrow", context: "formatting" }) - ); - } - } - - validate(_date, value) { - return value >= 0 && value <= 11; - } - - set(date, _flags, value) { - date.setMonth(value, 1); - date.setHours(0, 0, 0, 0); - return date; - } -} - -class StandAloneMonthParser extends Parser { - priority = 110; - - parse(dateString, token, match) { - const valueCallback = (value) => value - 1; - - switch (token) { - // 1, 2, ..., 12 - case "L": - return mapValue( - parseNumericPattern(numericPatterns.month, dateString), - valueCallback, - ); - // 01, 02, ..., 12 - case "LL": - return mapValue(parseNDigits(2, dateString), valueCallback); - // 1st, 2nd, ..., 12th - case "Lo": - return mapValue( - match.ordinalNumber(dateString, { - unit: "month", - }), - valueCallback, - ); - // Jan, Feb, ..., Dec - case "LLL": - return ( - match.month(dateString, { - width: "abbreviated", - context: "standalone", - }) || - match.month(dateString, { width: "narrow", context: "standalone" }) - ); - - // J, F, ..., D - case "LLLLL": - return match.month(dateString, { - width: "narrow", - context: "standalone", - }); - // January, February, ..., December - case "LLLL": - default: - return ( - match.month(dateString, { width: "wide", context: "standalone" }) || - match.month(dateString, { - width: "abbreviated", - context: "standalone", - }) || - match.month(dateString, { width: "narrow", context: "standalone" }) - ); - } - } - - validate(_date, value) { - return value >= 0 && value <= 11; - } - - set(date, _flags, value) { - date.setMonth(value, 1); - date.setHours(0, 0, 0, 0); - return date; - } - - incompatibleTokens = [ - "Y", - "R", - "q", - "Q", - "M", - "w", - "I", - "D", - "i", - "e", - "c", - "t", - "T", - ]; -} - -/** - * The {@link setWeek} function options. - */ - -/** - * @name setWeek - * @category Week Helpers - * @summary Set the local week to the given date. - * - * @description - * Set the local week to the given date, saving the weekday number. - * The exact calculation depends on the values of - * `options.weekStartsOn` (which is the index of the first day of the week) - * and `options.firstWeekContainsDate` (which is the day of January, which is always in - * the first week of the week-numbering year) - * - * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system - * - * @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). - * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. - * - * @param date - The date to be changed - * @param week - The week of the new date - * @param options - An object with options - * - * @returns The new date with the local week set - * - * @example - * // Set the 1st week to 2 January 2005 with default options: - * const result = setWeek(new Date(2005, 0, 2), 1) - * //=> Sun Dec 26 2004 00:00:00 - * - * @example - * // Set the 1st week to 2 January 2005, - * // if Monday is the first day of the week, - * // and the first week of the year always contains 4 January: - * const result = setWeek(new Date(2005, 0, 2), 1, { - * weekStartsOn: 1, - * firstWeekContainsDate: 4 - * }) - * //=> Sun Jan 4 2004 00:00:00 - */ -function setWeek(date, week, options) { - const date_ = toDate(date, options?.in); - const diff = getWeek(date_, options) - week; - date_.setDate(date_.getDate() - diff * 7); - return toDate(date_, options?.in); -} - -// Local week of year -class LocalWeekParser extends Parser { - priority = 100; - - parse(dateString, token, match) { - switch (token) { - case "w": - return parseNumericPattern(numericPatterns.week, dateString); - case "wo": - return match.ordinalNumber(dateString, { unit: "week" }); - default: - return parseNDigits(token.length, dateString); - } - } - - validate(_date, value) { - return value >= 1 && value <= 53; - } - - set(date, _flags, value, options) { - return startOfWeek(setWeek(date, value, options), options); - } - - incompatibleTokens = [ - "y", - "R", - "u", - "q", - "Q", - "M", - "L", - "I", - "d", - "D", - "i", - "t", - "T", - ]; -} - -/** - * The {@link setISOWeek} function options. - */ - -/** - * @name setISOWeek - * @category ISO Week Helpers - * @summary Set the ISO week to the given date. - * - * @description - * Set the ISO week to the given date, saving the weekday number. - * - * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date - * - * @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). - * @typeParam ResultDate - The `Date` type of the context function. - * - * @param date - The date to be changed - * @param week - The ISO week of the new date - * @param options - An object with options - * - * @returns The new date with the ISO week set - * - * @example - * // Set the 53rd ISO week to 7 August 2004: - * const result = setISOWeek(new Date(2004, 7, 7), 53) - * //=> Sat Jan 01 2005 00:00:00 - */ -function setISOWeek(date, week, options) { - const _date = toDate(date, options?.in); - const diff = getISOWeek(_date, options) - week; - _date.setDate(_date.getDate() - diff * 7); - return _date; -} - -// ISO week of year -class ISOWeekParser extends Parser { - priority = 100; - - parse(dateString, token, match) { - switch (token) { - case "I": - return parseNumericPattern(numericPatterns.week, dateString); - case "Io": - return match.ordinalNumber(dateString, { unit: "week" }); - default: - return parseNDigits(token.length, dateString); - } - } - - validate(_date, value) { - return value >= 1 && value <= 53; - } - - set(date, _flags, value) { - return startOfISOWeek(setISOWeek(date, value)); - } - - incompatibleTokens = [ - "y", - "Y", - "u", - "q", - "Q", - "M", - "L", - "w", - "d", - "D", - "e", - "c", - "t", - "T", - ]; -} - -const DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; -const DAYS_IN_MONTH_LEAP_YEAR = [ - 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, -]; - -// Day of the month -class DateParser extends Parser { - priority = 90; - subPriority = 1; - - parse(dateString, token, match) { - switch (token) { - case "d": - return parseNumericPattern(numericPatterns.date, dateString); - case "do": - return match.ordinalNumber(dateString, { unit: "date" }); - default: - return parseNDigits(token.length, dateString); - } - } - - validate(date, value) { - const year = date.getFullYear(); - const isLeapYear = isLeapYearIndex(year); - const month = date.getMonth(); - if (isLeapYear) { - return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month]; - } else { - return value >= 1 && value <= DAYS_IN_MONTH[month]; - } - } - - set(date, _flags, value) { - date.setDate(value); - date.setHours(0, 0, 0, 0); - return date; - } - - incompatibleTokens = [ - "Y", - "R", - "q", - "Q", - "w", - "I", - "D", - "i", - "e", - "c", - "t", - "T", - ]; -} - -class DayOfYearParser extends Parser { - priority = 90; - - subpriority = 1; - - parse(dateString, token, match) { - switch (token) { - case "D": - case "DD": - return parseNumericPattern(numericPatterns.dayOfYear, dateString); - case "Do": - return match.ordinalNumber(dateString, { unit: "date" }); - default: - return parseNDigits(token.length, dateString); - } - } - - validate(date, value) { - const year = date.getFullYear(); - const isLeapYear = isLeapYearIndex(year); - if (isLeapYear) { - return value >= 1 && value <= 366; - } else { - return value >= 1 && value <= 365; - } - } - - set(date, _flags, value) { - date.setMonth(0, value); - date.setHours(0, 0, 0, 0); - return date; - } - - incompatibleTokens = [ - "Y", - "R", - "q", - "Q", - "M", - "L", - "w", - "I", - "d", - "E", - "i", - "e", - "c", - "t", - "T", - ]; -} - -/** - * The {@link setDay} function options. - */ - -/** - * @name setDay - * @category Weekday Helpers - * @summary Set the day of the week to the given date. - * - * @description - * Set the day of the week to the given date. - * - * @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). - * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. - * - * @param date - The date to be changed - * @param day - The day of the week of the new date - * @param options - An object with options. - * - * @returns The new date with the day of the week set - * - * @example - * // Set week day to Sunday, with the default weekStartsOn of Sunday: - * const result = setDay(new Date(2014, 8, 1), 0) - * //=> Sun Aug 31 2014 00:00:00 - * - * @example - * // Set week day to Sunday, with a weekStartsOn of Monday: - * const result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 }) - * //=> Sun Sep 07 2014 00:00:00 - */ -function setDay(date, day, options) { - const defaultOptions = getDefaultOptions$1(); - const weekStartsOn = - options?.weekStartsOn ?? - options?.locale?.options?.weekStartsOn ?? - defaultOptions.weekStartsOn ?? - defaultOptions.locale?.options?.weekStartsOn ?? - 0; - - const date_ = toDate(date, options?.in); - const currentDay = date_.getDay(); - - const remainder = day % 7; - const dayIndex = (remainder + 7) % 7; - - const delta = 7 - weekStartsOn; - const diff = - day < 0 || day > 6 - ? day - ((currentDay + delta) % 7) - : ((dayIndex + delta) % 7) - ((currentDay + delta) % 7); - return addDays(date_, diff, options); -} - -// Day of week -class DayParser extends Parser { - priority = 90; - - parse(dateString, token, match) { - switch (token) { - // Tue - case "E": - case "EE": - case "EEE": - return ( - match.day(dateString, { - width: "abbreviated", - context: "formatting", - }) || - match.day(dateString, { width: "short", context: "formatting" }) || - match.day(dateString, { width: "narrow", context: "formatting" }) - ); - - // T - case "EEEEE": - return match.day(dateString, { - width: "narrow", - context: "formatting", - }); - // Tu - case "EEEEEE": - return ( - match.day(dateString, { width: "short", context: "formatting" }) || - match.day(dateString, { width: "narrow", context: "formatting" }) - ); - - // Tuesday - case "EEEE": - default: - return ( - match.day(dateString, { width: "wide", context: "formatting" }) || - match.day(dateString, { - width: "abbreviated", - context: "formatting", - }) || - match.day(dateString, { width: "short", context: "formatting" }) || - match.day(dateString, { width: "narrow", context: "formatting" }) - ); - } - } - - validate(_date, value) { - return value >= 0 && value <= 6; - } - - set(date, _flags, value, options) { - date = setDay(date, value, options); - date.setHours(0, 0, 0, 0); - return date; - } - - incompatibleTokens = ["D", "i", "e", "c", "t", "T"]; -} - -// Local day of week -class LocalDayParser extends Parser { - priority = 90; - parse(dateString, token, match, options) { - const valueCallback = (value) => { - // We want here floor instead of trunc, so we get -7 for value 0 instead of 0 - const wholeWeekDays = Math.floor((value - 1) / 7) * 7; - return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays; - }; - - switch (token) { - // 3 - case "e": - case "ee": // 03 - return mapValue(parseNDigits(token.length, dateString), valueCallback); - // 3rd - case "eo": - return mapValue( - match.ordinalNumber(dateString, { - unit: "day", - }), - valueCallback, - ); - // Tue - case "eee": - return ( - match.day(dateString, { - width: "abbreviated", - context: "formatting", - }) || - match.day(dateString, { width: "short", context: "formatting" }) || - match.day(dateString, { width: "narrow", context: "formatting" }) - ); - - // T - case "eeeee": - return match.day(dateString, { - width: "narrow", - context: "formatting", - }); - // Tu - case "eeeeee": - return ( - match.day(dateString, { width: "short", context: "formatting" }) || - match.day(dateString, { width: "narrow", context: "formatting" }) - ); - - // Tuesday - case "eeee": - default: - return ( - match.day(dateString, { width: "wide", context: "formatting" }) || - match.day(dateString, { - width: "abbreviated", - context: "formatting", - }) || - match.day(dateString, { width: "short", context: "formatting" }) || - match.day(dateString, { width: "narrow", context: "formatting" }) - ); - } - } - - validate(_date, value) { - return value >= 0 && value <= 6; - } - - set(date, _flags, value, options) { - date = setDay(date, value, options); - date.setHours(0, 0, 0, 0); - return date; - } - - incompatibleTokens = [ - "y", - "R", - "u", - "q", - "Q", - "M", - "L", - "I", - "d", - "D", - "E", - "i", - "c", - "t", - "T", - ]; -} - -// Stand-alone local day of week -class StandAloneLocalDayParser extends Parser { - priority = 90; - - parse(dateString, token, match, options) { - const valueCallback = (value) => { - // We want here floor instead of trunc, so we get -7 for value 0 instead of 0 - const wholeWeekDays = Math.floor((value - 1) / 7) * 7; - return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays; - }; - - switch (token) { - // 3 - case "c": - case "cc": // 03 - return mapValue(parseNDigits(token.length, dateString), valueCallback); - // 3rd - case "co": - return mapValue( - match.ordinalNumber(dateString, { - unit: "day", - }), - valueCallback, - ); - // Tue - case "ccc": - return ( - match.day(dateString, { - width: "abbreviated", - context: "standalone", - }) || - match.day(dateString, { width: "short", context: "standalone" }) || - match.day(dateString, { width: "narrow", context: "standalone" }) - ); - - // T - case "ccccc": - return match.day(dateString, { - width: "narrow", - context: "standalone", - }); - // Tu - case "cccccc": - return ( - match.day(dateString, { width: "short", context: "standalone" }) || - match.day(dateString, { width: "narrow", context: "standalone" }) - ); - - // Tuesday - case "cccc": - default: - return ( - match.day(dateString, { width: "wide", context: "standalone" }) || - match.day(dateString, { - width: "abbreviated", - context: "standalone", - }) || - match.day(dateString, { width: "short", context: "standalone" }) || - match.day(dateString, { width: "narrow", context: "standalone" }) - ); - } - } - - validate(_date, value) { - return value >= 0 && value <= 6; - } - - set(date, _flags, value, options) { - date = setDay(date, value, options); - date.setHours(0, 0, 0, 0); - return date; - } - - incompatibleTokens = [ - "y", - "R", - "u", - "q", - "Q", - "M", - "L", - "I", - "d", - "D", - "E", - "i", - "e", - "t", - "T", - ]; -} - -/** - * The {@link setISODay} function options. - */ - -/** - * @name setISODay - * @category Weekday Helpers - * @summary Set the day of the ISO week to the given date. - * - * @description - * Set the day of the ISO week to the given date. - * ISO week starts with Monday. - * 7 is the index of Sunday, 1 is the index of Monday, etc. - * - * @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). - * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. - * - * @param date - The date to be changed - * @param day - The day of the ISO week of the new date - * @param options - An object with options - * - * @returns The new date with the day of the ISO week set - * - * @example - * // Set Sunday to 1 September 2014: - * const result = setISODay(new Date(2014, 8, 1), 7) - * //=> Sun Sep 07 2014 00:00:00 - */ -function setISODay(date, day, options) { - const date_ = toDate(date, options?.in); - const currentDay = getISODay(date_, options); - const diff = day - currentDay; - return addDays(date_, diff, options); -} - -// ISO day of week -class ISODayParser extends Parser { - priority = 90; - - parse(dateString, token, match) { - const valueCallback = (value) => { - if (value === 0) { - return 7; - } - return value; - }; - - switch (token) { - // 2 - case "i": - case "ii": // 02 - return parseNDigits(token.length, dateString); - // 2nd - case "io": - return match.ordinalNumber(dateString, { unit: "day" }); - // Tue - case "iii": - return mapValue( - match.day(dateString, { - width: "abbreviated", - context: "formatting", - }) || - match.day(dateString, { - width: "short", - context: "formatting", - }) || - match.day(dateString, { - width: "narrow", - context: "formatting", - }), - valueCallback, - ); - // T - case "iiiii": - return mapValue( - match.day(dateString, { - width: "narrow", - context: "formatting", - }), - valueCallback, - ); - // Tu - case "iiiiii": - return mapValue( - match.day(dateString, { - width: "short", - context: "formatting", - }) || - match.day(dateString, { - width: "narrow", - context: "formatting", - }), - valueCallback, - ); - // Tuesday - case "iiii": - default: - return mapValue( - match.day(dateString, { - width: "wide", - context: "formatting", - }) || - match.day(dateString, { - width: "abbreviated", - context: "formatting", - }) || - match.day(dateString, { - width: "short", - context: "formatting", - }) || - match.day(dateString, { - width: "narrow", - context: "formatting", - }), - valueCallback, - ); - } - } - - validate(_date, value) { - return value >= 1 && value <= 7; - } - - set(date, _flags, value) { - date = setISODay(date, value); - date.setHours(0, 0, 0, 0); - return date; - } - - incompatibleTokens = [ - "y", - "Y", - "u", - "q", - "Q", - "M", - "L", - "w", - "d", - "D", - "E", - "e", - "c", - "t", - "T", - ]; -} - -class AMPMParser extends Parser { - priority = 80; - - parse(dateString, token, match) { - switch (token) { - case "a": - case "aa": - case "aaa": - return ( - match.dayPeriod(dateString, { - width: "abbreviated", - context: "formatting", - }) || - match.dayPeriod(dateString, { - width: "narrow", - context: "formatting", - }) - ); - - case "aaaaa": - return match.dayPeriod(dateString, { - width: "narrow", - context: "formatting", - }); - case "aaaa": - default: - return ( - match.dayPeriod(dateString, { - width: "wide", - context: "formatting", - }) || - match.dayPeriod(dateString, { - width: "abbreviated", - context: "formatting", - }) || - match.dayPeriod(dateString, { - width: "narrow", - context: "formatting", - }) - ); - } - } - - set(date, _flags, value) { - date.setHours(dayPeriodEnumToHours(value), 0, 0, 0); - return date; - } - - incompatibleTokens = ["b", "B", "H", "k", "t", "T"]; -} - -class AMPMMidnightParser extends Parser { - priority = 80; - - parse(dateString, token, match) { - switch (token) { - case "b": - case "bb": - case "bbb": - return ( - match.dayPeriod(dateString, { - width: "abbreviated", - context: "formatting", - }) || - match.dayPeriod(dateString, { - width: "narrow", - context: "formatting", - }) - ); - - case "bbbbb": - return match.dayPeriod(dateString, { - width: "narrow", - context: "formatting", - }); - case "bbbb": - default: - return ( - match.dayPeriod(dateString, { - width: "wide", - context: "formatting", - }) || - match.dayPeriod(dateString, { - width: "abbreviated", - context: "formatting", - }) || - match.dayPeriod(dateString, { - width: "narrow", - context: "formatting", - }) - ); - } - } - - set(date, _flags, value) { - date.setHours(dayPeriodEnumToHours(value), 0, 0, 0); - return date; - } - - incompatibleTokens = ["a", "B", "H", "k", "t", "T"]; -} - -// in the morning, in the afternoon, in the evening, at night -class DayPeriodParser extends Parser { - priority = 80; - - parse(dateString, token, match) { - switch (token) { - case "B": - case "BB": - case "BBB": - return ( - match.dayPeriod(dateString, { - width: "abbreviated", - context: "formatting", - }) || - match.dayPeriod(dateString, { - width: "narrow", - context: "formatting", - }) - ); - - case "BBBBB": - return match.dayPeriod(dateString, { - width: "narrow", - context: "formatting", - }); - case "BBBB": - default: - return ( - match.dayPeriod(dateString, { - width: "wide", - context: "formatting", - }) || - match.dayPeriod(dateString, { - width: "abbreviated", - context: "formatting", - }) || - match.dayPeriod(dateString, { - width: "narrow", - context: "formatting", - }) - ); - } - } - - set(date, _flags, value) { - date.setHours(dayPeriodEnumToHours(value), 0, 0, 0); - return date; - } - - incompatibleTokens = ["a", "b", "t", "T"]; -} - -class Hour1to12Parser extends Parser { - priority = 70; - - parse(dateString, token, match) { - switch (token) { - case "h": - return parseNumericPattern(numericPatterns.hour12h, dateString); - case "ho": - return match.ordinalNumber(dateString, { unit: "hour" }); - default: - return parseNDigits(token.length, dateString); - } - } - - validate(_date, value) { - return value >= 1 && value <= 12; - } - - set(date, _flags, value) { - const isPM = date.getHours() >= 12; - if (isPM && value < 12) { - date.setHours(value + 12, 0, 0, 0); - } else if (!isPM && value === 12) { - date.setHours(0, 0, 0, 0); - } else { - date.setHours(value, 0, 0, 0); - } - return date; - } - - incompatibleTokens = ["H", "K", "k", "t", "T"]; -} - -class Hour0to23Parser extends Parser { - priority = 70; - - parse(dateString, token, match) { - switch (token) { - case "H": - return parseNumericPattern(numericPatterns.hour23h, dateString); - case "Ho": - return match.ordinalNumber(dateString, { unit: "hour" }); - default: - return parseNDigits(token.length, dateString); - } - } - - validate(_date, value) { - return value >= 0 && value <= 23; - } - - set(date, _flags, value) { - date.setHours(value, 0, 0, 0); - return date; - } - - incompatibleTokens = ["a", "b", "h", "K", "k", "t", "T"]; -} - -class Hour0To11Parser extends Parser { - priority = 70; - - parse(dateString, token, match) { - switch (token) { - case "K": - return parseNumericPattern(numericPatterns.hour11h, dateString); - case "Ko": - return match.ordinalNumber(dateString, { unit: "hour" }); - default: - return parseNDigits(token.length, dateString); - } - } - - validate(_date, value) { - return value >= 0 && value <= 11; - } - - set(date, _flags, value) { - const isPM = date.getHours() >= 12; - if (isPM && value < 12) { - date.setHours(value + 12, 0, 0, 0); - } else { - date.setHours(value, 0, 0, 0); - } - return date; - } - - incompatibleTokens = ["h", "H", "k", "t", "T"]; -} - -class Hour1To24Parser extends Parser { - priority = 70; - - parse(dateString, token, match) { - switch (token) { - case "k": - return parseNumericPattern(numericPatterns.hour24h, dateString); - case "ko": - return match.ordinalNumber(dateString, { unit: "hour" }); - default: - return parseNDigits(token.length, dateString); - } - } - - validate(_date, value) { - return value >= 1 && value <= 24; - } - - set(date, _flags, value) { - const hours = value <= 24 ? value % 24 : value; - date.setHours(hours, 0, 0, 0); - return date; - } - - incompatibleTokens = ["a", "b", "h", "H", "K", "t", "T"]; -} - -class MinuteParser extends Parser { - priority = 60; - - parse(dateString, token, match) { - switch (token) { - case "m": - return parseNumericPattern(numericPatterns.minute, dateString); - case "mo": - return match.ordinalNumber(dateString, { unit: "minute" }); - default: - return parseNDigits(token.length, dateString); - } - } - - validate(_date, value) { - return value >= 0 && value <= 59; - } - - set(date, _flags, value) { - date.setMinutes(value, 0, 0); - return date; - } - - incompatibleTokens = ["t", "T"]; -} - -class SecondParser extends Parser { - priority = 50; - - parse(dateString, token, match) { - switch (token) { - case "s": - return parseNumericPattern(numericPatterns.second, dateString); - case "so": - return match.ordinalNumber(dateString, { unit: "second" }); - default: - return parseNDigits(token.length, dateString); - } - } - - validate(_date, value) { - return value >= 0 && value <= 59; - } - - set(date, _flags, value) { - date.setSeconds(value, 0); - return date; - } - - incompatibleTokens = ["t", "T"]; -} - -class FractionOfSecondParser extends Parser { - priority = 30; - - parse(dateString, token) { - const valueCallback = (value) => - Math.trunc(value * Math.pow(10, -token.length + 3)); - return mapValue(parseNDigits(token.length, dateString), valueCallback); - } - - set(date, _flags, value) { - date.setMilliseconds(value); - return date; - } - - incompatibleTokens = ["t", "T"]; -} - -// Timezone (ISO-8601. +00:00 is `'Z'`) -class ISOTimezoneWithZParser extends Parser { - priority = 10; - - parse(dateString, token) { - switch (token) { - case "X": - return parseTimezonePattern( - timezonePatterns.basicOptionalMinutes, - dateString, - ); - case "XX": - return parseTimezonePattern(timezonePatterns.basic, dateString); - case "XXXX": - return parseTimezonePattern( - timezonePatterns.basicOptionalSeconds, - dateString, - ); - case "XXXXX": - return parseTimezonePattern( - timezonePatterns.extendedOptionalSeconds, - dateString, - ); - case "XXX": - default: - return parseTimezonePattern(timezonePatterns.extended, dateString); - } - } - - set(date, flags, value) { - if (flags.timestampIsSet) return date; - return constructFrom( - date, - date.getTime() - getTimezoneOffsetInMilliseconds(date) - value, - ); - } - - incompatibleTokens = ["t", "T", "x"]; -} - -// Timezone (ISO-8601) -class ISOTimezoneParser extends Parser { - priority = 10; - - parse(dateString, token) { - switch (token) { - case "x": - return parseTimezonePattern( - timezonePatterns.basicOptionalMinutes, - dateString, - ); - case "xx": - return parseTimezonePattern(timezonePatterns.basic, dateString); - case "xxxx": - return parseTimezonePattern( - timezonePatterns.basicOptionalSeconds, - dateString, - ); - case "xxxxx": - return parseTimezonePattern( - timezonePatterns.extendedOptionalSeconds, - dateString, - ); - case "xxx": - default: - return parseTimezonePattern(timezonePatterns.extended, dateString); - } - } - - set(date, flags, value) { - if (flags.timestampIsSet) return date; - return constructFrom( - date, - date.getTime() - getTimezoneOffsetInMilliseconds(date) - value, - ); - } - - incompatibleTokens = ["t", "T", "X"]; -} - -class TimestampSecondsParser extends Parser { - priority = 40; - - parse(dateString) { - return parseAnyDigitsSigned(dateString); - } - - set(date, _flags, value) { - return [constructFrom(date, value * 1000), { timestampIsSet: true }]; - } - - incompatibleTokens = "*"; -} - -class TimestampMillisecondsParser extends Parser { - priority = 20; - - parse(dateString) { - return parseAnyDigitsSigned(dateString); - } - - set(date, _flags, value) { - return [constructFrom(date, value), { timestampIsSet: true }]; - } - - incompatibleTokens = "*"; -} - -/* - * | | Unit | | Unit | - * |-----|--------------------------------|-----|--------------------------------| - * | a | AM, PM | A* | Milliseconds in day | - * | b | AM, PM, noon, midnight | B | Flexible day period | - * | c | Stand-alone local day of week | C* | Localized hour w/ day period | - * | d | Day of month | D | Day of year | - * | e | Local day of week | E | Day of week | - * | f | | F* | Day of week in month | - * | g* | Modified Julian day | G | Era | - * | h | Hour [1-12] | H | Hour [0-23] | - * | i! | ISO day of week | I! | ISO week of year | - * | j* | Localized hour w/ day period | J* | Localized hour w/o day period | - * | k | Hour [1-24] | K | Hour [0-11] | - * | l* | (deprecated) | L | Stand-alone month | - * | m | Minute | M | Month | - * | n | | N | | - * | o! | Ordinal number modifier | O* | Timezone (GMT) | - * | p | | P | | - * | q | Stand-alone quarter | Q | Quarter | - * | r* | Related Gregorian year | R! | ISO week-numbering year | - * | s | Second | S | Fraction of second | - * | t! | Seconds timestamp | T! | Milliseconds timestamp | - * | u | Extended year | U* | Cyclic year | - * | v* | Timezone (generic non-locat.) | V* | Timezone (location) | - * | w | Local week of year | W* | Week of month | - * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) | - * | y | Year (abs) | Y | Local week-numbering year | - * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) | - * - * Letters marked by * are not implemented but reserved by Unicode standard. - * - * Letters marked by ! are non-standard, but implemented by date-fns: - * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs) - * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days, - * i.e. 7 for Sunday, 1 for Monday, etc. - * - `I` is ISO week of year, as opposed to `w` which is local week of year. - * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year. - * `R` is supposed to be used in conjunction with `I` and `i` - * for universal ISO week-numbering date, whereas - * `Y` is supposed to be used in conjunction with `w` and `e` - * for week-numbering date specific to the locale. - */ -const parsers = { - G: new EraParser(), - y: new YearParser(), - Y: new LocalWeekYearParser(), - R: new ISOWeekYearParser(), - u: new ExtendedYearParser(), - Q: new QuarterParser(), - q: new StandAloneQuarterParser(), - M: new MonthParser(), - L: new StandAloneMonthParser(), - w: new LocalWeekParser(), - I: new ISOWeekParser(), - d: new DateParser(), - D: new DayOfYearParser(), - E: new DayParser(), - e: new LocalDayParser(), - c: new StandAloneLocalDayParser(), - i: new ISODayParser(), - a: new AMPMParser(), - b: new AMPMMidnightParser(), - B: new DayPeriodParser(), - h: new Hour1to12Parser(), - H: new Hour0to23Parser(), - K: new Hour0To11Parser(), - k: new Hour1To24Parser(), - m: new MinuteParser(), - s: new SecondParser(), - S: new FractionOfSecondParser(), - X: new ISOTimezoneWithZParser(), - x: new ISOTimezoneParser(), - t: new TimestampSecondsParser(), - T: new TimestampMillisecondsParser(), -}; - -/** - * The {@link parse} function options. - */ - -// This RegExp consists of three parts separated by `|`: -// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token -// (one of the certain letters followed by `o`) -// - (\w)\1* matches any sequences of the same letter -// - '' matches two quote characters in a row -// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('), -// except a single quote symbol, which ends the sequence. -// Two quote characters do not end the sequence. -// If there is no matching single quote -// then the sequence will continue until the end of the string. -// - . matches any single character unmatched by previous parts of the RegExps -const formattingTokensRegExp = - /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g; - -// This RegExp catches symbols escaped by quotes, and also -// sequences of symbols P, p, and the combinations like `PPPPPPPppppp` -const longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g; - -const escapedStringRegExp = /^'([^]*?)'?$/; -const doubleQuoteRegExp = /''/g; - -const notWhitespaceRegExp = /\S/; -const unescapedLatinCharacterRegExp = /[a-zA-Z]/; - -/** - * @name parse - * @category Common Helpers - * @summary Parse the date. - * - * @description - * Return the date parsed from string using the given format string. - * - * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries. - * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md - * - * The characters in the format string wrapped between two single quotes characters (') are escaped. - * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote. - * - * Format of the format string is based on Unicode Technical Standard #35: - * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table - * with a few additions (see note 5 below the table). - * - * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited - * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception: - * - * ```javascript - * parse('23 AM', 'HH a', new Date()) - * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time - * ``` - * - * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true - * - * Accepted format string patterns: - * | Unit |Prior| Pattern | Result examples | Notes | - * |---------------------------------|-----|---------|-----------------------------------|-------| - * | Era | 140 | G..GGG | AD, BC | | - * | | | GGGG | Anno Domini, Before Christ | 2 | - * | | | GGGGG | A, B | | - * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 | - * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 | - * | | | yy | 44, 01, 00, 17 | 4 | - * | | | yyy | 044, 001, 123, 999 | 4 | - * | | | yyyy | 0044, 0001, 1900, 2017 | 4 | - * | | | yyyyy | ... | 2,4 | - * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 | - * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 | - * | | | YY | 44, 01, 00, 17 | 4,6 | - * | | | YYY | 044, 001, 123, 999 | 4 | - * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 | - * | | | YYYYY | ... | 2,4 | - * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 | - * | | | RR | -43, 01, 00, 17 | 4,5 | - * | | | RRR | -043, 001, 123, 999, -999 | 4,5 | - * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 | - * | | | RRRRR | ... | 2,4,5 | - * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 | - * | | | uu | -43, 01, 99, -99 | 4 | - * | | | uuu | -043, 001, 123, 999, -999 | 4 | - * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 | - * | | | uuuuu | ... | 2,4 | - * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | | - * | | | Qo | 1st, 2nd, 3rd, 4th | 5 | - * | | | QQ | 01, 02, 03, 04 | | - * | | | QQQ | Q1, Q2, Q3, Q4 | | - * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 | - * | | | QQQQQ | 1, 2, 3, 4 | 4 | - * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | | - * | | | qo | 1st, 2nd, 3rd, 4th | 5 | - * | | | qq | 01, 02, 03, 04 | | - * | | | qqq | Q1, Q2, Q3, Q4 | | - * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 | - * | | | qqqqq | 1, 2, 3, 4 | 3 | - * | Month (formatting) | 110 | M | 1, 2, ..., 12 | | - * | | | Mo | 1st, 2nd, ..., 12th | 5 | - * | | | MM | 01, 02, ..., 12 | | - * | | | MMM | Jan, Feb, ..., Dec | | - * | | | MMMM | January, February, ..., December | 2 | - * | | | MMMMM | J, F, ..., D | | - * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | | - * | | | Lo | 1st, 2nd, ..., 12th | 5 | - * | | | LL | 01, 02, ..., 12 | | - * | | | LLL | Jan, Feb, ..., Dec | | - * | | | LLLL | January, February, ..., December | 2 | - * | | | LLLLL | J, F, ..., D | | - * | Local week of year | 100 | w | 1, 2, ..., 53 | | - * | | | wo | 1st, 2nd, ..., 53th | 5 | - * | | | ww | 01, 02, ..., 53 | | - * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 | - * | | | Io | 1st, 2nd, ..., 53th | 5 | - * | | | II | 01, 02, ..., 53 | 5 | - * | Day of month | 90 | d | 1, 2, ..., 31 | | - * | | | do | 1st, 2nd, ..., 31st | 5 | - * | | | dd | 01, 02, ..., 31 | | - * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 | - * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 | - * | | | DD | 01, 02, ..., 365, 366 | 7 | - * | | | DDD | 001, 002, ..., 365, 366 | | - * | | | DDDD | ... | 2 | - * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | | - * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 | - * | | | EEEEE | M, T, W, T, F, S, S | | - * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | | - * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 | - * | | | io | 1st, 2nd, ..., 7th | 5 | - * | | | ii | 01, 02, ..., 07 | 5 | - * | | | iii | Mon, Tue, Wed, ..., Sun | 5 | - * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 | - * | | | iiiii | M, T, W, T, F, S, S | 5 | - * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 | - * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | | - * | | | eo | 2nd, 3rd, ..., 1st | 5 | - * | | | ee | 02, 03, ..., 01 | | - * | | | eee | Mon, Tue, Wed, ..., Sun | | - * | | | eeee | Monday, Tuesday, ..., Sunday | 2 | - * | | | eeeee | M, T, W, T, F, S, S | | - * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | | - * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | | - * | | | co | 2nd, 3rd, ..., 1st | 5 | - * | | | cc | 02, 03, ..., 01 | | - * | | | ccc | Mon, Tue, Wed, ..., Sun | | - * | | | cccc | Monday, Tuesday, ..., Sunday | 2 | - * | | | ccccc | M, T, W, T, F, S, S | | - * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | | - * | AM, PM | 80 | a..aaa | AM, PM | | - * | | | aaaa | a.m., p.m. | 2 | - * | | | aaaaa | a, p | | - * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | | - * | | | bbbb | a.m., p.m., noon, midnight | 2 | - * | | | bbbbb | a, p, n, mi | | - * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | | - * | | | BBBB | at night, in the morning, ... | 2 | - * | | | BBBBB | at night, in the morning, ... | | - * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | | - * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 | - * | | | hh | 01, 02, ..., 11, 12 | | - * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | | - * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 | - * | | | HH | 00, 01, 02, ..., 23 | | - * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | | - * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 | - * | | | KK | 01, 02, ..., 11, 00 | | - * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | | - * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 | - * | | | kk | 24, 01, 02, ..., 23 | | - * | Minute | 60 | m | 0, 1, ..., 59 | | - * | | | mo | 0th, 1st, ..., 59th | 5 | - * | | | mm | 00, 01, ..., 59 | | - * | Second | 50 | s | 0, 1, ..., 59 | | - * | | | so | 0th, 1st, ..., 59th | 5 | - * | | | ss | 00, 01, ..., 59 | | - * | Seconds timestamp | 40 | t | 512969520 | | - * | | | tt | ... | 2 | - * | Fraction of second | 30 | S | 0, 1, ..., 9 | | - * | | | SS | 00, 01, ..., 99 | | - * | | | SSS | 000, 001, ..., 999 | | - * | | | SSSS | ... | 2 | - * | Milliseconds timestamp | 20 | T | 512969520900 | | - * | | | TT | ... | 2 | - * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | | - * | | | XX | -0800, +0530, Z | | - * | | | XXX | -08:00, +05:30, Z | | - * | | | XXXX | -0800, +0530, Z, +123456 | 2 | - * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | | - * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | | - * | | | xx | -0800, +0530, +0000 | | - * | | | xxx | -08:00, +05:30, +00:00 | 2 | - * | | | xxxx | -0800, +0530, +0000, +123456 | | - * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | | - * | Long localized date | NA | P | 05/29/1453 | 5,8 | - * | | | PP | May 29, 1453 | | - * | | | PPP | May 29th, 1453 | | - * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 | - * | Long localized time | NA | p | 12:00 AM | 5,8 | - * | | | pp | 12:00:00 AM | | - * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | | - * | | | PPpp | May 29, 1453, 12:00:00 AM | | - * | | | PPPpp | May 29th, 1453 at ... | | - * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 | - * Notes: - * 1. "Formatting" units (e.g. formatting quarter) in the default en-US locale - * are the same as "stand-alone" units, but are different in some languages. - * "Formatting" units are declined according to the rules of the language - * in the context of a date. "Stand-alone" units are always nominative singular. - * In `format` function, they will produce different result: - * - * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'` - * - * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'` - * - * `parse` will try to match both formatting and stand-alone units interchangeably. - * - * 2. Any sequence of the identical letters is a pattern, unless it is escaped by - * the single quote characters (see below). - * If the sequence is longer than listed in table: - * - for numerical units (`yyyyyyyy`) `parse` will try to match a number - * as wide as the sequence - * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit. - * These variations are marked with "2" in the last column of the table. - * - * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales. - * These tokens represent the shortest form of the quarter. - * - * 4. The main difference between `y` and `u` patterns are B.C. years: - * - * | Year | `y` | `u` | - * |------|-----|-----| - * | AC 1 | 1 | 1 | - * | BC 1 | 1 | 0 | - * | BC 2 | 2 | -1 | - * - * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`: - * - * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00` - * - * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00` - * - * while `uu` will just assign the year as is: - * - * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00` - * - * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00` - * - * The same difference is true for local and ISO week-numbering years (`Y` and `R`), - * except local week-numbering years are dependent on `options.weekStartsOn` - * and `options.firstWeekContainsDate` (compare [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear) - * and [setWeekYear](https://date-fns.org/docs/setWeekYear)). - * - * 5. These patterns are not in the Unicode Technical Standard #35: - * - `i`: ISO day of week - * - `I`: ISO week of year - * - `R`: ISO week-numbering year - * - `o`: ordinal number modifier - * - `P`: long localized date - * - `p`: long localized time - * - * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years. - * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md - * - * 7. `D` and `DD` tokens represent days of the year but they are often confused with days of the month. - * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md - * - * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based - * on the given locale. - * - * using `en-US` locale: `P` => `MM/dd/yyyy` - * using `en-US` locale: `p` => `hh:mm a` - * using `pt-BR` locale: `P` => `dd/MM/yyyy` - * using `pt-BR` locale: `p` => `HH:mm` - * - * Values will be assigned to the date in the descending order of its unit's priority. - * Units of an equal priority overwrite each other in the order of appearance. - * - * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year), - * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing. - * - * `referenceDate` must be passed for correct work of the function. - * If you're not sure which `referenceDate` to supply, create a new instance of Date: - * `parse('02/11/2014', 'MM/dd/yyyy', new Date())` - * In this case parsing will be done in the context of the current date. - * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`, - * then `Invalid Date` will be returned. - * - * The result may vary by locale. - * - * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned. - * - * If parsing failed, `Invalid Date` will be returned. - * Invalid Date is a Date, whose time value is NaN. - * Time value of Date: http://es5.github.io/#x15.9.1.1 - * - * @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). - * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. - * - * @param dateStr - The string to parse - * @param formatStr - The string of tokens - * @param referenceDate - defines values missing from the parsed dateString - * @param options - An object with options. - * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md - * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md - * - * @returns The parsed date - * - * @throws `options.locale` must contain `match` property - * @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 - * @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 - * @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 - * @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 - * @throws format string contains an unescaped latin alphabet character - * - * @example - * // Parse 11 February 2014 from middle-endian format: - * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date()) - * //=> Tue Feb 11 2014 00:00:00 - * - * @example - * // Parse 28th of February in Esperanto locale in the context of 2010 year: - * import eo from 'date-fns/locale/eo' - * var result = parse('28-a de februaro', "do 'de' MMMM", new Date(2010, 0, 1), { - * locale: eo - * }) - * //=> Sun Feb 28 2010 00:00:00 - */ -function parse(dateStr, formatStr, referenceDate, options) { - const invalidDate = () => constructFrom(referenceDate, NaN); - const defaultOptions = getDefaultOptions(); - const locale = defaultOptions.locale ?? enUS; - - const firstWeekContainsDate = - defaultOptions.firstWeekContainsDate ?? - defaultOptions.locale?.options?.firstWeekContainsDate ?? - 1; - - const weekStartsOn = - defaultOptions.weekStartsOn ?? - defaultOptions.locale?.options?.weekStartsOn ?? - 0; - - if (!formatStr) - return dateStr ? invalidDate() : toDate(referenceDate, options?.in); - - const subFnOptions = { - firstWeekContainsDate, - weekStartsOn, - locale, - }; - - // If timezone isn't specified, it will try to use the context or - // the reference date and fallback to the system time zone. - const setters = [new DateTimezoneSetter(options?.in, referenceDate)]; - - const tokens = formatStr - .match(longFormattingTokensRegExp) - .map((substring) => { - const firstCharacter = substring[0]; - if (firstCharacter in longFormatters) { - const longFormatter = longFormatters[firstCharacter]; - return longFormatter(substring, locale.formatLong); - } - return substring; - }) - .join("") - .match(formattingTokensRegExp); - - const usedTokens = []; - - for (let token of tokens) { - if ( - isProtectedWeekYearToken(token) - ) { - warnOrThrowProtectedError(token, formatStr, dateStr); - } - if ( - isProtectedDayOfYearToken(token) - ) { - warnOrThrowProtectedError(token, formatStr, dateStr); - } - - const firstCharacter = token[0]; - const parser = parsers[firstCharacter]; - if (parser) { - const { incompatibleTokens } = parser; - if (Array.isArray(incompatibleTokens)) { - const incompatibleToken = usedTokens.find( - (usedToken) => - incompatibleTokens.includes(usedToken.token) || - usedToken.token === firstCharacter, - ); - if (incompatibleToken) { - throw new RangeError( - `The format string mustn't contain \`${incompatibleToken.fullToken}\` and \`${token}\` at the same time`, - ); - } - } else if (parser.incompatibleTokens === "*" && usedTokens.length > 0) { - throw new RangeError( - `The format string mustn't contain \`${token}\` and any other token at the same time`, - ); - } - - usedTokens.push({ token: firstCharacter, fullToken: token }); - - const parseResult = parser.run( - dateStr, - token, - locale.match, - subFnOptions, - ); - - if (!parseResult) { - return invalidDate(); - } - - setters.push(parseResult.setter); - - dateStr = parseResult.rest; - } else { - if (firstCharacter.match(unescapedLatinCharacterRegExp)) { - throw new RangeError( - "Format string contains an unescaped latin alphabet character `" + - firstCharacter + - "`", - ); - } - - // Replace two single quote characters with one single quote character - if (token === "''") { - token = "'"; - } else if (firstCharacter === "'") { - token = cleanEscapedString(token); - } - - // Cut token from string, or, if string doesn't match the token, return Invalid Date - if (dateStr.indexOf(token) === 0) { - dateStr = dateStr.slice(token.length); - } else { - return invalidDate(); - } - } - } - - // Check if the remaining input contains something other than whitespace - if (dateStr.length > 0 && notWhitespaceRegExp.test(dateStr)) { - return invalidDate(); - } - - const uniquePrioritySetters = setters - .map((setter) => setter.priority) - .sort((a, b) => b - a) - .filter((priority, index, array) => array.indexOf(priority) === index) - .map((priority) => - setters - .filter((setter) => setter.priority === priority) - .sort((a, b) => b.subPriority - a.subPriority), - ) - .map((setterArray) => setterArray[0]); - - let date = toDate(referenceDate, options?.in); +} - if (isNaN(+date)) return invalidDate(); +function isKeyValid(key) { + return typeof key === 'string' && key.length > 30 && (key.startsWith('store_') || key.startsWith('network_')); +} - const flags = {}; - for (const setter of uniquePrioritySetters) { - if (!setter.validate(date, subFnOptions)) { - return invalidDate(); +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; +} - const result = setter.set(date, flags, subFnOptions); - // Result is tuple (date, flags) - if (Array.isArray(result)) { - date = result[0]; - Object.assign(flags, result[1]); - // Result is date - } else { - date = result; - } - } +function isArray$1(value) { + return Array.isArray(value); +} - return date; +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); -function cleanEscapedString(input) { - return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, "'"); +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 = undefined, options = {}) { + 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 (!isValid(start) || !isValid(end)) { + 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 parse(start, format, new Date()); + 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 parse(end, format, new Date()); + return dateFns.parse(end, format, new Date()); } - get humanReadableHoursRange() { - if (!isValid(this.startDateInstance) || !isValid(this.endDateInstance)) { + 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 `${format(this.startDateInstance, 'p')} - ${format(this.endDateInstance, 'p')}`; + 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 = undefined, options = {}) { + 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() { - return new at((this.getAttribute('hours') || []).map((attributes) => new StoreHour(attributes, this.adapter))); + 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'); - - return typeof store === 'string' ? store : this.storeData?.id || this.storeData?.public_id; + 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'); - + 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 (schedule[hour.day]) { + 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 { - constructor(attributes = {}, adapter = undefined, options = {}) { + 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 = undefined, options = {}) { + 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); - }) - ); + 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); - }) - ); + 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 = undefined, options = {}) { + 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 = undefined, options = {}) { + 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({ @@ -5967,57 +404,46 @@ const customerActions = new mt({ 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 = undefined, options = {}) { + 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 * @@ -6030,18 +456,15 @@ class Customer extends StorefrontResource { onAfterFetch: this.syncAttributes.bind(this), actions: this.options?.actions, }); - return this; } - get token() { - return this.getAttribute('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, @@ -6050,44 +473,35 @@ class Customer extends StorefrontResource { 'Customer-Token': this.token, }, }; - - return this.adapter[method.toLowerCase()](endpoint, params, requestOptions); + 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); @@ -6095,156 +509,123 @@ class Customer extends StorefrontResource { }); } } - 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 = undefined, options = {}) { + 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); + 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 = undefined, options = {}) { + 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 = undefined, options = {}) { + 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 * @@ -6257,37 +638,28 @@ class DeliveryServiceQuote extends qt { 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 fromCart(...args) { + return this.fetchServiceQuotesFromCart(...args); } - async fetchServiceQuotesFromCart(origin, destination, cart, config = 'storefront', all = false) { - if (origin?.id) { + if (typeof origin === 'object' && origin?.id) { origin = origin.id; } - - if (destination?.id) { + if (typeof destination === 'object' && destination?.id) { destination = destination.id; } - - if (cart?.id) { + if (typeof cart === 'object' && cart?.id) { cart = cart.id; } - const serviceQuotes = await this.adapter.get('service-quotes/from-cart', { origin, destination, @@ -6295,28 +667,23 @@ class DeliveryServiceQuote extends qt { 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 = undefined, options = {}) { + constructor(attributes = {}, adapter, options = {}) { super(attributes, adapter, options); } } - q('resource', 'Order', Order); const checkoutActions = new mt({ @@ -6324,139 +691,108 @@ const checkoutActions = new mt({ 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 = undefined, options = {}) { + constructor(attributes = {}, adapter, options = {}) { super(attributes, adapter, 'checkout', { actions: checkoutActions, ...options }); } - - initialize() { - return this.store.initialize(...arguments); + initialize(customer, cart, serviceQuote, gateway, orderOptions = {}, options = {}) { + return this.store.initialize(customer, cart, serviceQuote, gateway, orderOptions, options); } - - captureOrder() { - return this.store.captureOrder(...arguments); + captureOrder(token, params = {}, options = {}) { + return this.store.captureOrder(token, params, options); } - - createStripeSetupIntent() { - return this.store.createStripeSetupIntent(...arguments); + createStripeSetupIntent(customer, params = {}, options = {}) { + return this.store.createStripeSetupIntent(customer, params, options); } - - updateStripePaymentIntent() { - return this.store.updateStripePaymentIntent(...arguments); + updateStripePaymentIntent(paymentIntent, customer, cart, serviceQuote, orderOptions = {}, options = {}) { + return this.store.updateStripePaymentIntent(paymentIntent, customer, cart, serviceQuote, orderOptions, options); } - - getStatus() { - return this.store.getStatus(...arguments); + getStatus(checkout, token, options = {}) { + return this.store.getStatus(checkout, token, options); } - - captureQPay() { - return this.store.captureQPay(...arguments); + captureQPay(checkout, params = {}, options = {}) { + return this.store.captureQPay(checkout, params, options); } - - captureQPayCallback() { - return this.store.captureQPayCallback(...arguments); + captureQPayCallback(checkout, params = {}, options = {}) { + return this.store.captureQPayCallback(checkout, params, options); } } - q('resource', 'Checkout', Checkout); class FoodTruck extends StorefrontResource { - constructor(attributes = {}, adapter = undefined, options = {}) { + 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); }, @@ -6468,6 +804,17 @@ const orderActions = new mt({ * */ class Storefront { + version; + options; + adapter; + products; + categories; + foodTrucks; + reviews; + customers; + cart; + checkout; + orders; /** * Builds an instance of the Fleetbase Storefront SDK * @@ -6485,16 +832,12 @@ class Storefront { 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); @@ -6504,36 +847,31 @@ class Storefront { 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>} + * @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>} + * @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} @@ -6541,12 +879,11 @@ class Storefront { lookupResource(id) { return this.lookup(id, { resource: true }); } - /** * Searches products in the current store or network. * * @param {string} query - * @param {Record} options + * @param {Record} options * @returns {Promise>} */ search(query, options = {}) { @@ -6554,25 +891,19 @@ class Storefront { 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() { - return new Storefront(...arguments); + static newInstance(...args) { + return new Storefront(...args); } - setAdapter(adapter) { this.adapter = adapter; - return this.initializeStores(); } - getAdapter() { return this.adapter; } diff --git a/dist/cjs/storefront.cjs.map b/dist/cjs/storefront.cjs.map index df4cf30..0c36440 100644 --- a/dist/cjs/storefront.cjs.map +++ b/dist/cjs/storefront.cjs.map @@ -1 +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.js","../../src/utils/is-phone.js","../../src/utils/format-currency.js","../../src/utils/is-key-valid.js","../../src/utils/is-empty.js","../../src/utils/array.js","../../src/resource.js","../../src/resources/review.js","../../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/_lib/normalizeDates.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/startOfISOWeekYear.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/isValid.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/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/en-US/_lib/localize.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/_lib/match.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/getDayOfYear.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/getWeekYear.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/getWeek.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/getDefaultOptions.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/transpose.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/parse/_lib/Parser.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/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/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/setWeek.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/setISOWeek.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/parse/_lib/parsers/DateParser.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/setDay.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/setISODay.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/_lib/parsers.js","../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse.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/resources/cart.js","../../src/resources/network.js","../../src/resources/delivery-service-quote.js","../../src/resources/order.js","../../src/resources/checkout.js","../../src/resources/food-truck.js","../../src/resources/order-actions.js","../../src/storefront.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 isPhone(phone = '') {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/.test(phone);\n}\n\nexport default isPhone;\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 isKeyValid(key) {\n return typeof key === 'string' && key.length > 30 && (key.startsWith('store_') || key.startsWith('network_'));\n}\n\nexport default isKeyValid;\n","export function isEmpty(obj) {\n const none = obj === null || obj === undefined;\n if (none) {\n return none;\n }\n\n const objectType = typeof obj;\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\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 {import('@fleetbase/sdk').Adapter} adapter\n * @return {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 = undefined, options = {}) {\n super(attributes, adapter, 'review', options);\n }\n\n getMedia() {\n return this.getPhotos();\n }\n\n getPhotos() {\n return this.getAttribute('photos') ?? [];\n }\n\n getVideos() {\n return this.getMedia().filter((media) => media?.type?.startsWith('video/'));\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 * **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 { 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 { 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\";\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","/**\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","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","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","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","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 { 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 { 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 { 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 { 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 { 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","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","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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 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 = undefined, 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\n if (!isValid(start) || !isValid(end)) {\n return false;\n }\n\n const diff = Math.abs(start.getTime() - end.getTime());\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 if (typeof start !== 'string') {\n return null;\n }\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 if (typeof end !== 'string') {\n return null;\n }\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.getAttribute('start')} - ${this.getAttribute('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 = undefined, 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.length > 0 && 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 if (schedule[hour.day]) {\n schedule[hour.day].pushObject(hour);\n }\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 = undefined, 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 get isQPayGateway() {\n return this.type === 'qpay' || this.code === 'qpay';\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 = undefined, 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 getTags(params = {}) {\n return this.adapter.get('tags', params);\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, this.adapter);\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 = undefined, 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 images() {\n return this.getAttribute('images') ?? [];\n }\n\n videos() {\n return this.getAttribute('videos') ?? [];\n }\n\n hours() {\n return this.getAttribute('hours') ?? [];\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 = undefined, 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 = undefined, 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 {import('@fleetbase/sdk').Adapter} adapter\n * @return {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 return this.performAuthorizedRequest('customers/register-device', { token, platform }, 'POST');\n }\n\n performAuthorizedRequest(endpoint, params = {}, method = 'GET', options = {}) {\n const requestOptions = {\n ...options,\n headers: {\n ...options.headers,\n 'Customer-Token': this.token,\n },\n };\n\n return this.adapter[method.toLowerCase()](endpoint, params, requestOptions);\n }\n\n async getSavedPlaces() {\n const places = await this.performAuthorizedRequest('customers/places');\n return new Collection(places.map((attributes) => new Place(attributes, this.adapter)));\n }\n\n async getOrderHistory(params = {}) {\n const orders = await this.performAuthorizedRequest('customers/orders', params);\n return new Collection(orders.map((attributes) => new Order(attributes, this.adapter)));\n }\n\n getStripeEphemeralKey(params = {}) {\n return this.performAuthorizedRequest('customers/stripe-ephemeral-key', params, 'POST');\n }\n\n getStripeSetupIntent(params = {}) {\n return this.performAuthorizedRequest('customers/stripe-setup-intent', params, 'POST');\n }\n\n startAccountClosure(params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/account-closure', params, 'POST', options);\n }\n\n confirmAccountClosure(code, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/confirm-account-closure', { code, ...params }, 'POST', options);\n }\n\n requestPhoneVerification(phone, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/request-phone-verification', { phone, ...params }, 'POST', options);\n }\n\n verifyPhoneNumber(code, phone, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/verify-phone-number', { code, phone, ...params }, 'POST', options);\n }\n\n updateContactAlias(attributes = {}, options = {}) {\n return this.performAuthorizedRequest(`contacts/${this.id}`, attributes, 'PUT', options).then((response) => {\n this.syncAttributes(response);\n return this;\n });\n }\n}\n\nregister('resource', 'Customer', Customer);\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 = undefined, 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 return this.contents().reduce((subtotal, cartItem) => subtotal + Number(cartItem?.subtotal || 0), 0);\n }\n\n contents() {\n const items = this.getAttribute('items', []);\n return isArray(items) ? items : [];\n }\n\n hasProduct(productId) {\n return this.contents().findIndex((cartItem) => cartItem.product_id === productId) !== -1;\n }\n\n get isEmpty() {\n return this.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 = undefined, 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 = undefined, 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 || (attributes && typeof attributes.get === 'function' && typeof attributes.post === 'function')) {\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 {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 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 }\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 { Order as FleetbaseOrder, register } from '@fleetbase/sdk';\n\nexport default class Order extends FleetbaseOrder {\n constructor(attributes = {}, adapter = undefined, options = {}) {\n super(attributes, adapter, options);\n }\n}\n\nregister('resource', 'Order', Order);\n","import Resource from '../resource.js';\nimport Order from './order.js';\nimport { 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, this.adapter));\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 getStatus: function (checkout, token, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.get(`${this.namespace}/status`, { checkout, token }, options);\n },\n\n captureQPay: function (checkout, params = {}, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.post(`${this.namespace}/capture-qpay`, { checkout, ...params }, options);\n },\n\n captureQPayCallback: function (checkout, params = {}, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.get(`${this.namespace}/capture-qpay`, { checkout, ...params }, options);\n },\n});\n\nexport default class Checkout extends Resource {\n constructor(attributes = {}, adapter = undefined, 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 createStripeSetupIntent() {\n return this.store.createStripeSetupIntent(...arguments);\n }\n\n updateStripePaymentIntent() {\n return this.store.updateStripePaymentIntent(...arguments);\n }\n\n getStatus() {\n return this.store.getStatus(...arguments);\n }\n\n captureQPay() {\n return this.store.captureQPay(...arguments);\n }\n\n captureQPayCallback() {\n return this.store.captureQPayCallback(...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 = undefined, options = {}) {\n super(attributes, adapter, 'food-truck', options);\n }\n}\n\nregister('resource', 'FoodTruck', FoodTruck);\n","import { StoreActions, isResource } from '@fleetbase/sdk';\n\nfunction idFor(value) {\n return isResource(value) ? value.id : value;\n}\n\nexport const orderActions = new StoreActions({\n create: undefined,\n update: undefined,\n findAll: undefined,\n query: undefined,\n queryRecord: undefined,\n\n completePickup: function (order, params = {}, options = {}) {\n return this.adapter.put(`${this.namespace}/picked-up`, { order: idFor(order), ...params }, options);\n },\n\n getReceipt: function (order, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/receipt`, { order: idFor(order), ...params }, options);\n },\n});\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, Order } 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 { orderActions } from './resources/order-actions.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 this.orders = new StorefrontStore('order', this.adapter).extendActions(orderActions);\n\n return this;\n }\n\n /**\n * Loads information about this storefront.\n *\n * @param {{ resource?: boolean }} options\n * @returns {Promise | Store | Network>}\n */\n about(options = {}) {\n return this.adapter.get('about').then((attributes) => (options.resource ? this.hydrateOwner(attributes) : attributes));\n }\n\n /** @returns {Promise} Loads the storefront owner as a typed resource. */\n getOwner() {\n return this.about({ resource: true });\n }\n\n /**\n * Looks up a specific store or network by public ID.\n *\n * @param {string} id\n * @param {{ resource?: boolean }} options\n * @returns {Promise | Store | Network>}\n */\n lookup(id, options = {}) {\n return this.adapter.get(`lookup/${id}`).then((attributes) => (options.resource ? this.hydrateOwner(attributes) : attributes));\n }\n\n /**\n * @param {string} id\n * @returns {Promise}\n */\n lookupResource(id) {\n return this.lookup(id, { resource: true });\n }\n\n /**\n * Searches products in the current store or network.\n *\n * @param {string} query\n * @param {Record} options\n * @returns {Promise>}\n */\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, Order, lookup };\n"],"names":["Store","extendStoreActions","lookup","classify","isArray","Resource","register","StoreActions","getDefaultOptions","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","defaultLocale","cleanEscapedString","getInternalDefaultOptions","Collection","Place","Order","ServiceQuote","Adapter","FleetbaseOrder","isResource","detectAdapter"],"mappings":"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AC,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,CA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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,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,CAA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AAC,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,C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GAAG,QAAQ;;AAEzC;AACA;AACA;AACA;AACA;AACO,MAAM,oBAAoB,GAAG,KAAK;;AAEzC;AACA;AACA;AACA;AACA;AACO,MAAM,kBAAkB,GAAG,OAAO;;AAEzC;AACA;AACA;AACA;AACA;AACO,MAAM,oBAAoB,GAAG,IAAI;;AAoGxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC;;ACrNlE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE;AAC3C,EAAE,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC;;AAEpD,EAAE,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,mBAAmB,IAAI,IAAI;AACrE,IAAI,OAAO,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC;;AAE3C,EAAE,IAAI,IAAI,YAAY,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;;AAE9D,EAAE,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC;AACxB;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE;AAC1C;AACA,EAAE,OAAO,aAAa,CAAC,OAAO,IAAI,QAAQ,EAAE,QAAQ,CAAC;AACrD;;ACxCA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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AM,CAAC,mBAAmB,EAAE,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,+EAA+E,CAAC;AACrN;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,wBAAsB;AAC5B,EAAE,uDAAuD;;AAEzD;AACA;AACA,MAAMC,4BAA0B,GAAG,mCAAmC;;AAEtE,MAAMC,qBAAmB,GAAG,cAAc;AAC1C,MAAMC,mBAAiB,GAAG,KAAK;AAC/B,MAAMC,+BAA6B,GAAG,UAAU;;AAIhD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE;AACjD,EAAE,MAAM,cAAc,GAAGL,mBAAiB,EAAE;AAC5C,EAAE,MAAM,MAAM,GAAsB,cAAc,CAAC,MAAM,IAAIM,IAAa;;AAE1E,EAAE,MAAM,qBAAqB;AAC7B,IAEI,cAAc,CAAC,qBAAqB;AACxC,IAAI,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,qBAAqB;AACzD,IAAI,CAAC;;AAEL,EAAE,MAAM,YAAY;AACpB,IAEI,cAAc,CAAC,YAAY;AAC/B,IAAI,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY;AAChD,IAAI,CAAC;;AAEL,EAAE,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;;AAEhD,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;AAC9B,IAAI,MAAM,IAAI,UAAU,CAAC,oBAAoB,CAAC;AAC9C,EAAE;;AAEF,EAAE,IAAI,KAAK,GAAG;AACd,KAAK,KAAK,CAACJ,4BAA0B;AACrC,KAAK,GAAG,CAAC,CAAC,SAAS,KAAK;AACxB,MAAM,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC;AACzC,MAAM,IAAI,cAAc,KAAK,GAAG,IAAI,cAAc,KAAK,GAAG,EAAE;AAC5D,QAAQ,MAAM,aAAa,GAAG,cAAc,CAAC,cAAc,CAAC;AAC5D,QAAQ,OAAO,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC;AAC1D,MAAM;AACN,MAAM,OAAO,SAAS;AACtB,IAAI,CAAC;AACL,KAAK,IAAI,CAAC,EAAE;AACZ,KAAK,KAAK,CAACD,wBAAsB;AACjC,KAAK,GAAG,CAAC,CAAC,SAAS,KAAK;AACxB;AACA,MAAM,IAAI,SAAS,KAAK,IAAI,EAAE;AAC9B,QAAQ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE;AAC7C,MAAM;;AAEN,MAAM,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC;AACzC,MAAM,IAAI,cAAc,KAAK,GAAG,EAAE;AAClC,QAAQ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAEM,oBAAkB,CAAC,SAAS,CAAC,EAAE;AACvE,MAAM;;AAEN,MAAM,IAAI,UAAU,CAAC,cAAc,CAAC,EAAE;AACtC,QAAQ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;AAClD,MAAM;;AAEN,MAAM,IAAI,cAAc,CAAC,KAAK,CAACF,+BAA6B,CAAC,EAAE;AAC/D,QAAQ,MAAM,IAAI,UAAU;AAC5B,UAAU,gEAAgE;AAC1E,YAAY,cAAc;AAC1B,YAAY,GAAG;AACf,SAAS;AACT,MAAM;;AAEN,MAAM,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE;AACjD,IAAI,CAAC,CAAC;;AAEN;AACA,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE;AACpC,IAAI,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC;AAC7D,EAAE;;AAEF,EAAE,MAAM,gBAAgB,GAAG;AAC3B,IAAI,qBAAqB;AACzB,IAAI,YAAY;AAChB,IAAI,MAAM;AACV,GAAG;;AAEH,EAAE,OAAO;AACT,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK;AACnB,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,CAAC,KAAK;;AAE1C,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;;AAE9B,MAAM;AACN,QAAQ,CACE,wBAAwB,CAAC,KAAK,CAAC;AACzC,SACU,yBAAyB,CAAC,KAAK,CAAC;AAC1C,QAAQ;AACR,QAAQ,yBAAyB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AACjE,MAAM;;AAEN,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5C,MAAM,OAAO,SAAS,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;AAC9E,IAAI,CAAC;AACL,KAAK,IAAI,CAAC,EAAE,CAAC;AACb;;AAEA,SAASE,oBAAkB,CAAC,KAAK,EAAE;AACnC,EAAE,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAACJ,qBAAmB,CAAC;;AAElD,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,IAAI,OAAO,KAAK;AAChB,EAAE;;AAEF,EAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAACC,mBAAiB,EAAE,GAAG,CAAC;AACnD;;AC5aA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,iBAAiB,GAAG;AACpC,EAAE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAEI,mBAAyB,EAAE,CAAC;AACvD;;AC1BA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE;AACzC,EAAE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;AAChD,EAAE,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG;AAC5B;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE;AAC7C,EAAE,MAAM,KAAK,GAAG,aAAa,CAAC,WAAW;AACzC,MAAM,IAAI,WAAW,CAAC,CAAC;AACvB,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC;AACnC,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AACxE,EAAE,KAAK,CAAC,QAAQ;AAChB,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,IAAI,IAAI,CAAC,UAAU,EAAE;AACrB,IAAI,IAAI,CAAC,UAAU,EAAE;AACrB,IAAI,IAAI,CAAC,eAAe,EAAE;AAC1B,GAAG;AACH,EAAE,OAAO,KAAK;AACd;;AAEA,SAAS,aAAa,CAAC,WAAW,EAAE;AACpC,EAAE;AACF,IAAI,OAAO,WAAW,KAAK,UAAU;AACrC,IAAI,WAAW,CAAC,SAAS,EAAE,WAAW,KAAK;AAC3C;AACA;;AC9CA,MAAM,sBAAsB,GAAG,EAAE;;AAE1B,MAAM,MAAM,CAAC;AACpB,EAAE,WAAW,GAAG,CAAC;;AAEjB,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE;AAC/B,IAAI,OAAO,IAAI;AACf,EAAE;AACF;;AAEO,MAAM,WAAW,SAAS,MAAM,CAAC;AACxC,EAAE,WAAW;AACb,IAAI,KAAK;AACT,IAAI,aAAa;;AAEjB,IAAI,QAAQ;;AAEZ,IAAI,QAAQ;AACZ,IAAI,WAAW;AACf,IAAI;AACJ,IAAI,KAAK,EAAE;AACX,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK;AACtB,IAAI,IAAI,CAAC,aAAa,GAAG,aAAa;AACtC,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAC5B,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAC5B,IAAI,IAAI,WAAW,EAAE;AACrB,MAAM,IAAI,CAAC,WAAW,GAAG,WAAW;AACpC,IAAI;AACJ,EAAE;;AAEF,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;AACxD,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE;AAC5B,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;AAC1D,EAAE;AACF;;AAEO,MAAM,kBAAkB,SAAS,MAAM,CAAC;AAC/C,EAAE,QAAQ,GAAG,sBAAsB;AACnC,EAAE,WAAW,GAAG,EAAE;;AAElB,EAAE,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE;AAClC,IAAI,KAAK,EAAE;AACX,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACxE,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;AACnB,IAAI,IAAI,KAAK,CAAC,cAAc,EAAE,OAAO,IAAI;AACzC,IAAI,OAAO,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7D,EAAE;AACF;;ACrDO,MAAM,MAAM,CAAC;AACpB,EAAE,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE;AACzC,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC;AAChE,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,MAAM,OAAO,IAAI;AACjB,IAAI;;AAEJ,IAAI,OAAO;AACX,MAAM,MAAM,EAAE,IAAI,WAAW;AAC7B,QAAQ,MAAM,CAAC,KAAK;AACpB,QAAQ,IAAI,CAAC,QAAQ;AACrB,QAAQ,IAAI,CAAC,GAAG;AAChB,QAAQ,IAAI,CAAC,QAAQ;AACrB,QAAQ,IAAI,CAAC,WAAW;AACxB,OAAO;AACP,MAAM,IAAI,EAAE,MAAM,CAAC,IAAI;AACvB,KAAK;AACL,EAAE;;AAEF,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;AACvC,IAAI,OAAO,IAAI;AACf,EAAE;AACF;;ACtBO,MAAM,SAAS,SAAS,MAAM,CAAC;AACtC,EAAE,QAAQ,GAAG,GAAG;;AAEhB,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;AAClC,IAAI,QAAQ,KAAK;AACjB;AACA,MAAM,KAAK,GAAG;AACd,MAAM,KAAK,IAAI;AACf,MAAM,KAAK,KAAK;AAChB,QAAQ;AACR,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;AACzD,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;AACnD;;AAEA;AACA,MAAM,KAAK,OAAO;AAClB,QAAQ,OAAO,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AACzD;AACA,MAAM,KAAK,MAAM;AACjB,MAAM;AACN,QAAQ;AACR,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAClD,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;AACzD,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;AACnD;AACA;AACA,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK;AACrB,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AACjC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7B,IAAI,OAAO,IAAI;AACf,EAAE;;AAEF,EAAE,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC3C;;ACtCO,MAAM,eAAe,GAAG;AAC/B,EAAE,KAAK,EAAE,gBAAgB;AACzB,EAAE,IAAI,EAAE,oBAAoB;AAC5B,EAAE,SAAS,EAAE,iCAAiC;AAC9C,EAAE,IAAI,EAAE,oBAAoB;AAC5B,EAAE,OAAO,EAAE,oBAAoB;AAC/B,EAAE,OAAO,EAAE,oBAAoB;AAC/B,EAAE,OAAO,EAAE,gBAAgB;AAC3B,EAAE,OAAO,EAAE,gBAAgB;AAC3B,EAAE,MAAM,EAAE,WAAW;AACrB,EAAE,MAAM,EAAE,WAAW;;AAErB,EAAE,WAAW,EAAE,KAAK;AACpB,EAAE,SAAS,EAAE,UAAU;AACvB,EAAE,WAAW,EAAE,UAAU;AACzB,EAAE,UAAU,EAAE,UAAU;;AAExB,EAAE,eAAe,EAAE,QAAQ;AAC3B,EAAE,iBAAiB,EAAE,OAAO;AAC5B,EAAE,eAAe,EAAE,YAAY;AAC/B,EAAE,iBAAiB,EAAE,YAAY;AACjC,EAAE,gBAAgB,EAAE,YAAY;AAChC,CAAC;;AAEM,MAAM,gBAAgB,GAAG;AAChC,EAAE,oBAAoB,EAAE,0BAA0B;AAClD,EAAE,KAAK,EAAE,yBAAyB;AAClC,EAAE,oBAAoB,EAAE,mCAAmC;AAC3D,EAAE,QAAQ,EAAE,0BAA0B;AACtC,EAAE,uBAAuB,EAAE,qCAAqC;AAChE,CAAC;;ACtBM,SAAS,QAAQ,CAAC,aAAa,EAAE,KAAK,EAAE;AAC/C,EAAE,IAAI,CAAC,aAAa,EAAE;AACtB,IAAI,OAAO,aAAa;AACxB,EAAE;;AAEF,EAAE,OAAO;AACT,IAAI,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;AACrC,IAAI,IAAI,EAAE,aAAa,CAAC,IAAI;AAC5B,GAAG;AACH;;AAEO,SAAS,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE;AACzD,EAAE,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC;;AAE/C,EAAE,IAAI,CAAC,WAAW,EAAE;AACpB,IAAI,OAAO,IAAI;AACf,EAAE;;AAEF,EAAE,OAAO;AACT,IAAI,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACvC,IAAI,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACjD,GAAG;AACH;;AAEO,SAAS,oBAAoB,CAAC,OAAO,EAAE,UAAU,EAAE;AAC1D,EAAE,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC;;AAE/C,EAAE,IAAI,CAAC,WAAW,EAAE;AACpB,IAAI,OAAO,IAAI;AACf,EAAE;;AAEF;AACA,EAAE,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC9B,IAAI,OAAO;AACX,MAAM,KAAK,EAAE,CAAC;AACd,MAAM,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/B,KAAK;AACL,EAAE;;AAEF,EAAE,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE;AAC9C,EAAE,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC;AACjE,EAAE,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC;AACnE,EAAE,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC;;AAEnE,EAAE,OAAO;AACT,IAAI,KAAK;AACT,MAAM,IAAI;AACV,OAAO,KAAK,GAAG,kBAAkB;AACjC,QAAQ,OAAO,GAAG,oBAAoB;AACtC,QAAQ,OAAO,GAAG,oBAAoB,CAAC;AACvC,IAAI,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACjD,GAAG;AACH;;AAEO,SAAS,oBAAoB,CAAC,UAAU,EAAE;AACjD,EAAE,OAAO,mBAAmB,CAAC,eAAe,CAAC,eAAe,EAAE,UAAU,CAAC;AACzE;;AAEO,SAAS,YAAY,CAAC,CAAC,EAAE,UAAU,EAAE;AAC5C,EAAE,QAAQ,CAAC;AACX,IAAI,KAAK,CAAC;AACV,MAAM,OAAO,mBAAmB,CAAC,eAAe,CAAC,WAAW,EAAE,UAAU,CAAC;AACzE,IAAI,KAAK,CAAC;AACV,MAAM,OAAO,mBAAmB,CAAC,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC;AACvE,IAAI,KAAK,CAAC;AACV,MAAM,OAAO,mBAAmB,CAAC,eAAe,CAAC,WAAW,EAAE,UAAU,CAAC;AACzE,IAAI,KAAK,CAAC;AACV,MAAM,OAAO,mBAAmB,CAAC,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC;AACxE,IAAI;AACJ,MAAM,OAAO,mBAAmB,CAAC,IAAI,MAAM,CAAC,SAAS,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,UAAU,CAAC;AAC7E;AACA;;AAEO,SAAS,kBAAkB,CAAC,CAAC,EAAE,UAAU,EAAE;AAClD,EAAE,QAAQ,CAAC;AACX,IAAI,KAAK,CAAC;AACV,MAAM,OAAO,mBAAmB,CAAC,eAAe,CAAC,iBAAiB,EAAE,UAAU,CAAC;AAC/E,IAAI,KAAK,CAAC;AACV,MAAM,OAAO,mBAAmB,CAAC,eAAe,CAAC,eAAe,EAAE,UAAU,CAAC;AAC7E,IAAI,KAAK,CAAC;AACV,MAAM,OAAO,mBAAmB,CAAC,eAAe,CAAC,iBAAiB,EAAE,UAAU,CAAC;AAC/E,IAAI,KAAK,CAAC;AACV,MAAM,OAAO,mBAAmB,CAAC,eAAe,CAAC,gBAAgB,EAAE,UAAU,CAAC;AAC9E,IAAI;AACJ,MAAM,OAAO,mBAAmB,CAAC,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,UAAU,CAAC;AAC/E;AACA;;AAEO,SAAS,oBAAoB,CAAC,SAAS,EAAE;AAChD,EAAE,QAAQ,SAAS;AACnB,IAAI,KAAK,SAAS;AAClB,MAAM,OAAO,CAAC;AACd,IAAI,KAAK,SAAS;AAClB,MAAM,OAAO,EAAE;AACf,IAAI,KAAK,IAAI;AACb,IAAI,KAAK,MAAM;AACf,IAAI,KAAK,WAAW;AACpB,MAAM,OAAO,EAAE;AACf,IAAI,KAAK,IAAI;AACb,IAAI,KAAK,UAAU;AACnB,IAAI,KAAK,OAAO;AAChB,IAAI;AACJ,MAAM,OAAO,CAAC;AACd;AACA;;AAEO,SAAS,qBAAqB,CAAC,YAAY,EAAE,WAAW,EAAE;AACjE,EAAE,MAAM,WAAW,GAAG,WAAW,GAAG,CAAC;AACrC;AACA;AACA;AACA;AACA,EAAE,MAAM,cAAc,GAAG,WAAW,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW;;AAEpE,EAAE,IAAI,MAAM;AACZ,EAAE,IAAI,cAAc,IAAI,EAAE,EAAE;AAC5B,IAAI,MAAM,GAAG,YAAY,IAAI,GAAG;AAChC,EAAE,CAAC,MAAM;AACT,IAAI,MAAM,QAAQ,GAAG,cAAc,GAAG,EAAE;AACxC,IAAI,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,GAAG,GAAG;AAC5D,IAAI,MAAM,iBAAiB,GAAG,YAAY,IAAI,QAAQ,GAAG,GAAG;AAC5D,IAAI,MAAM,GAAG,YAAY,GAAG,eAAe,IAAI,iBAAiB,GAAG,GAAG,GAAG,CAAC,CAAC;AAC3E,EAAE;;AAEF,EAAE,OAAO,WAAW,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM;AAC1C;;AAEO,SAAS,eAAe,CAAC,IAAI,EAAE;AACtC,EAAE,OAAO,IAAI,GAAG,GAAG,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC;AACjE;;ACrIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,UAAU,SAAS,MAAM,CAAC;AACvC,EAAE,QAAQ,GAAG,GAAG;AAChB,EAAE,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;;AAEzE,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;AAClC,IAAI,MAAM,aAAa,GAAG,CAAC,IAAI,MAAM;AACrC,MAAM,IAAI;AACV,MAAM,cAAc,EAAE,KAAK,KAAK,IAAI;AACpC,KAAK,CAAC;;AAEN,IAAI,QAAQ,KAAK;AACjB,MAAM,KAAK,GAAG;AACd,QAAQ,OAAO,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,aAAa,CAAC;AACnE,MAAM,KAAK,IAAI;AACf,QAAQ,OAAO,QAAQ;AACvB,UAAU,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE;AAC1C,YAAY,IAAI,EAAE,MAAM;AACxB,WAAW,CAAC;AACZ,UAAU,aAAa;AACvB,SAAS;AACT,MAAM;AACN,QAAQ,OAAO,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,aAAa,CAAC;AAC9E;AACA,EAAE;;AAEF,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE;AACzB,IAAI,OAAO,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC;AACjD,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,IAAI,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;;AAE1C,IAAI,IAAI,KAAK,CAAC,cAAc,EAAE;AAC9B,MAAM,MAAM,sBAAsB,GAAG,qBAAqB;AAC1D,QAAQ,KAAK,CAAC,IAAI;AAClB,QAAQ,WAAW;AACnB,OAAO;AACP,MAAM,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC,EAAE,CAAC,CAAC;AACpD,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/B,MAAM,OAAO,IAAI;AACjB,IAAI;;AAEJ,IAAI,MAAM,IAAI;AACd,MAAM,EAAE,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI;AACxE,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7B,IAAI,OAAO,IAAI;AACf,EAAE;AACF;;ACrDA;AACO,MAAM,mBAAmB,SAAS,MAAM,CAAC;AAChD,EAAE,QAAQ,GAAG,GAAG;;AAEhB,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;AAClC,IAAI,MAAM,aAAa,GAAG,CAAC,IAAI,MAAM;AACrC,MAAM,IAAI;AACV,MAAM,cAAc,EAAE,KAAK,KAAK,IAAI;AACpC,KAAK,CAAC;;AAEN,IAAI,QAAQ,KAAK;AACjB,MAAM,KAAK,GAAG;AACd,QAAQ,OAAO,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,aAAa,CAAC;AACnE,MAAM,KAAK,IAAI;AACf,QAAQ,OAAO,QAAQ;AACvB,UAAU,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE;AAC1C,YAAY,IAAI,EAAE,MAAM;AACxB,WAAW,CAAC;AACZ,UAAU,aAAa;AACvB,SAAS;AACT,MAAM;AACN,QAAQ,OAAO,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,aAAa,CAAC;AAC9E;AACA,EAAE;;AAEF,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE;AACzB,IAAI,OAAO,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC;AACjD,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE;AACnC,IAAI,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC;;AAElD,IAAI,IAAI,KAAK,CAAC,cAAc,EAAE;AAC9B,MAAM,MAAM,sBAAsB,GAAG,qBAAqB;AAC1D,QAAQ,KAAK,CAAC,IAAI;AAClB,QAAQ,WAAW;AACnB,OAAO;AACP,MAAM,IAAI,CAAC,WAAW;AACtB,QAAQ,sBAAsB;AAC9B,QAAQ,CAAC;AACT,QAAQ,OAAO,CAAC,qBAAqB;AACrC,OAAO;AACP,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/B,MAAM,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC;AACvC,IAAI;;AAEJ,IAAI,MAAM,IAAI;AACd,MAAM,EAAE,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI;AACxE,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC;AAC5D,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7B,IAAI,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC;AACrC,EAAE;;AAEF,EAAE,kBAAkB,GAAG;AACvB,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,GAAG;AACH;;ACrEA;AACO,MAAM,iBAAiB,SAAS,MAAM,CAAC;AAC9C,EAAE,QAAQ,GAAG,GAAG;;AAEhB,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE;AAC3B,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE;AACvB,MAAM,OAAO,kBAAkB,CAAC,CAAC,EAAE,UAAU,CAAC;AAC9C,IAAI;;AAEJ,IAAI,OAAO,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC;AACvD,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;AAC3B,IAAI,MAAM,eAAe,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;AAClD,IAAI,eAAe,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5C,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACxC,IAAI,OAAO,cAAc,CAAC,eAAe,CAAC;AAC1C,EAAE;;AAEF,EAAE,kBAAkB,GAAG;AACvB,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,GAAG;AACH;;ACtCO,MAAM,kBAAkB,SAAS,MAAM,CAAC;AAC/C,EAAE,QAAQ,GAAG,GAAG;;AAEhB,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE;AAC3B,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE;AACvB,MAAM,OAAO,kBAAkB,CAAC,CAAC,EAAE,UAAU,CAAC;AAC9C,IAAI;;AAEJ,IAAI,OAAO,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC;AACvD,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;AAC3B,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AACjC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7B,IAAI,OAAO,IAAI;AACf,EAAE;;AAEF,EAAE,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC9E;;AClBO,MAAM,aAAa,SAAS,MAAM,CAAC;AAC1C,EAAE,QAAQ,GAAG,GAAG;;AAEhB,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;AAClC,IAAI,QAAQ,KAAK;AACjB;AACA,MAAM,KAAK,GAAG;AACd,MAAM,KAAK,IAAI;AACf,QAAQ,OAAO,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC;AACrD;AACA,MAAM,KAAK,IAAI;AACf,QAAQ,OAAO,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AACnE;AACA,MAAM,KAAK,KAAK;AAChB,QAAQ;AACR,UAAU,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE;AACpC,YAAY,KAAK,EAAE,aAAa;AAChC,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW,CAAC;AACZ,UAAU,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE;AACpC,YAAY,KAAK,EAAE,QAAQ;AAC3B,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW;AACX;;AAEA;AACA,MAAM,KAAK,OAAO;AAClB,QAAQ,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE;AACzC,UAAU,KAAK,EAAE,QAAQ;AACzB,UAAU,OAAO,EAAE,YAAY;AAC/B,SAAS,CAAC;AACV;AACA,MAAM,KAAK,MAAM;AACjB,MAAM;AACN,QAAQ;AACR,UAAU,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE;AACpC,YAAY,KAAK,EAAE,MAAM;AACzB,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW,CAAC;AACZ,UAAU,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE;AACpC,YAAY,KAAK,EAAE,aAAa;AAChC,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW,CAAC;AACZ,UAAU,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE;AACpC,YAAY,KAAK,EAAE,QAAQ;AAC3B,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW;AACX;AACA;AACA,EAAE;;AAEF,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE;AACzB,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;AACnC,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;AAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7B,IAAI,OAAO,IAAI;AACf,EAAE;;AAEF,EAAE,kBAAkB,GAAG;AACvB,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,GAAG;AACH;;AC7EO,MAAM,uBAAuB,SAAS,MAAM,CAAC;AACpD,EAAE,QAAQ,GAAG,GAAG;;AAEhB,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;AAClC,IAAI,QAAQ,KAAK;AACjB;AACA,MAAM,KAAK,GAAG;AACd,MAAM,KAAK,IAAI;AACf,QAAQ,OAAO,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC;AACrD;AACA,MAAM,KAAK,IAAI;AACf,QAAQ,OAAO,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AACnE;AACA,MAAM,KAAK,KAAK;AAChB,QAAQ;AACR,UAAU,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE;AACpC,YAAY,KAAK,EAAE,aAAa;AAChC,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW,CAAC;AACZ,UAAU,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE;AACpC,YAAY,KAAK,EAAE,QAAQ;AAC3B,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW;AACX;;AAEA;AACA,MAAM,KAAK,OAAO;AAClB,QAAQ,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE;AACzC,UAAU,KAAK,EAAE,QAAQ;AACzB,UAAU,OAAO,EAAE,YAAY;AAC/B,SAAS,CAAC;AACV;AACA,MAAM,KAAK,MAAM;AACjB,MAAM;AACN,QAAQ;AACR,UAAU,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE;AACpC,YAAY,KAAK,EAAE,MAAM;AACzB,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW,CAAC;AACZ,UAAU,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE;AACpC,YAAY,KAAK,EAAE,aAAa;AAChC,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW,CAAC;AACZ,UAAU,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE;AACpC,YAAY,KAAK,EAAE,QAAQ;AAC3B,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW;AACX;AACA;AACA,EAAE;;AAEF,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE;AACzB,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;AACnC,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;AAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7B,IAAI,OAAO,IAAI;AACf,EAAE;;AAEF,EAAE,kBAAkB,GAAG;AACvB,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,GAAG;AACH;;AC5EO,MAAM,WAAW,SAAS,MAAM,CAAC;AACxC,EAAE,kBAAkB,GAAG;AACvB,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,GAAG;;AAEH,EAAE,QAAQ,GAAG,GAAG;;AAEhB,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;AAClC,IAAI,MAAM,aAAa,GAAG,CAAC,KAAK,KAAK,KAAK,GAAG,CAAC;;AAE9C,IAAI,QAAQ,KAAK;AACjB;AACA,MAAM,KAAK,GAAG;AACd,QAAQ,OAAO,QAAQ;AACvB,UAAU,mBAAmB,CAAC,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC;AAChE,UAAU,aAAa;AACvB,SAAS;AACT;AACA,MAAM,KAAK,IAAI;AACf,QAAQ,OAAO,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,aAAa,CAAC;AACnE;AACA,MAAM,KAAK,IAAI;AACf,QAAQ,OAAO,QAAQ;AACvB,UAAU,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE;AAC1C,YAAY,IAAI,EAAE,OAAO;AACzB,WAAW,CAAC;AACZ,UAAU,aAAa;AACvB,SAAS;AACT;AACA,MAAM,KAAK,KAAK;AAChB,QAAQ;AACR,UAAU,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE;AAClC,YAAY,KAAK,EAAE,aAAa;AAChC,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW,CAAC;AACZ,UAAU,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;AAC5E;;AAEA;AACA,MAAM,KAAK,OAAO;AAClB,QAAQ,OAAO,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE;AACvC,UAAU,KAAK,EAAE,QAAQ;AACzB,UAAU,OAAO,EAAE,YAAY;AAC/B,SAAS,CAAC;AACV;AACA,MAAM,KAAK,MAAM;AACjB,MAAM;AACN,QAAQ;AACR,UAAU,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AAC3E,UAAU,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE;AAClC,YAAY,KAAK,EAAE,aAAa;AAChC,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW,CAAC;AACZ,UAAU,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;AAC5E;AACA;AACA,EAAE;;AAEF,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE;AACzB,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;AACpC,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;AAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7B,IAAI,OAAO,IAAI;AACf,EAAE;AACF;;AC/EO,MAAM,qBAAqB,SAAS,MAAM,CAAC;AAClD,EAAE,QAAQ,GAAG,GAAG;;AAEhB,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;AAClC,IAAI,MAAM,aAAa,GAAG,CAAC,KAAK,KAAK,KAAK,GAAG,CAAC;;AAE9C,IAAI,QAAQ,KAAK;AACjB;AACA,MAAM,KAAK,GAAG;AACd,QAAQ,OAAO,QAAQ;AACvB,UAAU,mBAAmB,CAAC,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC;AAChE,UAAU,aAAa;AACvB,SAAS;AACT;AACA,MAAM,KAAK,IAAI;AACf,QAAQ,OAAO,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,aAAa,CAAC;AACnE;AACA,MAAM,KAAK,IAAI;AACf,QAAQ,OAAO,QAAQ;AACvB,UAAU,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE;AAC1C,YAAY,IAAI,EAAE,OAAO;AACzB,WAAW,CAAC;AACZ,UAAU,aAAa;AACvB,SAAS;AACT;AACA,MAAM,KAAK,KAAK;AAChB,QAAQ;AACR,UAAU,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE;AAClC,YAAY,KAAK,EAAE,aAAa;AAChC,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW,CAAC;AACZ,UAAU,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;AAC5E;;AAEA;AACA,MAAM,KAAK,OAAO;AAClB,QAAQ,OAAO,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE;AACvC,UAAU,KAAK,EAAE,QAAQ;AACzB,UAAU,OAAO,EAAE,YAAY;AAC/B,SAAS,CAAC;AACV;AACA,MAAM,KAAK,MAAM;AACjB,MAAM;AACN,QAAQ;AACR,UAAU,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AAC3E,UAAU,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE;AAClC,YAAY,KAAK,EAAE,aAAa;AAChC,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW,CAAC;AACZ,UAAU,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;AAC5E;AACA;AACA,EAAE;;AAEF,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE;AACzB,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;AACpC,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;AAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7B,IAAI,OAAO,IAAI;AACf,EAAE;;AAEF,EAAE,kBAAkB,GAAG;AACvB,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,GAAG;AACH;;ACjFA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;AAC7C,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;AACzC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI;AAC7C,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC;AAC3C,EAAE,OAAO,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;AACnC;;AC3CA;AACO,MAAM,eAAe,SAAS,MAAM,CAAC;AAC5C,EAAE,QAAQ,GAAG,GAAG;;AAEhB,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;AAClC,IAAI,QAAQ,KAAK;AACjB,MAAM,KAAK,GAAG;AACd,QAAQ,OAAO,mBAAmB,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC;AACpE,MAAM,KAAK,IAAI;AACf,QAAQ,OAAO,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAChE,MAAM;AACN,QAAQ,OAAO,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC;AACrD;AACA,EAAE;;AAEF,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE;AACzB,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;AACpC,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;AACpC,IAAI,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC;AAC9D,EAAE;;AAEF,EAAE,kBAAkB,GAAG;AACvB,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,GAAG;AACH;;AC1CA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;AAChD,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;AACzC,EAAE,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI;AAChD,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC;AAC3C,EAAE,OAAO,KAAK;AACd;;AC7BA;AACO,MAAM,aAAa,SAAS,MAAM,CAAC;AAC1C,EAAE,QAAQ,GAAG,GAAG;;AAEhB,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;AAClC,IAAI,QAAQ,KAAK;AACjB,MAAM,KAAK,GAAG;AACd,QAAQ,OAAO,mBAAmB,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC;AACpE,MAAM,KAAK,IAAI;AACf,QAAQ,OAAO,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAChE,MAAM;AACN,QAAQ,OAAO,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC;AACrD;AACA,EAAE;;AAEF,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE;AACzB,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;AACpC,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;AAC3B,IAAI,OAAO,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAClD,EAAE;;AAEF,EAAE,kBAAkB,GAAG;AACvB,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,GAAG;AACH;;ACrCA,MAAM,aAAa,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACtE,MAAM,uBAAuB,GAAG;AAChC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAChD,CAAC;;AAED;AACO,MAAM,UAAU,SAAS,MAAM,CAAC;AACvC,EAAE,QAAQ,GAAG,EAAE;AACf,EAAE,WAAW,GAAG,CAAC;;AAEjB,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;AAClC,IAAI,QAAQ,KAAK;AACjB,MAAM,KAAK,GAAG;AACd,QAAQ,OAAO,mBAAmB,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC;AACpE,MAAM,KAAK,IAAI;AACf,QAAQ,OAAO,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAChE,MAAM;AACN,QAAQ,OAAO,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC;AACrD;AACA,EAAE;;AAEF,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE;AACxB,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;AACnC,IAAI,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC;AAC5C,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AACjC,IAAI,IAAI,UAAU,EAAE;AACpB,MAAM,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,uBAAuB,CAAC,KAAK,CAAC;AAClE,IAAI,CAAC,MAAM;AACX,MAAM,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,aAAa,CAAC,KAAK,CAAC;AACxD,IAAI;AACJ,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;AAC3B,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AACvB,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7B,IAAI,OAAO,IAAI;AACf,EAAE;;AAEF,EAAE,kBAAkB,GAAG;AACvB,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,GAAG;AACH;;ACpDO,MAAM,eAAe,SAAS,MAAM,CAAC;AAC5C,EAAE,QAAQ,GAAG,EAAE;;AAEf,EAAE,WAAW,GAAG,CAAC;;AAEjB,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;AAClC,IAAI,QAAQ,KAAK;AACjB,MAAM,KAAK,GAAG;AACd,MAAM,KAAK,IAAI;AACf,QAAQ,OAAO,mBAAmB,CAAC,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC;AACzE,MAAM,KAAK,IAAI;AACf,QAAQ,OAAO,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAChE,MAAM;AACN,QAAQ,OAAO,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC;AACrD;AACA,EAAE;;AAEF,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE;AACxB,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;AACnC,IAAI,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC;AAC5C,IAAI,IAAI,UAAU,EAAE;AACpB,MAAM,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,GAAG;AACvC,IAAI,CAAC,MAAM;AACX,MAAM,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,GAAG;AACvC,IAAI;AACJ,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;AAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC;AAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7B,IAAI,OAAO,IAAI;AACf,EAAE;;AAEF,EAAE,kBAAkB,GAAG;AACvB,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,GAAG;AACH;;ACvDA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE;AAC3C,EAAE,MAAM,cAAc,GAAGR,mBAAiB,EAAE;AAC5C,EAAE,MAAM,YAAY;AACpB,IAAI,OAAO,EAAE,YAAY;AACzB,IAAI,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY;AAC1C,IAAI,cAAc,CAAC,YAAY;AAC/B,IAAI,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY;AAChD,IAAI,CAAC;;AAEL,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;AACzC,EAAE,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,EAAE;;AAEnC,EAAE,MAAM,SAAS,GAAG,GAAG,GAAG,CAAC;AAC3B,EAAE,MAAM,QAAQ,GAAG,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC;;AAEtC,EAAE,MAAM,KAAK,GAAG,CAAC,GAAG,YAAY;AAChC,EAAE,MAAM,IAAI;AACZ,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG;AACrB,QAAQ,GAAG,IAAI,CAAC,UAAU,GAAG,KAAK,IAAI,CAAC;AACvC,QAAQ,CAAC,CAAC,QAAQ,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,IAAI,CAAC,CAAC;AAC7D,EAAE,OAAO,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC;AACtC;;ACrDA;AACO,MAAM,SAAS,SAAS,MAAM,CAAC;AACtC,EAAE,QAAQ,GAAG,EAAE;;AAEf,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;AAClC,IAAI,QAAQ,KAAK;AACjB;AACA,MAAM,KAAK,GAAG;AACd,MAAM,KAAK,IAAI;AACf,MAAM,KAAK,KAAK;AAChB,QAAQ;AACR,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE;AAChC,YAAY,KAAK,EAAE,aAAa;AAChC,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW,CAAC;AACZ,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AAC1E,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;AAC1E;;AAEA;AACA,MAAM,KAAK,OAAO;AAClB,QAAQ,OAAO,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE;AACrC,UAAU,KAAK,EAAE,QAAQ;AACzB,UAAU,OAAO,EAAE,YAAY;AAC/B,SAAS,CAAC;AACV;AACA,MAAM,KAAK,QAAQ;AACnB,QAAQ;AACR,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AAC1E,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;AAC1E;;AAEA;AACA,MAAM,KAAK,MAAM;AACjB,MAAM;AACN,QAAQ;AACR,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AACzE,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE;AAChC,YAAY,KAAK,EAAE,aAAa;AAChC,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW,CAAC;AACZ,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AAC1E,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;AAC1E;AACA;AACA,EAAE;;AAEF,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE;AACzB,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;AACnC,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;AACpC,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC;AACvC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7B,IAAI,OAAO,IAAI;AACf,EAAE;;AAEF,EAAE,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACrD;;ACxDA;AACO,MAAM,cAAc,SAAS,MAAM,CAAC;AAC3C,EAAE,QAAQ,GAAG,EAAE;AACf,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE;AAC3C,IAAI,MAAM,aAAa,GAAG,CAAC,KAAK,KAAK;AACrC;AACA,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;AAC3D,MAAM,OAAO,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,aAAa;AACrE,IAAI,CAAC;;AAEL,IAAI,QAAQ,KAAK;AACjB;AACA,MAAM,KAAK,GAAG;AACd,MAAM,KAAK,IAAI;AACf,QAAQ,OAAO,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,aAAa,CAAC;AAC9E;AACA,MAAM,KAAK,IAAI;AACf,QAAQ,OAAO,QAAQ;AACvB,UAAU,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE;AAC1C,YAAY,IAAI,EAAE,KAAK;AACvB,WAAW,CAAC;AACZ,UAAU,aAAa;AACvB,SAAS;AACT;AACA,MAAM,KAAK,KAAK;AAChB,QAAQ;AACR,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE;AAChC,YAAY,KAAK,EAAE,aAAa;AAChC,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW,CAAC;AACZ,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AAC1E,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;AAC1E;;AAEA;AACA,MAAM,KAAK,OAAO;AAClB,QAAQ,OAAO,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE;AACrC,UAAU,KAAK,EAAE,QAAQ;AACzB,UAAU,OAAO,EAAE,YAAY;AAC/B,SAAS,CAAC;AACV;AACA,MAAM,KAAK,QAAQ;AACnB,QAAQ;AACR,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AAC1E,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;AAC1E;;AAEA;AACA,MAAM,KAAK,MAAM;AACjB,MAAM;AACN,QAAQ;AACR,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AACzE,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE;AAChC,YAAY,KAAK,EAAE,aAAa;AAChC,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW,CAAC;AACZ,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AAC1E,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;AAC1E;AACA;AACA,EAAE;;AAEF,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE;AACzB,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;AACnC,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;AACpC,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC;AACvC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7B,IAAI,OAAO,IAAI;AACf,EAAE;;AAEF,EAAE,kBAAkB,GAAG;AACvB,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,GAAG;AACH;;ACzFA;AACO,MAAM,wBAAwB,SAAS,MAAM,CAAC;AACrD,EAAE,QAAQ,GAAG,EAAE;;AAEf,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE;AAC3C,IAAI,MAAM,aAAa,GAAG,CAAC,KAAK,KAAK;AACrC;AACA,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;AAC3D,MAAM,OAAO,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,aAAa;AACrE,IAAI,CAAC;;AAEL,IAAI,QAAQ,KAAK;AACjB;AACA,MAAM,KAAK,GAAG;AACd,MAAM,KAAK,IAAI;AACf,QAAQ,OAAO,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,aAAa,CAAC;AAC9E;AACA,MAAM,KAAK,IAAI;AACf,QAAQ,OAAO,QAAQ;AACvB,UAAU,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE;AAC1C,YAAY,IAAI,EAAE,KAAK;AACvB,WAAW,CAAC;AACZ,UAAU,aAAa;AACvB,SAAS;AACT;AACA,MAAM,KAAK,KAAK;AAChB,QAAQ;AACR,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE;AAChC,YAAY,KAAK,EAAE,aAAa;AAChC,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW,CAAC;AACZ,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AAC1E,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;AAC1E;;AAEA;AACA,MAAM,KAAK,OAAO;AAClB,QAAQ,OAAO,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE;AACrC,UAAU,KAAK,EAAE,QAAQ;AACzB,UAAU,OAAO,EAAE,YAAY;AAC/B,SAAS,CAAC;AACV;AACA,MAAM,KAAK,QAAQ;AACnB,QAAQ;AACR,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AAC1E,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;AAC1E;;AAEA;AACA,MAAM,KAAK,MAAM;AACjB,MAAM;AACN,QAAQ;AACR,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AACzE,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE;AAChC,YAAY,KAAK,EAAE,aAAa;AAChC,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW,CAAC;AACZ,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AAC1E,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;AAC1E;AACA;AACA,EAAE;;AAEF,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE;AACzB,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;AACnC,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;AACpC,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC;AACvC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7B,IAAI,OAAO,IAAI;AACf,EAAE;;AAEF,EAAE,kBAAkB,GAAG;AACvB,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,GAAG;AACH;;AC3FA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE;AAC9C,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;AACzC,EAAE,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC;AAC9C,EAAE,MAAM,IAAI,GAAG,GAAG,GAAG,UAAU;AAC/B,EAAE,OAAO,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC;AACtC;;AChCA;AACO,MAAM,YAAY,SAAS,MAAM,CAAC;AACzC,EAAE,QAAQ,GAAG,EAAE;;AAEf,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;AAClC,IAAI,MAAM,aAAa,GAAG,CAAC,KAAK,KAAK;AACrC,MAAM,IAAI,KAAK,KAAK,CAAC,EAAE;AACvB,QAAQ,OAAO,CAAC;AAChB,MAAM;AACN,MAAM,OAAO,KAAK;AAClB,IAAI,CAAC;;AAEL,IAAI,QAAQ,KAAK;AACjB;AACA,MAAM,KAAK,GAAG;AACd,MAAM,KAAK,IAAI;AACf,QAAQ,OAAO,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC;AACrD;AACA,MAAM,KAAK,IAAI;AACf,QAAQ,OAAO,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC/D;AACA,MAAM,KAAK,KAAK;AAChB,QAAQ,OAAO,QAAQ;AACvB,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE;AAChC,YAAY,KAAK,EAAE,aAAa;AAChC,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW,CAAC;AACZ,YAAY,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE;AAClC,cAAc,KAAK,EAAE,OAAO;AAC5B,cAAc,OAAO,EAAE,YAAY;AACnC,aAAa,CAAC;AACd,YAAY,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE;AAClC,cAAc,KAAK,EAAE,QAAQ;AAC7B,cAAc,OAAO,EAAE,YAAY;AACnC,aAAa,CAAC;AACd,UAAU,aAAa;AACvB,SAAS;AACT;AACA,MAAM,KAAK,OAAO;AAClB,QAAQ,OAAO,QAAQ;AACvB,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE;AAChC,YAAY,KAAK,EAAE,QAAQ;AAC3B,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW,CAAC;AACZ,UAAU,aAAa;AACvB,SAAS;AACT;AACA,MAAM,KAAK,QAAQ;AACnB,QAAQ,OAAO,QAAQ;AACvB,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE;AAChC,YAAY,KAAK,EAAE,OAAO;AAC1B,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW,CAAC;AACZ,YAAY,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE;AAClC,cAAc,KAAK,EAAE,QAAQ;AAC7B,cAAc,OAAO,EAAE,YAAY;AACnC,aAAa,CAAC;AACd,UAAU,aAAa;AACvB,SAAS;AACT;AACA,MAAM,KAAK,MAAM;AACjB,MAAM;AACN,QAAQ,OAAO,QAAQ;AACvB,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE;AAChC,YAAY,KAAK,EAAE,MAAM;AACzB,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW,CAAC;AACZ,YAAY,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE;AAClC,cAAc,KAAK,EAAE,aAAa;AAClC,cAAc,OAAO,EAAE,YAAY;AACnC,aAAa,CAAC;AACd,YAAY,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE;AAClC,cAAc,KAAK,EAAE,OAAO;AAC5B,cAAc,OAAO,EAAE,YAAY;AACnC,aAAa,CAAC;AACd,YAAY,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE;AAClC,cAAc,KAAK,EAAE,QAAQ;AAC7B,cAAc,OAAO,EAAE,YAAY;AACnC,aAAa,CAAC;AACd,UAAU,aAAa;AACvB,SAAS;AACT;AACA,EAAE;;AAEF,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE;AACzB,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;AACnC,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;AAC3B,IAAI,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC;AACjC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7B,IAAI,OAAO,IAAI;AACf,EAAE;;AAEF,EAAE,kBAAkB,GAAG;AACvB,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,GAAG;AACH;;AChHO,MAAM,UAAU,SAAS,MAAM,CAAC;AACvC,EAAE,QAAQ,GAAG,EAAE;;AAEf,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;AAClC,IAAI,QAAQ,KAAK;AACjB,MAAM,KAAK,GAAG;AACd,MAAM,KAAK,IAAI;AACf,MAAM,KAAK,KAAK;AAChB,QAAQ;AACR,UAAU,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE;AACtC,YAAY,KAAK,EAAE,aAAa;AAChC,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW,CAAC;AACZ,UAAU,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE;AACtC,YAAY,KAAK,EAAE,QAAQ;AAC3B,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW;AACX;;AAEA,MAAM,KAAK,OAAO;AAClB,QAAQ,OAAO,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE;AAC3C,UAAU,KAAK,EAAE,QAAQ;AACzB,UAAU,OAAO,EAAE,YAAY;AAC/B,SAAS,CAAC;AACV,MAAM,KAAK,MAAM;AACjB,MAAM;AACN,QAAQ;AACR,UAAU,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE;AACtC,YAAY,KAAK,EAAE,MAAM;AACzB,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW,CAAC;AACZ,UAAU,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE;AACtC,YAAY,KAAK,EAAE,aAAa;AAChC,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW,CAAC;AACZ,UAAU,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE;AACtC,YAAY,KAAK,EAAE,QAAQ;AAC3B,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW;AACX;AACA;AACA,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;AAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACvD,IAAI,OAAO,IAAI;AACf,EAAE;;AAEF,EAAE,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACrD;;ACjDO,MAAM,kBAAkB,SAAS,MAAM,CAAC;AAC/C,EAAE,QAAQ,GAAG,EAAE;;AAEf,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;AAClC,IAAI,QAAQ,KAAK;AACjB,MAAM,KAAK,GAAG;AACd,MAAM,KAAK,IAAI;AACf,MAAM,KAAK,KAAK;AAChB,QAAQ;AACR,UAAU,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE;AACtC,YAAY,KAAK,EAAE,aAAa;AAChC,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW,CAAC;AACZ,UAAU,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE;AACtC,YAAY,KAAK,EAAE,QAAQ;AAC3B,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW;AACX;;AAEA,MAAM,KAAK,OAAO;AAClB,QAAQ,OAAO,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE;AAC3C,UAAU,KAAK,EAAE,QAAQ;AACzB,UAAU,OAAO,EAAE,YAAY;AAC/B,SAAS,CAAC;AACV,MAAM,KAAK,MAAM;AACjB,MAAM;AACN,QAAQ;AACR,UAAU,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE;AACtC,YAAY,KAAK,EAAE,MAAM;AACzB,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW,CAAC;AACZ,UAAU,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE;AACtC,YAAY,KAAK,EAAE,aAAa;AAChC,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW,CAAC;AACZ,UAAU,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE;AACtC,YAAY,KAAK,EAAE,QAAQ;AAC3B,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW;AACX;AACA;AACA,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;AAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACvD,IAAI,OAAO,IAAI;AACf,EAAE;;AAEF,EAAE,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACrD;;ACjDA;AACO,MAAM,eAAe,SAAS,MAAM,CAAC;AAC5C,EAAE,QAAQ,GAAG,EAAE;;AAEf,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;AAClC,IAAI,QAAQ,KAAK;AACjB,MAAM,KAAK,GAAG;AACd,MAAM,KAAK,IAAI;AACf,MAAM,KAAK,KAAK;AAChB,QAAQ;AACR,UAAU,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE;AACtC,YAAY,KAAK,EAAE,aAAa;AAChC,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW,CAAC;AACZ,UAAU,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE;AACtC,YAAY,KAAK,EAAE,QAAQ;AAC3B,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW;AACX;;AAEA,MAAM,KAAK,OAAO;AAClB,QAAQ,OAAO,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE;AAC3C,UAAU,KAAK,EAAE,QAAQ;AACzB,UAAU,OAAO,EAAE,YAAY;AAC/B,SAAS,CAAC;AACV,MAAM,KAAK,MAAM;AACjB,MAAM;AACN,QAAQ;AACR,UAAU,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE;AACtC,YAAY,KAAK,EAAE,MAAM;AACzB,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW,CAAC;AACZ,UAAU,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE;AACtC,YAAY,KAAK,EAAE,aAAa;AAChC,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW,CAAC;AACZ,UAAU,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE;AACtC,YAAY,KAAK,EAAE,QAAQ;AAC3B,YAAY,OAAO,EAAE,YAAY;AACjC,WAAW;AACX;AACA;AACA,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;AAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACvD,IAAI,OAAO,IAAI;AACf,EAAE;;AAEF,EAAE,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC3C;;ACjDO,MAAM,eAAe,SAAS,MAAM,CAAC;AAC5C,EAAE,QAAQ,GAAG,EAAE;;AAEf,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;AAClC,IAAI,QAAQ,KAAK;AACjB,MAAM,KAAK,GAAG;AACd,QAAQ,OAAO,mBAAmB,CAAC,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC;AACvE,MAAM,KAAK,IAAI;AACf,QAAQ,OAAO,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAChE,MAAM;AACN,QAAQ,OAAO,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC;AACrD;AACA,EAAE;;AAEF,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE;AACzB,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;AACpC,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;AAC3B,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE;AACtC,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG,EAAE,EAAE;AAC5B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACxC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE;AACtC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/B,IAAI,CAAC,MAAM;AACX,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACnC,IAAI;AACJ,IAAI,OAAO,IAAI;AACf,EAAE;;AAEF,EAAE,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAChD;;AC/BO,MAAM,eAAe,SAAS,MAAM,CAAC;AAC5C,EAAE,QAAQ,GAAG,EAAE;;AAEf,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;AAClC,IAAI,QAAQ,KAAK;AACjB,MAAM,KAAK,GAAG;AACd,QAAQ,OAAO,mBAAmB,CAAC,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC;AACvE,MAAM,KAAK,IAAI;AACf,QAAQ,OAAO,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAChE,MAAM;AACN,QAAQ,OAAO,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC;AACrD;AACA,EAAE;;AAEF,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE;AACzB,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;AACpC,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;AAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACjC,IAAI,OAAO,IAAI;AACf,EAAE;;AAEF,EAAE,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC1D;;ACxBO,MAAM,eAAe,SAAS,MAAM,CAAC;AAC5C,EAAE,QAAQ,GAAG,EAAE;;AAEf,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;AAClC,IAAI,QAAQ,KAAK;AACjB,MAAM,KAAK,GAAG;AACd,QAAQ,OAAO,mBAAmB,CAAC,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC;AACvE,MAAM,KAAK,IAAI;AACf,QAAQ,OAAO,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAChE,MAAM;AACN,QAAQ,OAAO,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC;AACrD;AACA,EAAE;;AAEF,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE;AACzB,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;AACpC,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;AAC3B,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE;AACtC,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG,EAAE,EAAE;AAC5B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACxC,IAAI,CAAC,MAAM;AACX,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACnC,IAAI;AACJ,IAAI,OAAO,IAAI;AACf,EAAE;;AAEF,EAAE,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAChD;;AC7BO,MAAM,eAAe,SAAS,MAAM,CAAC;AAC5C,EAAE,QAAQ,GAAG,EAAE;;AAEf,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;AAClC,IAAI,QAAQ,KAAK;AACjB,MAAM,KAAK,GAAG;AACd,QAAQ,OAAO,mBAAmB,CAAC,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC;AACvE,MAAM,KAAK,IAAI;AACf,QAAQ,OAAO,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAChE,MAAM;AACN,QAAQ,OAAO,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC;AACrD;AACA,EAAE;;AAEF,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE;AACzB,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;AACpC,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;AAC3B,IAAI,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE,GAAG,KAAK,GAAG,EAAE,GAAG,KAAK;AAClD,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACjC,IAAI,OAAO,IAAI;AACf,EAAE;;AAEF,EAAE,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC1D;;ACzBO,MAAM,YAAY,SAAS,MAAM,CAAC;AACzC,EAAE,QAAQ,GAAG,EAAE;;AAEf,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;AAClC,IAAI,QAAQ,KAAK;AACjB,MAAM,KAAK,GAAG;AACd,QAAQ,OAAO,mBAAmB,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC;AACtE,MAAM,KAAK,IAAI;AACf,QAAQ,OAAO,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAClE,MAAM;AACN,QAAQ,OAAO,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC;AACrD;AACA,EAAE;;AAEF,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE;AACzB,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;AACpC,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;AAC3B,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AAChC,IAAI,OAAO,IAAI;AACf,EAAE;;AAEF,EAAE,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;AACjC;;ACxBO,MAAM,YAAY,SAAS,MAAM,CAAC;AACzC,EAAE,QAAQ,GAAG,EAAE;;AAEf,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;AAClC,IAAI,QAAQ,KAAK;AACjB,MAAM,KAAK,GAAG;AACd,QAAQ,OAAO,mBAAmB,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC;AACtE,MAAM,KAAK,IAAI;AACf,QAAQ,OAAO,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAClE,MAAM;AACN,QAAQ,OAAO,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC;AACrD;AACA,EAAE;;AAEF,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE;AACzB,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;AACpC,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;AAC3B,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;AAC7B,IAAI,OAAO,IAAI;AACf,EAAE;;AAEF,EAAE,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;AACjC;;ACzBO,MAAM,sBAAsB,SAAS,MAAM,CAAC;AACnD,EAAE,QAAQ,GAAG,EAAE;;AAEf,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE;AAC3B,IAAI,MAAM,aAAa,GAAG,CAAC,KAAK;AAChC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACzD,IAAI,OAAO,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,aAAa,CAAC;AAC1E,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;AAC3B,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AAC/B,IAAI,OAAO,IAAI;AACf,EAAE;;AAEF,EAAE,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;AACjC;;ACZA;AACO,MAAM,sBAAsB,SAAS,MAAM,CAAC;AACnD,EAAE,QAAQ,GAAG,EAAE;;AAEf,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE;AAC3B,IAAI,QAAQ,KAAK;AACjB,MAAM,KAAK,GAAG;AACd,QAAQ,OAAO,oBAAoB;AACnC,UAAU,gBAAgB,CAAC,oBAAoB;AAC/C,UAAU,UAAU;AACpB,SAAS;AACT,MAAM,KAAK,IAAI;AACf,QAAQ,OAAO,oBAAoB,CAAC,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC;AACvE,MAAM,KAAK,MAAM;AACjB,QAAQ,OAAO,oBAAoB;AACnC,UAAU,gBAAgB,CAAC,oBAAoB;AAC/C,UAAU,UAAU;AACpB,SAAS;AACT,MAAM,KAAK,OAAO;AAClB,QAAQ,OAAO,oBAAoB;AACnC,UAAU,gBAAgB,CAAC,uBAAuB;AAClD,UAAU,UAAU;AACpB,SAAS;AACT,MAAM,KAAK,KAAK;AAChB,MAAM;AACN,QAAQ,OAAO,oBAAoB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC;AAC1E;AACA,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,IAAI,IAAI,KAAK,CAAC,cAAc,EAAE,OAAO,IAAI;AACzC,IAAI,OAAO,aAAa;AACxB,MAAM,IAAI;AACV,MAAM,IAAI,CAAC,OAAO,EAAE,GAAG,+BAA+B,CAAC,IAAI,CAAC,GAAG,KAAK;AACpE,KAAK;AACL,EAAE;;AAEF,EAAE,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACtC;;ACtCA;AACO,MAAM,iBAAiB,SAAS,MAAM,CAAC;AAC9C,EAAE,QAAQ,GAAG,EAAE;;AAEf,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE;AAC3B,IAAI,QAAQ,KAAK;AACjB,MAAM,KAAK,GAAG;AACd,QAAQ,OAAO,oBAAoB;AACnC,UAAU,gBAAgB,CAAC,oBAAoB;AAC/C,UAAU,UAAU;AACpB,SAAS;AACT,MAAM,KAAK,IAAI;AACf,QAAQ,OAAO,oBAAoB,CAAC,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC;AACvE,MAAM,KAAK,MAAM;AACjB,QAAQ,OAAO,oBAAoB;AACnC,UAAU,gBAAgB,CAAC,oBAAoB;AAC/C,UAAU,UAAU;AACpB,SAAS;AACT,MAAM,KAAK,OAAO;AAClB,QAAQ,OAAO,oBAAoB;AACnC,UAAU,gBAAgB,CAAC,uBAAuB;AAClD,UAAU,UAAU;AACpB,SAAS;AACT,MAAM,KAAK,KAAK;AAChB,MAAM;AACN,QAAQ,OAAO,oBAAoB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC;AAC1E;AACA,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,IAAI,IAAI,KAAK,CAAC,cAAc,EAAE,OAAO,IAAI;AACzC,IAAI,OAAO,aAAa;AACxB,MAAM,IAAI;AACV,MAAM,IAAI,CAAC,OAAO,EAAE,GAAG,+BAA+B,CAAC,IAAI,CAAC,GAAG,KAAK;AACpE,KAAK;AACL,EAAE;;AAEF,EAAE,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACtC;;ACxCO,MAAM,sBAAsB,SAAS,MAAM,CAAC;AACnD,EAAE,QAAQ,GAAG,EAAE;;AAEf,EAAE,KAAK,CAAC,UAAU,EAAE;AACpB,IAAI,OAAO,oBAAoB,CAAC,UAAU,CAAC;AAC3C,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;AAC3B,IAAI,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;AACxE,EAAE;;AAEF,EAAE,kBAAkB,GAAG,GAAG;AAC1B;;ACZO,MAAM,2BAA2B,SAAS,MAAM,CAAC;AACxD,EAAE,QAAQ,GAAG,EAAE;;AAEf,EAAE,KAAK,CAAC,UAAU,EAAE;AACpB,IAAI,OAAO,oBAAoB,CAAC,UAAU,CAAC;AAC3C,EAAE;;AAEF,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;AAC3B,IAAI,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;AACjE,EAAE;;AAEF,EAAE,kBAAkB,GAAG,GAAG;AAC1B;;ACeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,OAAO,GAAG;AACvB,EAAE,CAAC,EAAE,IAAI,SAAS,EAAE;AACpB,EAAE,CAAC,EAAE,IAAI,UAAU,EAAE;AACrB,EAAE,CAAC,EAAE,IAAI,mBAAmB,EAAE;AAC9B,EAAE,CAAC,EAAE,IAAI,iBAAiB,EAAE;AAC5B,EAAE,CAAC,EAAE,IAAI,kBAAkB,EAAE;AAC7B,EAAE,CAAC,EAAE,IAAI,aAAa,EAAE;AACxB,EAAE,CAAC,EAAE,IAAI,uBAAuB,EAAE;AAClC,EAAE,CAAC,EAAE,IAAI,WAAW,EAAE;AACtB,EAAE,CAAC,EAAE,IAAI,qBAAqB,EAAE;AAChC,EAAE,CAAC,EAAE,IAAI,eAAe,EAAE;AAC1B,EAAE,CAAC,EAAE,IAAI,aAAa,EAAE;AACxB,EAAE,CAAC,EAAE,IAAI,UAAU,EAAE;AACrB,EAAE,CAAC,EAAE,IAAI,eAAe,EAAE;AAC1B,EAAE,CAAC,EAAE,IAAI,SAAS,EAAE;AACpB,EAAE,CAAC,EAAE,IAAI,cAAc,EAAE;AACzB,EAAE,CAAC,EAAE,IAAI,wBAAwB,EAAE;AACnC,EAAE,CAAC,EAAE,IAAI,YAAY,EAAE;AACvB,EAAE,CAAC,EAAE,IAAI,UAAU,EAAE;AACrB,EAAE,CAAC,EAAE,IAAI,kBAAkB,EAAE;AAC7B,EAAE,CAAC,EAAE,IAAI,eAAe,EAAE;AAC1B,EAAE,CAAC,EAAE,IAAI,eAAe,EAAE;AAC1B,EAAE,CAAC,EAAE,IAAI,eAAe,EAAE;AAC1B,EAAE,CAAC,EAAE,IAAI,eAAe,EAAE;AAC1B,EAAE,CAAC,EAAE,IAAI,eAAe,EAAE;AAC1B,EAAE,CAAC,EAAE,IAAI,YAAY,EAAE;AACvB,EAAE,CAAC,EAAE,IAAI,YAAY,EAAE;AACvB,EAAE,CAAC,EAAE,IAAI,sBAAsB,EAAE;AACjC,EAAE,CAAC,EAAE,IAAI,sBAAsB,EAAE;AACjC,EAAE,CAAC,EAAE,IAAI,iBAAiB,EAAE;AAC5B,EAAE,CAAC,EAAE,IAAI,sBAAsB,EAAE;AACjC,EAAE,CAAC,EAAE,IAAI,2BAA2B,EAAE;AACtC,CAAC;;ACzFD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,sBAAsB;AAC5B,EAAE,uDAAuD;;AAEzD;AACA;AACA,MAAM,0BAA0B,GAAG,mCAAmC;;AAEtE,MAAM,mBAAmB,GAAG,cAAc;AAC1C,MAAM,iBAAiB,GAAG,KAAK;;AAE/B,MAAM,mBAAmB,GAAG,IAAI;AAChC,MAAM,6BAA6B,GAAG,UAAU;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE;AAClE,EAAE,MAAM,WAAW,GAAG,MAAM,aAAa,CAAgB,aAAa,EAAE,GAAG,CAAC;AAC5E,EAAE,MAAM,cAAc,GAAG,iBAAiB,EAAE;AAC5C,EAAE,MAAM,MAAM,GAAsB,cAAc,CAAC,MAAM,IAAIM,IAAa;;AAE1E,EAAE,MAAM,qBAAqB;AAC7B,IAEI,cAAc,CAAC,qBAAqB;AACxC,IAAI,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,qBAAqB;AACzD,IAAI,CAAC;;AAEL,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","x_google_ignoreList":[0,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,88,89]} \ No newline at end of file +{"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/esm/storefront.js b/dist/esm/storefront.js index 6fe8436..720d02b 100644 --- a/dist/esm/storefront.js +++ b/dist/esm/storefront.js @@ -4,14 +4,12 @@ import 'countries-list'; import { isValid, parse, format } from 'date-fns'; class StorefrontStore extends Store$1 { - constructor() { - super(...arguments); + constructor(resource, adapter, options = {}) { + super(resource, adapter, options); } - extendActions(actions = []) { return extendStoreActions(this, actions); } - serialize(json) { return lookup('resource', classify(this.resource), json, this.adapter); } @@ -38,21 +36,19 @@ function isEmpty(obj) { if (none) { return none; } - const objectType = typeof obj; - - if (typeof obj.size === 'number') { + if (typeof obj === 'object' && typeof obj.size === 'number') { return !obj.size; } - - if (typeof obj.length === 'number' && objectType !== 'function') { + if ((typeof obj === 'object' || typeof obj === 'string') && typeof obj.length === 'number' && objectType !== 'function') { return !obj.length; } - return false; } -const { isArray: isArray$1 } = Array; +function isArray$1(value) { + return Array.isArray(value); +} class StorefrontResource extends Resource { /** @@ -67,424 +63,334 @@ class StorefrontResource extends Resource { onAfterFetch: this.syncAttributes.bind(this), actions: this.options?.actions, }); - return this; } } - register('resource', 'StorefrontResource', StorefrontResource); const reviewActions = new StoreActions({ 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 = undefined, options = {}) { + constructor(attributes = {}, adapter, options = {}) { super(attributes, adapter, 'review', options); } - getMedia() { return this.getPhotos(); } - getPhotos() { - return this.getAttribute('photos') ?? []; + return (this.getAttribute('photos') ?? []); } - getVideos() { - return this.getMedia().filter((media) => media?.type?.startsWith('video/')); + return this.getMedia().filter((media) => typeof media?.type === 'string' && media.type.startsWith('video/')); } } - register('resource', 'Review', Review); class StoreHour extends StorefrontResource { - constructor(attributes = {}, adapter = undefined, options = {}) { + 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 (!isValid(start) || !isValid(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() { 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() { - if (!isValid(this.startDateInstance) || !isValid(this.endDateInstance)) { + 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() { 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!'); } } - register('resource', 'StoreHour', StoreHour); class StoreLocation extends StorefrontResource { - constructor(attributes = {}, adapter = undefined, options = {}) { + 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() { - return new Collection((this.getAttribute('hours') || []).map((attributes) => new StoreHour(attributes, this.adapter))); + 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() { 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'); - - return typeof store === 'string' ? store : this.storeData?.id || this.storeData?.public_id; + 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 ? lookup('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 Collection(); } - for (let i = 0; i < this.hours.length; i++) { const hour = this.hours.objectAt(i); - - if (schedule[hour.day]) { + 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!'); } } - register('resource', 'StoreLocation', StoreLocation); class PaymentGateway extends StorefrontResource { - constructor(attributes = {}, adapter = undefined, options = {}) { + 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!'); } } - register('resource', 'PaymentGateway', PaymentGateway); class Store extends StorefrontResource { - constructor(attributes = {}, adapter = undefined, options = {}) { + 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))); }); } - getTags(params = {}) { return this.adapter.get('tags', params); } - 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, this.adapter); - } - - return new StoreLocation(attributes, this.adapter); - }) - ); + return new Collection(storeLocations.map((attributes) => { + if (attributes.place) { + attributes.place = new Place(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 Collection( - gateways.map((attributes) => { - return new PaymentGateway(attributes, this.adapter); - }) - ); + 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); class Product extends StorefrontResource { - constructor(attributes = {}, adapter = undefined, options = {}) { + 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 Collection(reviews.map((attributes) => new Review(attributes, this.adapter))); }); } } - register('resource', 'Product', Product); class Category extends StorefrontResource { - constructor(attributes = {}, adapter = undefined, options = {}) { + 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); const customerActions = new StoreActions({ @@ -494,57 +400,46 @@ const customerActions = new StoreActions({ 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 = undefined, options = {}) { + 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 * @@ -557,18 +452,15 @@ class Customer extends StorefrontResource { onAfterFetch: this.syncAttributes.bind(this), actions: this.options?.actions, }); - return this; } - get token() { - return this.getAttribute('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, @@ -577,44 +469,35 @@ class Customer extends StorefrontResource { 'Customer-Token': this.token, }, }; - - return this.adapter[method.toLowerCase()](endpoint, params, requestOptions); + const adapter = this.adapter; + return adapter[method.toLowerCase()](endpoint, params, requestOptions); } - async getSavedPlaces() { const places = await this.performAuthorizedRequest('customers/places'); return new Collection(places.map((attributes) => new Place(attributes, this.adapter))); } - async getOrderHistory(params = {}) { const orders = await this.performAuthorizedRequest('customers/orders', params); return new Collection(orders.map((attributes) => new Order$1(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); @@ -622,156 +505,123 @@ class Customer extends StorefrontResource { }); } } - register('resource', 'Customer', Customer); const { isArray } = Array; - 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); }, }); - class Cart extends StorefrontResource { - constructor(attributes = {}, adapter = undefined, options = {}) { + 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); + 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; } } - register('resource', 'Cart', Cart); class Network extends StorefrontResource { - constructor(attributes = {}, adapter = undefined, options = {}) { + 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 Collection(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); } } - register('resource', 'Network', Network); class DeliveryServiceQuote extends ServiceQuote { - constructor(attributes = {}, adapter = undefined, options = {}) { + constructor(attributes = {}, adapter, options = {}) { let finalAttributes = attributes; let finalAdapter = 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; } - // 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 * @@ -784,37 +634,28 @@ class DeliveryServiceQuote extends ServiceQuote { 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 fromCart(...args) { + return this.fetchServiceQuotesFromCart(...args); } - async fetchServiceQuotesFromCart(origin, destination, cart, config = 'storefront', all = false) { - if (origin?.id) { + if (typeof origin === 'object' && origin?.id) { origin = origin.id; } - - if (destination?.id) { + if (typeof destination === 'object' && destination?.id) { destination = destination.id; } - - if (cart?.id) { + if (typeof cart === 'object' && cart?.id) { cart = cart.id; } - const serviceQuotes = await this.adapter.get('service-quotes/from-cart', { origin, destination, @@ -822,28 +663,23 @@ class DeliveryServiceQuote extends ServiceQuote { config, all, }); - if (isArray$1(serviceQuotes)) { return new Collection(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); } } - register('resource', 'DeliveryServiceQuote', DeliveryServiceQuote); class Order extends Order$1 { - constructor(attributes = {}, adapter = undefined, options = {}) { + constructor(attributes = {}, adapter, options = {}) { super(attributes, adapter, options); } } - register('resource', 'Order', Order); const checkoutActions = new StoreActions({ @@ -851,139 +687,108 @@ const checkoutActions = new StoreActions({ 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, this.adapter)); }, - 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); }, - getStatus: function (checkout, token, options = {}) { if (isResource(checkout)) { checkout = checkout.id; } - return this.adapter.get(`${this.namespace}/status`, { checkout, token }, options); }, - captureQPay: function (checkout, params = {}, options = {}) { if (isResource(checkout)) { checkout = checkout.id; } - return this.adapter.post(`${this.namespace}/capture-qpay`, { checkout, ...params }, options); }, - captureQPayCallback: function (checkout, params = {}, options = {}) { if (isResource(checkout)) { checkout = checkout.id; } - return this.adapter.get(`${this.namespace}/capture-qpay`, { checkout, ...params }, options); }, }); - class Checkout extends StorefrontResource { - constructor(attributes = {}, adapter = undefined, options = {}) { + constructor(attributes = {}, adapter, options = {}) { super(attributes, adapter, 'checkout', { actions: checkoutActions, ...options }); } - - initialize() { - return this.store.initialize(...arguments); + initialize(customer, cart, serviceQuote, gateway, orderOptions = {}, options = {}) { + return this.store.initialize(customer, cart, serviceQuote, gateway, orderOptions, options); } - - captureOrder() { - return this.store.captureOrder(...arguments); + captureOrder(token, params = {}, options = {}) { + return this.store.captureOrder(token, params, options); } - - createStripeSetupIntent() { - return this.store.createStripeSetupIntent(...arguments); + createStripeSetupIntent(customer, params = {}, options = {}) { + return this.store.createStripeSetupIntent(customer, params, options); } - - updateStripePaymentIntent() { - return this.store.updateStripePaymentIntent(...arguments); + updateStripePaymentIntent(paymentIntent, customer, cart, serviceQuote, orderOptions = {}, options = {}) { + return this.store.updateStripePaymentIntent(paymentIntent, customer, cart, serviceQuote, orderOptions, options); } - - getStatus() { - return this.store.getStatus(...arguments); + getStatus(checkout, token, options = {}) { + return this.store.getStatus(checkout, token, options); } - - captureQPay() { - return this.store.captureQPay(...arguments); + captureQPay(checkout, params = {}, options = {}) { + return this.store.captureQPay(checkout, params, options); } - - captureQPayCallback() { - return this.store.captureQPayCallback(...arguments); + captureQPayCallback(checkout, params = {}, options = {}) { + return this.store.captureQPayCallback(checkout, params, options); } } - register('resource', 'Checkout', Checkout); class FoodTruck extends StorefrontResource { - constructor(attributes = {}, adapter = undefined, options = {}) { + constructor(attributes = {}, adapter, options = {}) { super(attributes, adapter, 'food-truck', options); } } - register('resource', 'FoodTruck', FoodTruck); function idFor(value) { return isResource(value) ? value.id : value; } - const orderActions = new StoreActions({ 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); }, @@ -995,6 +800,17 @@ const orderActions = new StoreActions({ * */ class Storefront { + version; + options; + adapter; + products; + categories; + foodTrucks; + reviews; + customers; + cart; + checkout; + orders; /** * Builds an instance of the Fleetbase Storefront SDK * @@ -1012,16 +828,12 @@ class Storefront { 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); @@ -1031,36 +843,31 @@ class Storefront { 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>} + * @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>} + * @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} @@ -1068,12 +875,11 @@ class Storefront { lookupResource(id) { return this.lookup(id, { resource: true }); } - /** * Searches products in the current store or network. * * @param {string} query - * @param {Record} options + * @param {Record} options * @returns {Promise>} */ search(query, options = {}) { @@ -1081,25 +887,19 @@ class Storefront { 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); + static newInstance(...args) { + return new Storefront(...args); } - setAdapter(adapter) { this.adapter = adapter; - return this.initializeStores(); } - getAdapter() { return this.adapter; } diff --git a/dist/esm/storefront.js.map b/dist/esm/storefront.js.map index 9426987..c59d3c2 100644 --- a/dist/esm/storefront.js.map +++ b/dist/esm/storefront.js.map @@ -1 +1 @@ -{"version":3,"file":"storefront.js","sources":["../../src/store.js","../../src/utils/is-phone.js","../../src/utils/format-currency.js","../../src/utils/is-key-valid.js","../../src/utils/is-empty.js","../../src/utils/array.js","../../src/resource.js","../../src/resources/review.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/resources/cart.js","../../src/resources/network.js","../../src/resources/delivery-service-quote.js","../../src/resources/order.js","../../src/resources/checkout.js","../../src/resources/food-truck.js","../../src/resources/order-actions.js","../../src/storefront.js"],"sourcesContent":["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 isPhone(phone = '') {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/.test(phone);\n}\n\nexport default isPhone;\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 isKeyValid(key) {\n return typeof key === 'string' && key.length > 30 && (key.startsWith('store_') || key.startsWith('network_'));\n}\n\nexport default isKeyValid;\n","export function isEmpty(obj) {\n const none = obj === null || obj === undefined;\n if (none) {\n return none;\n }\n\n const objectType = typeof obj;\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\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 {import('@fleetbase/sdk').Adapter} adapter\n * @return {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 = undefined, options = {}) {\n super(attributes, adapter, 'review', options);\n }\n\n getMedia() {\n return this.getPhotos();\n }\n\n getPhotos() {\n return this.getAttribute('photos') ?? [];\n }\n\n getVideos() {\n return this.getMedia().filter((media) => media?.type?.startsWith('video/'));\n }\n}\n\nregister('resource', 'Review', Review);\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 = undefined, 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\n if (!isValid(start) || !isValid(end)) {\n return false;\n }\n\n const diff = Math.abs(start.getTime() - end.getTime());\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 if (typeof start !== 'string') {\n return null;\n }\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 if (typeof end !== 'string') {\n return null;\n }\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.getAttribute('start')} - ${this.getAttribute('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 = undefined, 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.length > 0 && 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 if (schedule[hour.day]) {\n schedule[hour.day].pushObject(hour);\n }\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 = undefined, 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 get isQPayGateway() {\n return this.type === 'qpay' || this.code === 'qpay';\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 = undefined, 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 getTags(params = {}) {\n return this.adapter.get('tags', params);\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, this.adapter);\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 = undefined, 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 images() {\n return this.getAttribute('images') ?? [];\n }\n\n videos() {\n return this.getAttribute('videos') ?? [];\n }\n\n hours() {\n return this.getAttribute('hours') ?? [];\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 = undefined, 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 = undefined, 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 {import('@fleetbase/sdk').Adapter} adapter\n * @return {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 return this.performAuthorizedRequest('customers/register-device', { token, platform }, 'POST');\n }\n\n performAuthorizedRequest(endpoint, params = {}, method = 'GET', options = {}) {\n const requestOptions = {\n ...options,\n headers: {\n ...options.headers,\n 'Customer-Token': this.token,\n },\n };\n\n return this.adapter[method.toLowerCase()](endpoint, params, requestOptions);\n }\n\n async getSavedPlaces() {\n const places = await this.performAuthorizedRequest('customers/places');\n return new Collection(places.map((attributes) => new Place(attributes, this.adapter)));\n }\n\n async getOrderHistory(params = {}) {\n const orders = await this.performAuthorizedRequest('customers/orders', params);\n return new Collection(orders.map((attributes) => new Order(attributes, this.adapter)));\n }\n\n getStripeEphemeralKey(params = {}) {\n return this.performAuthorizedRequest('customers/stripe-ephemeral-key', params, 'POST');\n }\n\n getStripeSetupIntent(params = {}) {\n return this.performAuthorizedRequest('customers/stripe-setup-intent', params, 'POST');\n }\n\n startAccountClosure(params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/account-closure', params, 'POST', options);\n }\n\n confirmAccountClosure(code, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/confirm-account-closure', { code, ...params }, 'POST', options);\n }\n\n requestPhoneVerification(phone, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/request-phone-verification', { phone, ...params }, 'POST', options);\n }\n\n verifyPhoneNumber(code, phone, params = {}, options = {}) {\n return this.performAuthorizedRequest('customers/verify-phone-number', { code, phone, ...params }, 'POST', options);\n }\n\n updateContactAlias(attributes = {}, options = {}) {\n return this.performAuthorizedRequest(`contacts/${this.id}`, attributes, 'PUT', options).then((response) => {\n this.syncAttributes(response);\n return this;\n });\n }\n}\n\nregister('resource', 'Customer', Customer);\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 = undefined, 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 return this.contents().reduce((subtotal, cartItem) => subtotal + Number(cartItem?.subtotal || 0), 0);\n }\n\n contents() {\n const items = this.getAttribute('items', []);\n return isArray(items) ? items : [];\n }\n\n hasProduct(productId) {\n return this.contents().findIndex((cartItem) => cartItem.product_id === productId) !== -1;\n }\n\n get isEmpty() {\n return this.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 = undefined, 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 = undefined, 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 || (attributes && typeof attributes.get === 'function' && typeof attributes.post === 'function')) {\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 {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 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 }\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 { Order as FleetbaseOrder, register } from '@fleetbase/sdk';\n\nexport default class Order extends FleetbaseOrder {\n constructor(attributes = {}, adapter = undefined, options = {}) {\n super(attributes, adapter, options);\n }\n}\n\nregister('resource', 'Order', Order);\n","import Resource from '../resource.js';\nimport Order from './order.js';\nimport { 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, this.adapter));\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 getStatus: function (checkout, token, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.get(`${this.namespace}/status`, { checkout, token }, options);\n },\n\n captureQPay: function (checkout, params = {}, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.post(`${this.namespace}/capture-qpay`, { checkout, ...params }, options);\n },\n\n captureQPayCallback: function (checkout, params = {}, options = {}) {\n if (isResource(checkout)) {\n checkout = checkout.id;\n }\n\n return this.adapter.get(`${this.namespace}/capture-qpay`, { checkout, ...params }, options);\n },\n});\n\nexport default class Checkout extends Resource {\n constructor(attributes = {}, adapter = undefined, 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 createStripeSetupIntent() {\n return this.store.createStripeSetupIntent(...arguments);\n }\n\n updateStripePaymentIntent() {\n return this.store.updateStripePaymentIntent(...arguments);\n }\n\n getStatus() {\n return this.store.getStatus(...arguments);\n }\n\n captureQPay() {\n return this.store.captureQPay(...arguments);\n }\n\n captureQPayCallback() {\n return this.store.captureQPayCallback(...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 = undefined, options = {}) {\n super(attributes, adapter, 'food-truck', options);\n }\n}\n\nregister('resource', 'FoodTruck', FoodTruck);\n","import { StoreActions, isResource } from '@fleetbase/sdk';\n\nfunction idFor(value) {\n return isResource(value) ? value.id : value;\n}\n\nexport const orderActions = new StoreActions({\n create: undefined,\n update: undefined,\n findAll: undefined,\n query: undefined,\n queryRecord: undefined,\n\n completePickup: function (order, params = {}, options = {}) {\n return this.adapter.put(`${this.namespace}/picked-up`, { order: idFor(order), ...params }, options);\n },\n\n getReceipt: function (order, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/receipt`, { order: idFor(order), ...params }, options);\n },\n});\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, Order } 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 { orderActions } from './resources/order-actions.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 this.orders = new StorefrontStore('order', this.adapter).extendActions(orderActions);\n\n return this;\n }\n\n /**\n * Loads information about this storefront.\n *\n * @param {{ resource?: boolean }} options\n * @returns {Promise | Store | Network>}\n */\n about(options = {}) {\n return this.adapter.get('about').then((attributes) => (options.resource ? this.hydrateOwner(attributes) : attributes));\n }\n\n /** @returns {Promise} Loads the storefront owner as a typed resource. */\n getOwner() {\n return this.about({ resource: true });\n }\n\n /**\n * Looks up a specific store or network by public ID.\n *\n * @param {string} id\n * @param {{ resource?: boolean }} options\n * @returns {Promise | Store | Network>}\n */\n lookup(id, options = {}) {\n return this.adapter.get(`lookup/${id}`).then((attributes) => (options.resource ? this.hydrateOwner(attributes) : attributes));\n }\n\n /**\n * @param {string} id\n * @returns {Promise}\n */\n lookupResource(id) {\n return this.lookup(id, { resource: true });\n }\n\n /**\n * Searches products in the current store or network.\n *\n * @param {string} query\n * @param {Record} options\n * @returns {Promise>}\n */\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, Order, lookup };\n"],"names":["Store","isArray","Resource","Order","FleetbaseOrder"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"storefront.js","sources":["../../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":[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","isArray","Resource","Order","FleetbaseOrder"],"mappings":"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"} \ No newline at end of file diff --git a/docs/api-contract.md b/docs/api-contract.md new file mode 100644 index 0000000..21fc062 --- /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 externalizes `@fleetbase/sdk` to preserve class identity. The CommonJS build temporarily bundles it because upstream advertises `dist/cjs/fleetbase.js` from a `type: module` package; a clean consumer cannot reliably execute that target. The packed CommonJS fixture prevents removing this compatibility boundary before upstream publishes a genuine `.cjs` entry. diff --git a/eslint.config.js b/eslint.config.js index da1e29f..2da09e8 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -1,5 +1,22 @@ import globals from 'globals'; import pluginJs from '@eslint/js'; +import tseslint from 'typescript-eslint'; /** @type {import('eslint').Linter.Config[]} */ -export default [{ languageOptions: { globals: { ...globals.browser, ...globals.node } } }, pluginJs.configs.recommended]; +export default tseslint.config( + { languageOptions: { globals: { ...globals.browser, ...globals.node } } }, + pluginJs.configs.recommended, + ...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 eb743f2..7fd473b 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ "test:coverage": "vitest run --coverage", "test:browser": "node scripts/verify-browser-bundle.mjs", "test:watch": "vitest", - "typecheck": "tsc --noEmit", + "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", "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", @@ -104,13 +104,16 @@ "@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", "@vitest/coverage-v8": "^4.0.0", "eslint": "^10.0.0", "globals": "^17.0.0", "prettier": "^3.9.0", "publint": "^0.3.15", "rollup": "^4.63.0", + "tslib": "^2.8.1", "typescript": "^5.9.0", + "typescript-eslint": "^8.68.0", "vitest": "^4.0.0" }, "pnpm": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 77e04cc..c323376 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -41,6 +41,9 @@ importers: '@rollup/plugin-terser': 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) '@vitest/coverage-v8': specifier: ^4.0.0 version: 4.1.11(vitest@4.1.11) @@ -59,9 +62,15 @@ importers: rollup: 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) vitest: specifier: ^4.0.0 version: 4.1.11(@vitest/coverage-v8@4.1.11)(vite@8.2.2(terser@5.37.0)) @@ -418,6 +427,19 @@ packages: rollup: optional: true + '@rollup/plugin-typescript@12.3.0': + resolution: { integrity: sha512-7DP0/p7y3t67+NabT9f8oTBFE6gGkto4SA6Np2oudYmZE/m1dt8RB0SjL1msMxFpLo631qjRCcBlAbq1ml/Big== } + engines: { node: '>=14.0.0' } + peerDependencies: + 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== } engines: { node: '>=14.0.0' } @@ -583,6 +605,65 @@ packages: '@types/resolve@1.20.2': resolution: { integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== } + '@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' + + '@typescript-eslint/parser@8.68.0': + resolution: { integrity: sha512-fHq2VC1kpyYfvEcbiMjOpySY4WS7voEp89yAThrHRX5sm9j2lzYppCb2umFMEed4fWcyeLjHxrz0mpjNBaBxMQ== } + 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' + + '@typescript-eslint/project-service@8.68.0': + resolution: { integrity: sha512-5GQtWZCXFcFYux955pvoS02WLc49pXNlvIxocKjS0clvwo3in1RdlzVKyiqQH9vE5AKWFLTaUgeQkOrTS+0Qxw== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + 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 } + + '@typescript-eslint/tsconfig-utils@8.68.0': + resolution: { integrity: sha512-F7zrGQfiJHojPwi8vhxZQC1tWtJzvL74cK/nqri2lk8YUXvYaYwl263xOJ69jDWPUk1hmcdoayFwk9lX09npVw== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@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' + + '@typescript-eslint/types@8.68.0': + resolution: { integrity: sha512-9RnpsGJjrAllCMefGVVsImJM24YurhC0Q1h4UbvivtvOqXmR/vEJge2OoE++z9m6hyg8T1Q8t5SNT6tHSbrxcg== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + '@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' + + '@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' + + '@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 } + '@vitest/coverage-v8@4.1.11': resolution: { integrity: sha512-8MVGEFnJIcdGjcbfKmeq8z0pZHH0JlVtoVZH9Q/qwUp6wyFnEJUBMrw9DCaj+ra3vShGmhavjalMIhPNxZAUcw== } peerDependencies: @@ -789,6 +870,15 @@ packages: supports-color: optional: true + debug@4.4.3: + resolution: { integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== } + engines: { node: '>=6.0' } + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + deep-is@0.1.4: resolution: { integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== } @@ -1082,6 +1172,10 @@ packages: resolution: { integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== } engines: { node: '>= 4' } + ignore@7.0.8: + resolution: { integrity: sha512-YYNsSlXBjMk92SKnkwvB5LOVSa6OznlFUGcsvrFgNJbJCd0M1XKeFVRc8ZByeCqz32FivYNHJVooLmdqrmvp/Q== } + engines: { node: '>= 4' } + imurmurhash@0.1.4: resolution: { integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== } engines: { node: '>=0.8.19' } @@ -1610,10 +1704,26 @@ packages: resolution: { integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== } engines: { node: '>=8.0' } + 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== } + type-check@0.4.0: resolution: { integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== } engines: { node: '>= 0.8.0' } + 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' + typescript@5.6.1-rc: resolution: { integrity: sha512-E3b2+1zEFu84jB0YQi9BORDjz9+jGbwwy1Zi3G0LUNw7a7cePUrHMRNy8aPh53nXpkFGVHSxIZo5vKTfYaFiBQ== } engines: { node: '>=14.17' } @@ -2153,11 +2263,20 @@ snapshots: optionalDependencies: rollup: 4.63.1 + '@rollup/plugin-typescript@12.3.0(rollup@4.63.1)(tslib@2.8.1)(typescript@5.9.3)': + dependencies: + '@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.6 + '@types/estree': 1.0.9 estree-walker: 2.0.2 - picomatch: 4.0.2 + picomatch: 4.0.7 optionalDependencies: rollup: 4.63.1 @@ -2259,6 +2378,97 @@ snapshots: '@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: + '@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 + + '@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 + + '@typescript-eslint/project-service@8.68.0(typescript@5.9.3)': + dependencies: + '@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 + + '@typescript-eslint/scope-manager@8.68.0': + dependencies: + '@typescript-eslint/types': 8.68.0 + '@typescript-eslint/visitor-keys': 8.68.0 + + '@typescript-eslint/tsconfig-utils@8.68.0(typescript@5.9.3)': + dependencies: + typescript: 5.9.3 + + '@typescript-eslint/type-utils@8.68.0(eslint@10.9.1)(typescript@5.9.3)': + dependencies: + '@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 + + '@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 + + '@typescript-eslint/utils@8.68.0(eslint@10.9.1)(typescript@5.9.3)': + dependencies: + '@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 + + '@typescript-eslint/visitor-keys@8.68.0': + dependencies: + '@typescript-eslint/types': 8.68.0 + eslint-visitor-keys: 5.0.1 + '@vitest/coverage-v8@4.1.11(vitest@4.1.11)': dependencies: '@bcoe/v8-coverage': 1.0.2 @@ -2468,6 +2678,10 @@ snapshots: dependencies: ms: 2.1.3 + debug@4.4.3: + dependencies: + ms: 2.1.3 + deep-is@0.1.4: {} deepmerge@4.3.1: {} @@ -2588,7 +2802,7 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.9 esutils@2.0.3: {} @@ -2754,6 +2968,8 @@ snapshots: ignore@5.3.2: {} + ignore@7.0.8: {} + imurmurhash@0.1.4: {} is-core-module@2.16.1: @@ -3238,10 +3454,27 @@ snapshots: dependencies: is-number: 7.0.0 + ts-api-utils@2.5.0(typescript@5.9.3): + dependencies: + typescript: 5.9.3 + + tslib@2.8.1: {} + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 + typescript-eslint@8.68.0(eslint@10.9.1)(typescript@5.9.3): + dependencies: + '@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 + typescript@5.6.1-rc: {} typescript@5.9.3: {} diff --git a/rollup.config.js b/rollup.config.js index 375915b..6f1390e 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,9 +1,11 @@ import commonjs from '@rollup/plugin-commonjs'; import { nodeResolve } from '@rollup/plugin-node-resolve'; import terser from '@rollup/plugin-terser'; +import typescript from '@rollup/plugin-typescript'; -const input = 'src/storefront.js'; +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) { @@ -29,7 +31,7 @@ export default [ { ...shared, external: ['@fleetbase/sdk', 'countries-list', 'date-fns'], - plugins: [resolve, commonjs()], + plugins: [resolve, commonjs(), compileTypeScript()], output: { file: 'dist/esm/storefront.js', format: 'esm', @@ -39,7 +41,11 @@ export default [ }, { ...shared, - plugins: [resolve, commonjs(), callableCommonJsDefault], + // @fleetbase/sdk@1.2.13 advertises a `.js` CommonJS target inside a + // `type: module` package. Bundle it until upstream ships a genuine + // `.cjs` entry; externalizing it makes clean CommonJS consumers fail. + external: ['countries-list', 'date-fns'], + plugins: [resolve, commonjs(), compileTypeScript(), callableCommonJsDefault], output: { file: 'dist/cjs/storefront.cjs', format: 'cjs', @@ -50,7 +56,7 @@ export default [ }, { ...shared, - plugins: [resolve, commonjs(), terser()], + plugins: [resolve, commonjs(), compileTypeScript(), terser()], output: { file: 'dist/@storefront.min.js', format: 'umd', 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 bb56166..0000000 --- a/src/customer-store.js +++ /dev/null @@ -1,42 +0,0 @@ -import Store from './store.js'; -import { isPhone } from './utils/index.js'; - -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 68% rename from src/resource.js rename to src/resource.ts index e134def..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 {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 100% rename from src/resources.js rename to src/resources.ts diff --git a/src/resources/cart.js b/src/resources/cart.js deleted file mode 100644 index 2d6e29a..0000000 --- a/src/resources/cart.js +++ /dev/null @@ -1,89 +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 = undefined, 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() { - 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; - } -} - -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 9ff9418..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 = undefined, 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 4772dce..0000000 --- a/src/resources/checkout.js +++ /dev/null @@ -1,118 +0,0 @@ -import Resource from '../resource.js'; -import Order from './order.js'; -import { 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, this.adapter)); - }, - - 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); - }, - - getStatus: function (checkout, token, options = {}) { - if (isResource(checkout)) { - checkout = checkout.id; - } - - return this.adapter.get(`${this.namespace}/status`, { checkout, token }, options); - }, - - captureQPay: function (checkout, params = {}, options = {}) { - if (isResource(checkout)) { - checkout = checkout.id; - } - - return this.adapter.post(`${this.namespace}/capture-qpay`, { checkout, ...params }, options); - }, - - captureQPayCallback: function (checkout, params = {}, options = {}) { - 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 = {}, adapter = undefined, options = {}) { - super(attributes, adapter, 'checkout', { actions: checkoutActions, ...options }); - } - - initialize() { - return this.store.initialize(...arguments); - } - - captureOrder() { - return this.store.captureOrder(...arguments); - } - - createStripeSetupIntent() { - return this.store.createStripeSetupIntent(...arguments); - } - - updateStripePaymentIntent() { - return this.store.updateStripePaymentIntent(...arguments); - } - - getStatus() { - return this.store.getStatus(...arguments); - } - - captureQPay() { - return this.store.captureQPay(...arguments); - } - - captureQPayCallback() { - return this.store.captureQPayCallback(...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 e1c2acb..0000000 --- a/src/resources/customer.js +++ /dev/null @@ -1,142 +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 = undefined, 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() { - return this.getAttribute('token'); - } - - 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, - }, - }; - - return this.adapter[method.toLowerCase()](endpoint, params, requestOptions); - } - - async getSavedPlaces() { - const places = await this.performAuthorizedRequest('customers/places'); - return new Collection(places.map((attributes) => new Place(attributes, this.adapter))); - } - - async getOrderHistory(params = {}) { - const orders = await this.performAuthorizedRequest('customers/orders', params); - return new Collection(orders.map((attributes) => new Order(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; - }); - } -} - -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.ts similarity index 58% rename from src/resources/delivery-service-quote.js rename to src/resources/delivery-service-quote.ts index 01f380f..29d5cde 100644 --- a/src/resources/delivery-service-quote.js +++ b/src/resources/delivery-service-quote.ts @@ -1,16 +1,17 @@ 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 = {}, adapter = undefined, options = {}) { - let finalAttributes = attributes; - let finalAdapter = adapter; + 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; + finalAdapter = attributes as Adapter; } // Call `super()` exactly once with the resolved arguments. @@ -23,7 +24,7 @@ export default class DeliveryServiceQuote extends ServiceQuote { * @param {Adapter} adapter * @return {this} */ - setAdapter(adapter) { + setAdapter(adapter: Adapter) { this.adapter = adapter; this.store = new StorefrontStore(this.resource, adapter, { onAfterFetch: this.syncAttributes.bind(this), @@ -34,33 +35,33 @@ export default class DeliveryServiceQuote extends ServiceQuote { } get formattedAmount() { - const { amount, currency } = this.getAttributes(['amount', 'currency']); + const { amount, currency } = this.getAttributes(['amount', 'currency']) as { amount?: number; currency?: string }; if (isEmpty(amount) || isEmpty(currency)) { return null; } - return formatCurrency(amount / 100, currency); + return formatCurrency((amount as number) / 100, currency as string); } - async fromCart() { - return this.fetchServiceQuotesFromCart(...arguments); + async fromCart(...args: Parameters) { + return this.fetchServiceQuotesFromCart(...args); } - async fetchServiceQuotesFromCart(origin, destination, cart, config = 'storefront', all = false) { - if (origin?.id) { + async fetchServiceQuotesFromCart(origin: ResolvableIdentifier, destination: ResolvableIdentifier, cart: ResolvableIdentifier, config = 'storefront', all = false) { + if (typeof origin === 'object' && origin?.id) { origin = origin.id; } - if (destination?.id) { + if (typeof destination === 'object' && destination?.id) { destination = destination.id; } - if (cart?.id) { + if (typeof cart === 'object' && cart?.id) { cart = cart.id; } - const serviceQuotes = await this.adapter.get('service-quotes/from-cart', { + const serviceQuotes = await this.adapter.get('service-quotes/from-cart', { origin, destination, cart, @@ -69,13 +70,13 @@ export default class DeliveryServiceQuote extends ServiceQuote { }); if (isArray(serviceQuotes)) { - return new Collection(serviceQuotes.map((serviceQuote) => new DeliveryServiceQuote(serviceQuote, this.adapter))); + return new Collection(serviceQuotes.map((serviceQuote: Attributes) => new DeliveryServiceQuote(serviceQuote, this.adapter))); } return new DeliveryServiceQuote(serviceQuotes, this.adapter); } - static async getFromCart(adapter, origin, destination, cart, config = 'storefront', all = false) { + 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); } 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 ad1edca..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 = undefined, 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 ca4cfa4..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 = undefined, 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.js b/src/resources/order-actions.js deleted file mode 100644 index 3d802d0..0000000 --- a/src/resources/order-actions.js +++ /dev/null @@ -1,21 +0,0 @@ -import { StoreActions, isResource } from '@fleetbase/sdk'; - -function idFor(value) { - return isResource(value) ? value.id : value; -} - -export const orderActions = new StoreActions({ - 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); - }, -}); 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.js b/src/resources/order.js deleted file mode 100644 index 8f205a1..0000000 --- a/src/resources/order.js +++ /dev/null @@ -1,9 +0,0 @@ -import { Order as FleetbaseOrder, register } from '@fleetbase/sdk'; - -export default class Order extends FleetbaseOrder { - constructor(attributes = {}, adapter = undefined, options = {}) { - super(attributes, adapter, options); - } -} - -register('resource', 'Order', Order); 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 73% rename from src/resources/payment-gateway.js rename to src/resources/payment-gateway.ts index e19b12b..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 = undefined, 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() { @@ -26,7 +29,7 @@ export default class PaymentGateway extends Resource { return this.type === 'qpay' || this.code === 'qpay'; } - setCheckoutToken(token) { + setCheckoutToken(token: string) { this.token = token; } diff --git a/src/resources/product.js b/src/resources/product.ts similarity index 52% rename from src/resources/product.js rename to src/resources/product.ts index 3cfcddc..ef47ba7 100644 --- a/src/resources/product.js +++ b/src/resources/product.ts @@ -1,36 +1,37 @@ import Resource from '../resource.js'; import Review from './review.js'; import { formatCurrency, isEmpty } from '../utils/index.js'; -import { Collection, register } from '@fleetbase/sdk'; +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 = {}, adapter = undefined, options = {}) { + constructor(attributes: Attributes = {}, adapter?: Adapter, options: Attributes = {}) { super(attributes, adapter, 'product', options); } - variants() { + variants(): unknown { return this.getAttribute('variants'); } - addons() { + addons(): unknown { return this.getAttribute('addon_categories'); } - images() { + images(): unknown[] { return this.getAttribute('images') ?? []; } - videos() { + videos(): unknown[] { return this.getAttribute('videos') ?? []; } - hours() { + hours(): unknown[] { return this.getAttribute('hours') ?? []; } - get isOnSale() { - return this.getAttribute('is_on_sale'); + get isOnSale(): boolean { + return this.getAttribute('is_on_sale') as boolean; } get isNotOnSale() { @@ -38,32 +39,36 @@ export default class Product extends Resource { } get formattedAmount() { - const { price, sale_price, currency } = this.getAttributes(['price', 'sale_price', 'currency']); + 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 / 100, currency); + return formatCurrency((sale_price as number) / 100, currency as string); } if (isEmpty(price) || isEmpty(currency)) { return null; } - return formatCurrency(price / 100, currency); + return formatCurrency((price as number) / 100, currency as string); } - get merchant() { + get merchant(): Store | null { const attributes = this.getAttribute('store'); - return attributes && typeof attributes === 'object' ? new Store(attributes, this.adapter) : null; + return attributes && typeof attributes === 'object' ? new Store(attributes as 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))); + getReviews(): Promise> { + return this.adapter.get('reviews', { store: this.id }).then((reviews) => { + return new Collection(reviews.map((attributes: Attributes) => new Review(attributes, this.adapter))); }); } } diff --git a/src/resources/review.js b/src/resources/review.js deleted file mode 100644 index db7328f..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 = undefined, options = {}) { - super(attributes, adapter, 'review', options); - } - - getMedia() { - return this.getPhotos(); - } - - getPhotos() { - return this.getAttribute('photos') ?? []; - } - - getVideos() { - return this.getMedia().filter((media) => media?.type?.startsWith('video/')); - } -} - -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 77% rename from src/resources/store-hour.js rename to src/resources/store-hour.ts index 9730072..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 = undefined, 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() { @@ -19,7 +20,7 @@ export default class StoreHour extends Resource { const start = this.startDateInstance; const end = this.endDateInstance; - if (!isValid(start) || !isValid(end)) { + if (start === null || end === null || !isValid(start) || !isValid(end)) { return false; } @@ -29,7 +30,7 @@ export default class StoreHour extends Resource { return hours > 23; } - get startDateInstance() { + get startDateInstance(): Date | null { if (!this.hasAttribute('start')) { return null; } @@ -44,7 +45,7 @@ export default class StoreHour extends Resource { return parse(start, format, new Date()); } - get endDateInstance() { + get endDateInstance(): Date | null { if (!this.hasAttribute('end')) { return null; } @@ -60,11 +61,14 @@ export default class StoreHour extends Resource { } get humanReadableHoursRange() { - if (!isValid(this.startDateInstance) || !isValid(this.endDateInstance)) { + 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 68% rename from src/resources/store-location.js rename to src/resources/store-location.ts index 3ef29de..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 = undefined, 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,14 +31,15 @@ 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; } @@ -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,7 @@ export default class StoreLocation extends Resource { for (let i = 0; i < this.hours.length; i++) { const hour = this.hours.objectAt(i); - if (schedule[hour.day]) { + if (hour && schedule[hour.day]) { schedule[hour.day].pushObject(hour); } } diff --git a/src/resources/store.js b/src/resources/store.js deleted file mode 100644 index 02a8621..0000000 --- a/src/resources/store.js +++ /dev/null @@ -1,59 +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 = undefined, 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))); - }); - } - - getTags(params = {}) { - return this.adapter.get('tags', params); - } - - 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, 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 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 15066bb..0000000 --- a/src/storefront.js +++ /dev/null @@ -1,127 +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, 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'; - -/** - * // 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); - 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 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, Order, 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 7f23523..0000000 --- a/src/utils/is-empty.js +++ /dev/null @@ -1,20 +0,0 @@ -export function isEmpty(obj) { - const none = obj === null || obj === undefined; - if (none) { - return none; - } - - const objectType = typeof obj; - - if (typeof obj.size === 'number') { - return !obj.size; - } - - if (typeof obj.length === 'number' && objectType !== 'function') { - return !obj.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.ts similarity index 100% rename from src/utils/is-phone.js rename to src/utils/is-phone.ts diff --git a/tests/actions.test.js b/tests/actions.test.js index 4185a8a..5335bb2 100644 --- a/tests/actions.test.js +++ b/tests/actions.test.js @@ -1,11 +1,48 @@ import { describe, expect, it, vi } from 'vitest'; import { Order as FleetbaseOrder, Place } from '@fleetbase/sdk'; -import Storefront, { Cart, Checkout, Customer, DeliveryServiceQuote, Order, PaymentGateway } from '../src/storefront.js'; +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 }, 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/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 index c895a52..51df30c 100644 --- a/tests/resources.test.js +++ b/tests/resources.test.js @@ -2,9 +2,7 @@ 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 CartStore from '../src/cart-store.js'; -import CustomerStore from '../src/customer-store.js'; -import { Cart, Category, Customer, DeliveryServiceQuote, FoodTruck, Network, Order, PaymentGateway, Product, Review, Store, StoreHour, StoreLocation } from '../src/resources.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', () => { @@ -21,43 +19,6 @@ describe('resource and store contracts', () => { expect(resource.store.adapter).toBe(nextAdapter); }); - it('supports the legacy cart store request surface and explicit unsupported operations', 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 store = new CartStore('cart', adapter); - - expect(await store.add('cart_1', 'product_1', 2, { note: 'hot' }, { timeout: 1 })).toBeInstanceOf(Cart); - expect(await store.update('cart_1', 'item_1', 3)).toBeInstanceOf(Cart); - expect(await store.remove('cart_1', 'item_1')).toBeInstanceOf(Cart); - expect(await store.empty('cart_1')).toBeInstanceOf(Cart); - expect(await store.retrieve('cart_1')).toBeInstanceOf(Cart); - expect(() => store.create()).toThrow('There is no create() method for carts!'); - expect(() => store.findAll()).toThrow('There is no findAll() method for carts!'); - expect(() => store.query()).toThrow('There is no query() method for carts!'); - expect(() => store.queryRecord()).toThrow('There is no queryRecord() method for carts!'); - }); - - it('supports the legacy customer store authentication surface', async () => { - const adapter = new FakeAdapter({ - 'customers/login-with-sms': { challenge: true }, - 'customers/login': { id: 'customer_1' }, - 'customers/verify-sms': { id: 'customer_1' }, - 'customers/customer_1': { id: 'customer_1' }, - }); - const store = new CustomerStore('customer', adapter); - - expect(await store.login('+12025550100')).toEqual({ challenge: true }); - expect(await store.login('person@example.com', 'secret', { device: 'web' })).toBeInstanceOf(Customer); - expect(() => store.login('person@example.com')).toThrow('Login requires password!'); - expect(await store.verifySmsCode('+12025550100', '1234', { device: 'web' })).toBeInstanceOf(Customer); - expect(await store.retrieve('customer_1')).toBeInstanceOf(Customer); - }); - it('implements cart actions, coercion, totals, and empty states', async () => { const adapter = new FakeAdapter({ 'post:carts/cart_1/product_1': { id: 'cart_1', items: [] }, diff --git a/tests/types/consumer.ts b/tests/types/consumer.ts index 6d4f54f..01af3f8 100644 --- a/tests/types/consumer.ts +++ b/tests/types/consumer.ts @@ -6,6 +6,12 @@ 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(); 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/tsconfig.build.json b/tsconfig.build.json index 9af523b..4e9347e 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -6,6 +6,6 @@ "emitDeclarationOnly": true, "outDir": "types" }, - "include": ["src/**/*.js"], + "include": ["src/**/*.ts"], "exclude": ["tests", "types", "dist", "coverage"] } diff --git a/tsconfig.json b/tsconfig.json index 9c1661b..50fd853 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,18 +1,17 @@ { "compilerOptions": { - "allowJs": true, - "checkJs": false, + "allowJs": false, "noEmit": true, - "strict": false, + "strict": true, "module": "NodeNext", "moduleResolution": "NodeNext", "target": "ES2022", "lib": ["ES2022", "DOM"], - "skipLibCheck": true, + "skipLibCheck": false, "baseUrl": ".", "paths": { "@fleetbase/sdk": ["types-internal/fleetbase-sdk.d.ts"] } }, - "include": ["src/**/*.js", "types/**/*.d.ts", "types-internal/**/*.d.ts", "tests/types/**/*.ts", "tests/types/**/*.cts"] + "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 index 6671a51..4b1b76b 100644 --- a/types-internal/fleetbase-sdk.d.ts +++ b/types-internal/fleetbase-sdk.d.ts @@ -1,28 +1,36 @@ 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; - delete(endpoint: string, params?: unknown, options?: unknown): Promise; + 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 { + 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 { + export class Store { constructor(resource: string, adapter: Adapter, options?: Record); resource: string; adapter: Adapter; namespace: string; options: Record; - afterFetch(json: unknown): any; - findRecord(id: string, options?: Record): Promise; + 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 { @@ -30,28 +38,34 @@ declare module '@fleetbase/sdk' { } export class Resource { - constructor(attributes?: Record, adapter?: Adapter, resource?: string, options?: Record); + constructor(attributes?: Record, adapter?: Adapter, resource?: string, options?: Record); adapter: Adapter; - store: Store & Record; + store: Store; resource: string; - options: Record; + options: Record; get id(): string; - getAttribute(attribute: string, defaultValue?: any): any; - getAttributes(attributes: string[]): Record; + getAttribute(attribute: string, defaultValue?: T): T; + getAttributes(attributes: string[]): Record; hasAttribute(attribute: string): boolean; - syncAttributes(attributes: Record): this; - serialize(): Record; - destroy(options?: Record): any; + syncAttributes(attributes: Record): this; + serialize(): Record; + destroy(options?: Record): unknown; } - export class Order extends Resource {} - export class Place extends Resource {} - export class ServiceQuote extends Resource {} + 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 | unknown[]): T | undefined; + 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: any[]): any; + 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 c4d133b..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): Promise; - add(id: any, productId: any, quantity?: number, data?: {}, options?: {}): Promise; - update(id: any, cartItemId: any, quantity: any, data?: {}, options?: {}): Promise; - remove(id: any, cartItemId: any, options?: {}): Promise; - empty(id: any, options?: {}): Promise; - retrieve(id?: string): Promise; - create(): void; - findAll(): void; - query(): void; - queryRecord(): void; -} -import Store from './store.js'; diff --git a/types/customer-store.d.ts b/types/customer-store.d.ts deleted file mode 100644 index e299fe8..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): Promise; - login(identity: any, password?: any, attributes?: {}): Promise; - verifySmsCode(phone: any, code: any, attributes?: {}): Promise; - retrieve(id: any): Promise; -} -import Store from './store.js'; diff --git a/types/fleetbase-sdk.d.ts b/types/fleetbase-sdk.d.ts index 6671a51..4b1b76b 100644 --- a/types/fleetbase-sdk.d.ts +++ b/types/fleetbase-sdk.d.ts @@ -1,28 +1,36 @@ 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; - delete(endpoint: string, params?: unknown, options?: unknown): Promise; + 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 { + 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 { + export class Store { constructor(resource: string, adapter: Adapter, options?: Record); resource: string; adapter: Adapter; namespace: string; options: Record; - afterFetch(json: unknown): any; - findRecord(id: string, options?: Record): Promise; + 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 { @@ -30,28 +38,34 @@ declare module '@fleetbase/sdk' { } export class Resource { - constructor(attributes?: Record, adapter?: Adapter, resource?: string, options?: Record); + constructor(attributes?: Record, adapter?: Adapter, resource?: string, options?: Record); adapter: Adapter; - store: Store & Record; + store: Store; resource: string; - options: Record; + options: Record; get id(): string; - getAttribute(attribute: string, defaultValue?: any): any; - getAttributes(attributes: string[]): Record; + getAttribute(attribute: string, defaultValue?: T): T; + getAttributes(attributes: string[]): Record; hasAttribute(attribute: string): boolean; - syncAttributes(attributes: Record): this; - serialize(): Record; - destroy(options?: Record): any; + syncAttributes(attributes: Record): this; + serialize(): Record; + destroy(options?: Record): unknown; } - export class Order extends Resource {} - export class Place extends Resource {} - export class ServiceQuote extends Resource {} + 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 | unknown[]): T | undefined; + 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: any[]): any; + export function lookup(type: string, className: string, ...args: unknown[]): T; export function register(type: string, className: string, value: unknown): void; } diff --git a/types/resource.d.ts b/types/resource.d.ts index 19a8051..828d871 100644 --- a/types/resource.d.ts +++ b/types/resource.d.ts @@ -1,10 +1,12 @@ +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: import('@fleetbase/sdk').Adapter): this; + setAdapter(adapter: Adapter): this; } -import { Resource } from '@fleetbase/sdk'; diff --git a/types/resources/cart.d.ts b/types/resources/cart.d.ts index 891f696..e2accf6 100644 --- a/types/resources/cart.d.ts +++ b/types/resources/cart.d.ts @@ -1,17 +1,19 @@ -export const cartActions: StoreActions; +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?: {}): any; - remove(cartItemId: any, options?: {}): any; - empty(options?: {}): any; - delete(): any; - refresh(): any; - subtotal(): any; - contents(): any[]; - hasProduct(productId: any): boolean; + 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(): Attributes[]; + hasProduct(productId: string): boolean; get isEmpty(): boolean; get isNotEmpty(): boolean; } -import { StoreActions } from '@fleetbase/sdk'; -import Resource from '../resource.js'; diff --git a/types/resources/category.d.ts b/types/resources/category.d.ts index c85df44..b8aeb24 100644 --- a/types/resources/category.d.ts +++ b/types/resources/category.d.ts @@ -1,6 +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(): Promise>; + constructor(attributes?: Attributes, adapter?: Adapter, options?: Attributes); + getProducts(): Promise>; } -import Resource from '../resource.js'; -import { Collection } from '@fleetbase/sdk'; diff --git a/types/resources/checkout.d.ts b/types/resources/checkout.d.ts index 3ad69dd..f735756 100644 --- a/types/resources/checkout.d.ts +++ b/types/resources/checkout.d.ts @@ -1,13 +1,29 @@ -export const checkoutActions: StoreActions; +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; - createStripeSetupIntent(...args: any[]): any; - updateStripePaymentIntent(...args: any[]): any; - getStatus(...args: any[]): any; - captureQPay(...args: any[]): any; - captureQPayCallback(...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 { StoreActions } from '@fleetbase/sdk'; -import Resource from '../resource.js'; diff --git a/types/resources/customer.d.ts b/types/resources/customer.d.ts index 3aaf9e7..26ad2e9 100644 --- a/types/resources/customer.d.ts +++ b/types/resources/customer.d.ts @@ -1,26 +1,26 @@ -export const customerActions: StoreActions; +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?: {}); + 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: import('@fleetbase/sdk').Adapter): this; - get token(): any; - syncDevice(token: any, platform: any): Promise; - performAuthorizedRequest(endpoint: any, params?: {}, method?: string, options?: {}): any; - getSavedPlaces(): Promise>; - getOrderHistory(params?: {}): Promise>; - getStripeEphemeralKey(params?: {}): any; - getStripeSetupIntent(params?: {}): any; - startAccountClosure(params?: {}, options?: {}): any; - confirmAccountClosure(code: any, params?: {}, options?: {}): any; - requestPhoneVerification(phone: any, params?: {}, options?: {}): any; - verifyPhoneNumber(code: any, phone: any, params?: {}, options?: {}): any; - updateContactAlias(attributes?: {}, options?: {}): any; + 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 { StoreActions } from '@fleetbase/sdk'; -import Resource from '../resource.js'; -import { Collection } from '@fleetbase/sdk'; diff --git a/types/resources/delivery-service-quote.d.ts b/types/resources/delivery-service-quote.d.ts index 9e7931c..956cb8e 100644 --- a/types/resources/delivery-service-quote.d.ts +++ b/types/resources/delivery-service-quote.d.ts @@ -1,6 +1,7 @@ +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 * @@ -8,10 +9,21 @@ export default class DeliveryServiceQuote extends ServiceQuote { * @return {this} */ setAdapter(adapter: Adapter): this; - get formattedAmount(): string; - fromCart(...args: any[]): Promise>; - fetchServiceQuotesFromCart(origin: any, destination: any, cart: any, config?: string, all?: boolean): Promise>; + 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 index d70f333..54ca7b9 100644 --- a/types/resources/food-truck.d.ts +++ b/types/resources/food-truck.d.ts @@ -1,4 +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?: {}, adapter?: any, options?: {}); + constructor(attributes?: Attributes, adapter?: Adapter, options?: Attributes); } -import Resource from '../resource.js'; diff --git a/types/resources/network.d.ts b/types/resources/network.d.ts index 77678a1..23a55cf 100644 --- a/types/resources/network.d.ts +++ b/types/resources/network.d.ts @@ -1,15 +1,21 @@ -export default class Network extends Resource { - constructor(attributes?: {}, adapter?: any, options?: {}); - getTags(params?: {}): Promise; - getResourceCollection(endpoint: any, ResourceClass: any, params?: {}): Promise>; - getStores(params?: {}): Promise>; - getStoreLocations(params?: {}): Promise>; - getCategories(params?: {}): Promise>; - search(query: any, params?: {}): Promise>; - lookupStore(id: any): Promise; - getReviews(storeId: any, params?: {}): Promise>; - getPaymentGateways(params?: {}): Promise>; -} import Resource from '../resource.js'; -import { Collection } from '@fleetbase/sdk'; +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?: 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?: Attributes): Promise>; + getPaymentGateways(params?: Attributes): Promise>; +} diff --git a/types/resources/order-actions.d.ts b/types/resources/order-actions.d.ts index f63f813..a910435 100644 --- a/types/resources/order-actions.d.ts +++ b/types/resources/order-actions.d.ts @@ -1,2 +1,2 @@ -export const orderActions: StoreActions; import { StoreActions } from '@fleetbase/sdk'; +export declare const orderActions: StoreActions; diff --git a/types/resources/order.d.ts b/types/resources/order.d.ts index 5de9e93..2fedfa5 100644 --- a/types/resources/order.d.ts +++ b/types/resources/order.d.ts @@ -1,4 +1,5 @@ +import { Adapter, Order as FleetbaseOrder } from '@fleetbase/sdk'; +import type { Attributes } from '../types.js'; export default class Order extends FleetbaseOrder { - constructor(attributes?: {}, adapter?: any, options?: {}); + constructor(attributes?: Attributes, adapter?: Adapter, options?: Attributes); } -import { Order as FleetbaseOrder } from '@fleetbase/sdk'; diff --git a/types/resources/payment-gateway.d.ts b/types/resources/payment-gateway.d.ts index 46930be..1ad1b1d 100644 --- a/types/resources/payment-gateway.d.ts +++ b/types/resources/payment-gateway.d.ts @@ -1,17 +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; get isQPayGateway(): boolean; - setCheckoutToken(token: any): void; - token: any; - getCheckoutToken(): any; + setCheckoutToken(token: string): void; + getCheckoutToken(): string | undefined; findRecord(): void; create(): void; update(): void; destroy(): void; reload(): void; } -import Resource from '../resource.js'; diff --git a/types/resources/product.d.ts b/types/resources/product.d.ts index 897eeda..9d74928 100644 --- a/types/resources/product.d.ts +++ b/types/resources/product.d.ts @@ -1,16 +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; - images(): any; - videos(): any; - hours(): 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 merchant(): Store; - getReviews(): Promise>; + get formattedAmount(): string | null; + get merchant(): Store | null; + getReviews(): Promise>; } -import Resource from '../resource.js'; -import Store from './store.js'; -import { Collection } from '@fleetbase/sdk'; diff --git a/types/resources/review.d.ts b/types/resources/review.d.ts index e6a7117..38d6e34 100644 --- a/types/resources/review.d.ts +++ b/types/resources/review.d.ts @@ -1,9 +1,10 @@ -export const reviewActions: StoreActions; +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(): any; - getPhotos(): any; - getVideos(): any; + constructor(attributes?: Attributes, adapter?: Adapter, options?: Attributes); + getMedia(): Attributes[]; + getPhotos(): Attributes[]; + getVideos(): Attributes[]; } -import { StoreActions } from '@fleetbase/sdk'; -import Resource from '../resource.js'; diff --git a/types/resources/store-hour.d.ts b/types/resources/store-hour.d.ts index 6372aa0..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.js'; diff --git a/types/resources/store-location.d.ts b/types/resources/store-location.d.ts index ef55c2c..6d3f76d 100644 --- a/types/resources/store-location.d.ts +++ b/types/resources/store-location.d.ts @@ -1,20 +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; + 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(): any; + get storeData(): unknown; /** Public store identifier for this location. */ - get storeId(): any; + get storeId(): string | undefined; /** Typed embedded merchant when requested with `with_store`. */ - get merchant(): any; + 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.js'; -import { Collection } from '@fleetbase/sdk'; diff --git a/types/resources/store.d.ts b/types/resources/store.d.ts index 6c776b8..a36b70d 100644 --- a/types/resources/store.d.ts +++ b/types/resources/store.d.ts @@ -1,13 +1,15 @@ -export default class Store extends Resource { - constructor(attributes?: {}, adapter?: any, options?: {}); - getReviews(params?: {}): Promise>; - getTags(params?: {}): Promise; - getLocations(params?: {}): Promise>; - getLocation(id: any): Promise; - getPaymentGateways(params?: {}): Promise>; - getPaymentGateway(id: any): Promise; -} import Resource from '../resource.js'; -import { Collection } from '@fleetbase/sdk'; 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?: 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; +} diff --git a/types/store.d.ts b/types/store.d.ts index 4e708d5..66a158e 100644 --- a/types/store.d.ts +++ b/types/store.d.ts @@ -1,6 +1,8 @@ -export default class StorefrontStore extends Store { - constructor(...args: any[]); - extendActions(actions?: any[]): this; - serialize(json: any): any; +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.ts b/types/storefront.d.ts index 88b72ed..092400d 100644 --- a/types/storefront.d.ts +++ b/types/storefront.d.ts @@ -1,11 +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 * @@ -14,32 +81,15 @@ 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; + constructor(storeKey: string, config?: StorefrontConfig, debug?: boolean); initializeStores(): this; - products: StorefrontStore; - categories: StorefrontStore; - foodTrucks: StorefrontStore; - reviews: StorefrontStore; - customers: StorefrontStore; - cart: StorefrontStore; - checkout: StorefrontStore; - orders: StorefrontStore; /** * Loads information about this storefront. * * @param {{ resource?: boolean }} options - * @returns {Promise | Store | Network>} + * @returns {Promise | Store | Network>} */ - about(options?: { resource?: boolean }): Promise | Store | Network>; + about(options?: { resource?: boolean }): Promise; /** @returns {Promise} Loads the storefront owner as a typed resource. */ getOwner(): Promise; /** @@ -47,14 +97,14 @@ export default class Storefront { * * @param {string} id * @param {{ resource?: boolean }} options - * @returns {Promise | Store | Network>} + * @returns {Promise | Store | Network>} */ lookup( id: string, options?: { resource?: boolean; } - ): Promise | Store | Network>; + ): Promise; /** * @param {string} id * @returns {Promise} @@ -64,29 +114,13 @@ export default class Storefront { * Searches products in the current store or network. * * @param {string} query - * @param {Record} options + * @param {Record} options * @returns {Promise>} */ - search(query: string, options?: Record): Promise>; - hydrateOwner(attributes?: {}): Store | Network; - setAdapter(adapter: any): this; - getAdapter(): any; + 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.js'; -import { Store } from './resources.js'; -import { Network } from './resources.js'; -import { Collection } from '@fleetbase/sdk'; -import { Product } from './resources.js'; -import { Category } from './resources.js'; -import { Customer } from './resources.js'; -import { Cart } from './resources.js'; -import { StoreLocation } from './resources.js'; -import { StoreHour } from './resources.js'; -import { DeliveryServiceQuote } from './resources.js'; -import { Checkout } from './resources.js'; -import { PaymentGateway } from './resources.js'; -import { Review } from './resources.js'; -import { FoodTruck } from './resources.js'; -import { Order } from './resources.js'; -import { lookup } from '@fleetbase/sdk'; 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 index 94d3789..0d27d5f 100644 --- a/types/utils/array.d.ts +++ b/types/utils/array.d.ts @@ -1 +1 @@ -export const isArray: (arg: any) => arg is any[]; +export declare function isArray(value: unknown): value is unknown[]; diff --git a/types/utils/format-currency.d.ts b/types/utils/format-currency.d.ts index b2e8b3a..315c78a 100644 --- a/types/utils/format-currency.d.ts +++ b/types/utils/format-currency.d.ts @@ -1,2 +1,2 @@ -export 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 663f3b4..39ac389 100644 --- a/types/utils/get-countries.d.ts +++ b/types/utils/get-countries.d.ts @@ -1,4 +1,4 @@ -export function getCountries(_country?: any): +export declare function getCountries(_country?: string | number | null): | { iso2: string; alias?: string[]; @@ -26,5 +26,6 @@ export function getCountries(_country?: any): partOf?: string; phone: number[]; userAssigned?: boolean; - }[]; + }[] + | undefined; export default getCountries; diff --git a/types/utils/is-email.d.ts b/types/utils/is-email.d.ts index 8dcae52..f4229bf 100644 --- a/types/utils/is-email.d.ts +++ b/types/utils/is-email.d.ts @@ -1,2 +1,2 @@ -export function isEmail(email?: string): boolean; +export declare function isEmail(email?: string): boolean; export default isEmail; diff --git a/types/utils/is-empty.d.ts b/types/utils/is-empty.d.ts index 7475ca6..0905dbd 100644 --- a/types/utils/is-empty.d.ts +++ b/types/utils/is-empty.d.ts @@ -1,2 +1,2 @@ -export function isEmpty(obj: any): boolean; +export declare function isEmpty(obj: unknown): boolean; export default isEmpty; diff --git a/types/utils/is-key-valid.d.ts b/types/utils/is-key-valid.d.ts index c8542d1..568d675 100644 --- a/types/utils/is-key-valid.d.ts +++ b/types/utils/is-key-valid.d.ts @@ -1,2 +1,2 @@ -export function isKeyValid(key: any): boolean; +export declare function isKeyValid(key: unknown): boolean; export default isKeyValid; diff --git a/types/utils/is-phone.d.ts b/types/utils/is-phone.d.ts index 734f489..1b9fd2c 100644 --- a/types/utils/is-phone.d.ts +++ b/types/utils/is-phone.d.ts @@ -1,2 +1,2 @@ -export function isPhone(phone?: string): boolean; +export declare function isPhone(phone?: string): boolean; export default isPhone; diff --git a/vitest.config.js b/vitest.config.js index eafa43e..d769b86 100644 --- a/vitest.config.js +++ b/vitest.config.js @@ -6,8 +6,8 @@ export default defineConfig({ globals: true, coverage: { provider: 'v8', - include: ['src/**/*.js'], - exclude: ['src/index.js'], + include: ['src/**/*.ts'], + exclude: ['src/index.ts', 'src/types.ts'], thresholds: { statements: 100, branches: 100, From e9c2fa63642b0e81358ea532370fe03a47ef00ab Mon Sep 17 00:00:00 2001 From: "Ronald A. Richardson" Date: Mon, 31 Aug 2026 21:58:07 +0800 Subject: [PATCH 5/8] test: complete ecosystem and release gates --- .github/workflows/ci.yml | 90 +- .github/workflows/live-smoke.yml | 35 + .github/workflows/publish.yml | 39 +- .github/workflows/release-pr.yml | 8 +- .gitignore | 1 + CONTRIBUTING.md | 3 + MODERNIZATION_PLAN.md | 12 +- README.md | 4 +- dist/esm/storefront.js | 114 +- dist/esm/storefront.js.map | 2 +- docs/api-contract.md | 2 +- docs/api-reference.md | 60 + docs/compatibility.md | 2 + docs/releasing.md | 13 +- package.json | 17 +- pnpm-lock.yaml | 2267 +++++++++++++++++++++++- rollup.config.js | 7 +- scripts/live-smoke.mjs | 18 + scripts/verify-framework-consumers.mjs | 131 ++ scripts/verify-package-artifact.mjs | 48 + stryker.config.mjs | 27 + tests/resources.test.js | 12 + tests/storefront.test.js | 1 + tests/utils.test.js | 8 +- vitest.config.js | 1 + 25 files changed, 2799 insertions(+), 123 deletions(-) create mode 100644 .github/workflows/live-smoke.yml create mode 100644 docs/api-reference.md create mode 100644 scripts/live-smoke.mjs create mode 100644 scripts/verify-framework-consumers.mjs create mode 100644 scripts/verify-package-artifact.mjs create mode 100644 stryker.config.mjs diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0818ff5..05a2506 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,11 +22,11 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 20 steps: - - uses: actions/checkout@v6 - - uses: pnpm/action-setup@v4 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + - uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4 with: version: ${{ env.PNPM_VERSION }} - - uses: actions/setup-node@v6 + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: 24 cache: pnpm @@ -37,7 +37,7 @@ jobs: - run: pnpm run test:coverage - name: Upload coverage report if: always() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 with: name: coverage-node-24 path: coverage @@ -60,17 +60,19 @@ jobs: - node: 26 experimental: true steps: - - uses: actions/checkout@v6 - - uses: pnpm/action-setup@v4 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + - uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4 with: version: ${{ env.PNPM_VERSION }} - - uses: actions/setup-node@v6 + - 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: @@ -78,11 +80,11 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 25 steps: - - uses: actions/checkout@v6 - - uses: pnpm/action-setup@v4 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + - uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4 with: version: ${{ env.PNPM_VERSION }} - - uses: actions/setup-node@v6 + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: 24 cache: pnpm @@ -94,7 +96,8 @@ jobs: run: | mkdir -p artifacts pnpm pack --pack-destination artifacts - - uses: actions/upload-artifact@v4 + pnpm run package:artifact artifacts/*.tgz + - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 with: name: npm-package path: artifacts/*.tgz @@ -111,12 +114,12 @@ jobs: matrix: manager: [npm, pnpm, yarn, bun] steps: - - uses: actions/checkout@v6 - - uses: actions/setup-node@v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: 24 - if: matrix.manager == 'pnpm' - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4 with: version: ${{ env.PNPM_VERSION }} - if: matrix.manager == 'yarn' @@ -126,26 +129,47 @@ jobs: corepack enable corepack prepare yarn@4.9.2 --activate - if: matrix.manager == 'bun' - uses: oven-sh/setup-bun@v2 + uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2 with: bun-version: 1.2.22 - run: npm install --ignore-scripts - - uses: actions/download-artifact@v5 + - uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5 with: name: npm-package path: artifacts - run: node scripts/verify-packed-package.mjs ${{ matrix.manager }} artifacts/*.tgz + framework-compatibility: + name: Framework consumers + needs: package + runs-on: ubuntu-latest + timeout-minutes: 25 + 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 + - uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5 + with: + name: npm-package + path: artifacts + - run: node scripts/verify-framework-consumers.mjs artifacts/*.tgz + security: name: Production dependency audit runs-on: ubuntu-latest timeout-minutes: 10 steps: - - uses: actions/checkout@v6 - - uses: pnpm/action-setup@v4 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + - uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4 with: version: ${{ env.PNPM_VERSION }} - - uses: actions/setup-node@v6 + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: 24 cache: pnpm @@ -158,7 +182,31 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 10 steps: - - uses: actions/checkout@v6 - - uses: actions/dependency-review-action@v4 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + - uses: actions/dependency-review-action@2031cfc080254a8a887f58cffee85186f0e49e48 # v4 with: fail-on-severity: moderate + + 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 index 03def6c..156a03f 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -5,7 +5,7 @@ on: types: [published] permissions: - contents: read + contents: write id-token: write concurrency: @@ -19,13 +19,13 @@ jobs: timeout-minutes: 30 environment: npm-production steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 with: ref: ${{ github.event.release.tag_name }} - - uses: pnpm/action-setup@v4 + - uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4 with: version: 9.15.4 - - uses: actions/setup-node@v6 + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: 24 registry-url: https://registry.npmjs.org @@ -37,4 +37,33 @@ jobs: - run: npm install --global npm@11 - run: pnpm install --frozen-lockfile - run: pnpm run check - - run: npm publish --access public + - 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.event.release.tag_name }} + run: | + version="${RELEASE_TAG#v}" + dist_tag=latest + case "$version" in + *-*) dist_tag=next ;; + esac + npm publish artifacts/*.tgz --access public --tag "$dist_tag" + - name: Verify registry metadata + env: + PACKAGE_VERSION: ${{ github.event.release.tag_name }} + run: | + expected="${PACKAGE_VERSION#v}" + actual="$(npm view @fleetbase/storefront@"$expected" version)" + test "$actual" = "$expected" + - name: Attach package and checksum to the GitHub Release + env: + GH_TOKEN: ${{ github.token }} + run: gh release upload "${{ github.event.release.tag_name }}" artifacts/*.tgz artifacts/SHA256SUMS --clobber diff --git a/.github/workflows/release-pr.yml b/.github/workflows/release-pr.yml index 4b98e3d..d739ff8 100644 --- a/.github/workflows/release-pr.yml +++ b/.github/workflows/release-pr.yml @@ -18,16 +18,16 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 15 steps: - - uses: actions/checkout@v6 - - uses: pnpm/action-setup@v4 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + - uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4 with: version: 9.15.4 - - uses: actions/setup-node@v6 + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: 24 cache: pnpm - run: pnpm install --frozen-lockfile - - uses: changesets/action@v1 + - uses: changesets/action@a45c4d594aa4e2c509dc14a9f2b3b67ba3780d0d # v1 with: version: pnpm run version-packages title: 'chore: release packages' diff --git a/.gitignore b/.gitignore index 1dcefe6..84c3023 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ /.sass-cache /connect.lock /coverage/ +/reports/ /.cache/ /libpeerconnection.log /npm-debug.log* diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 793c22a..deebfda 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -20,8 +20,11 @@ For package changes, build one tarball and test the artifact rather than importi 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 Changeset and migration documentation. diff --git a/MODERNIZATION_PLAN.md b/MODERNIZATION_PLAN.md index 9e9b3cc..f4e043f 100644 --- a/MODERNIZATION_PLAN.md +++ b/MODERNIZATION_PLAN.md @@ -1,11 +1,21 @@ # Storefront JavaScript SDK modernization and release plan -Status: proposed for review +Status: implementation complete on PR #12; prerelease acceptance and protected publication remain post-merge release gates Audit baseline: `main` at `dbc6456` (`v1.1.14`) on 2026-08-31 Proposed release: `v1.2.0` if every compatibility gate passes; otherwise `v2.0.0` +## 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, Changesets release PR automation, npm trusted-publishing workflow, 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. + +Review and merge do not themselves publish `v1.2.0`. The owner-only release gates remain: configure the documented GitHub environments and npm trusted publisher, record Storefront Web/App and marketplace acceptance against a prerelease, approve the protected production environment, and verify npm provenance and attached checksums after the first publish. + ## 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`. diff --git a/README.md b/README.md index a9bffa1..cfd03ee 100644 --- a/README.md +++ b/README.md @@ -183,9 +183,9 @@ pnpm install --frozen-lockfile pnpm run check ``` -`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 packed tarball through npm, pnpm, Yarn, and Bun. +`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. -See [CONTRIBUTING.md](CONTRIBUTING.md) for the development workflow, [SECURITY.md](SECURITY.md) for vulnerability reporting, [docs/api-contract.md](docs/api-contract.md) for the audited endpoint mapping, and [docs/releasing.md](docs/releasing.md) for the release process. Existing consumers upgrading from v1.1 can use the [v1.2 migration guide](docs/migration-v1.2.md). +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). ## License diff --git a/dist/esm/storefront.js b/dist/esm/storefront.js index 720d02b..e072401 100644 --- a/dist/esm/storefront.js +++ b/dist/esm/storefront.js @@ -1,17 +1,17 @@ -import { Store as Store$1, extendStoreActions, lookup, classify, register, Resource, StoreActions, Collection, Place, Order as Order$1, ServiceQuote, Adapter, isResource, detectAdapter } from '@fleetbase/sdk'; -export { lookup } from '@fleetbase/sdk'; import 'countries-list'; import { isValid, parse, format } from 'date-fns'; -class StorefrontStore extends Store$1 { +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 extendStoreActions(this, actions); + return yt(this, actions); } serialize(json) { - return lookup('resource', classify(this.resource), json, this.adapter); + return W('resource', z(this.resource), json, this.adapter); } } @@ -50,7 +50,7 @@ function isArray$1(value) { return Array.isArray(value); } -class StorefrontResource extends Resource { +class StorefrontResource extends kt { /** * Set a new adapter to the resource instance, this will update the Store instance * @@ -66,9 +66,9 @@ class StorefrontResource extends Resource { return this; } } -register('resource', 'StorefrontResource', StorefrontResource); +q('resource', 'StorefrontResource', StorefrontResource); -const reviewActions = new StoreActions({ +const reviewActions = new mt({ count: function (storeId, options = {}) { const params = {}; if (storeId) { @@ -91,7 +91,7 @@ class Review extends StorefrontResource { return this.getMedia().filter((media) => typeof media?.type === 'string' && media.type.startsWith('video/')); } } -register('resource', 'Review', Review); +q('resource', 'Review', Review); class StoreHour extends StorefrontResource { constructor(attributes = {}, adapter, options = {}) { @@ -171,7 +171,7 @@ class StoreHour extends StorefrontResource { throw new Error('There is no reload() method store location!'); } } -register('resource', 'StoreHour', StoreHour); +q('resource', 'StoreHour', StoreHour); class StoreLocation extends StorefrontResource { constructor(attributes = {}, adapter, options = {}) { @@ -185,7 +185,7 @@ class StoreLocation extends StorefrontResource { } get hours() { const hours = this.getAttribute('hours', []); - return new Collection((hours || []).map((attributes) => new StoreHour(attributes, this.adapter))); + return new at((hours || []).map((attributes) => new StoreHour(attributes, this.adapter))); } /** Raw embedded merchant payload, normalized across API response versions. */ get storeData() { @@ -201,7 +201,7 @@ class StoreLocation extends StorefrontResource { } /** Typed embedded merchant when requested with `with_store`. */ get merchant() { - return this.storeData ? lookup('resource', 'Store', this.storeData, this.adapter) : null; + return this.storeData ? W('resource', 'Store', this.storeData, this.adapter) : null; } get isAlwaysOpen() { return this.hours.length > 0 && this.hours.every((hour) => hour?.is24Hours); @@ -215,7 +215,7 @@ class StoreLocation extends StorefrontResource { const week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']; for (let i = 0; i < week.length; i++) { const day = week[i]; - schedule[day] = new Collection(); + schedule[day] = new at(); } for (let i = 0; i < this.hours.length; i++) { const hour = this.hours.objectAt(i); @@ -238,7 +238,7 @@ class StoreLocation extends StorefrontResource { throw new Error('There is no destroy() method store location!'); } } -register('resource', 'StoreLocation', StoreLocation); +q('resource', 'StoreLocation', StoreLocation); class PaymentGateway extends StorefrontResource { token; @@ -287,7 +287,7 @@ class PaymentGateway extends StorefrontResource { throw new Error('There is no reload() method for payment gateways!'); } } -register('resource', 'PaymentGateway', PaymentGateway); +q('resource', 'PaymentGateway', PaymentGateway); class Store extends StorefrontResource { constructor(attributes = {}, adapter, options = {}) { @@ -295,7 +295,7 @@ class Store extends StorefrontResource { } getReviews(params = {}) { return this.adapter.get('reviews', { store: this.id, ...params }).then((reviews) => { - return new Collection(reviews.map((attributes) => new Review(attributes, this.adapter))); + return new at(reviews.map((attributes) => new Review(attributes, this.adapter))); }); } getTags(params = {}) { @@ -303,9 +303,9 @@ class Store extends StorefrontResource { } getLocations(params = {}) { return this.adapter.get('locations', { store: this.id, ...params }).then((storeLocations) => { - return new Collection(storeLocations.map((attributes) => { + return new at(storeLocations.map((attributes) => { if (attributes.place) { - attributes.place = new Place(attributes.place, this.adapter); + attributes.place = new St(attributes.place, this.adapter); } return new StoreLocation(attributes, this.adapter); })); @@ -318,7 +318,7 @@ class Store extends StorefrontResource { } getPaymentGateways(params = {}) { return this.adapter.get('gateways', params).then((gateways) => { - return new Collection(gateways.map((attributes) => { + return new at(gateways.map((attributes) => { return new PaymentGateway(attributes, this.adapter); })); }); @@ -329,7 +329,7 @@ class Store extends StorefrontResource { }); } } -register('resource', 'Store', Store); +q('resource', 'Store', Store); class Product extends StorefrontResource { constructor(attributes = {}, adapter, options = {}) { @@ -375,11 +375,11 @@ class Product extends StorefrontResource { } getReviews() { return this.adapter.get('reviews', { store: this.id }).then((reviews) => { - return new Collection(reviews.map((attributes) => new Review(attributes, this.adapter))); + return new at(reviews.map((attributes) => new Review(attributes, this.adapter))); }); } } -register('resource', 'Product', Product); +q('resource', 'Product', Product); class Category extends StorefrontResource { constructor(attributes = {}, adapter, options = {}) { @@ -387,13 +387,13 @@ class Category extends StorefrontResource { } getProducts() { return this.adapter.get('products', { category: this.id }).then((products) => { - return new Collection(products.map((attributes) => new Product(attributes, this.adapter))); + return new at(products.map((attributes) => new Product(attributes, this.adapter))); }); } } -register('resource', 'Category', Category); +q('resource', 'Category', Category); -const customerActions = new StoreActions({ +const customerActions = new mt({ // const { error } = await storefront.customers.login('+1 111-1111'); login: function (identity, password = null, attributes = {}) { // handle phone number authentication @@ -474,11 +474,11 @@ class Customer extends StorefrontResource { } async getSavedPlaces() { const places = await this.performAuthorizedRequest('customers/places'); - return new Collection(places.map((attributes) => new Place(attributes, this.adapter))); + return new at(places.map((attributes) => new St(attributes, this.adapter))); } async getOrderHistory(params = {}) { const orders = await this.performAuthorizedRequest('customers/orders', params); - return new Collection(orders.map((attributes) => new Order$1(attributes, this.adapter))); + return new at(orders.map((attributes) => new xt(attributes, this.adapter))); } getStripeEphemeralKey(params = {}) { return this.performAuthorizedRequest('customers/stripe-ephemeral-key', params, 'POST'); @@ -505,10 +505,10 @@ class Customer extends StorefrontResource { }); } } -register('resource', 'Customer', Customer); +q('resource', 'Customer', Customer); const { isArray } = Array; -const cartActions = new StoreActions({ +const cartActions = new mt({ create: undefined, findAll: undefined, query: undefined, @@ -572,7 +572,7 @@ class Cart extends StorefrontResource { return !this.isEmpty; } } -register('resource', 'Cart', Cart); +q('resource', 'Cart', Cart); class Network extends StorefrontResource { constructor(attributes = {}, adapter, options = {}) { @@ -583,7 +583,7 @@ class Network extends StorefrontResource { } async getResourceCollection(endpoint, ResourceClass, params = {}) { const resources = await this.adapter.get(endpoint, params); - return new Collection(resources.map((attributes) => new ResourceClass(attributes, this.adapter))); + return new at(resources.map((attributes) => new ResourceClass(attributes, this.adapter))); } async getStores(params = {}) { return this.getResourceCollection('stores', Store, params); @@ -608,14 +608,14 @@ class Network extends StorefrontResource { return this.getResourceCollection('gateways', PaymentGateway, params); } } -register('resource', 'Network', Network); +q('resource', 'Network', Network); -class DeliveryServiceQuote extends ServiceQuote { +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 Adapter || (attributes && typeof attributes.get === 'function' && typeof attributes.post === 'function')) { + if (attributes instanceof Mt || (attributes && typeof attributes.get === 'function' && typeof attributes.post === 'function')) { finalAttributes = {}; finalAdapter = attributes; } @@ -664,7 +664,7 @@ class DeliveryServiceQuote extends ServiceQuote { all, }); if (isArray$1(serviceQuotes)) { - return new Collection(serviceQuotes.map((serviceQuote) => new DeliveryServiceQuote(serviceQuote, this.adapter))); + return new at(serviceQuotes.map((serviceQuote) => new DeliveryServiceQuote(serviceQuote, this.adapter))); } return new DeliveryServiceQuote(serviceQuotes, this.adapter); } @@ -673,31 +673,31 @@ class DeliveryServiceQuote extends ServiceQuote { return quote.fetchServiceQuotesFromCart(origin, destination, cart, config, all); } } -register('resource', 'DeliveryServiceQuote', DeliveryServiceQuote); +q('resource', 'DeliveryServiceQuote', DeliveryServiceQuote); -class Order extends Order$1 { +class Order extends xt { constructor(attributes = {}, adapter, options = {}) { super(attributes, adapter, options); } } -register('resource', 'Order', Order); +q('resource', 'Order', Order); -const checkoutActions = new StoreActions({ +const checkoutActions = new mt({ create: undefined, findAll: undefined, query: undefined, queryRecord: undefined, initialize: function (customer, cart, serviceQuote, gateway, orderOptions = {}, options = {}) { - if (isResource(customer)) { + if (wt(customer)) { customer = customer.id; } - if (isResource(cart)) { + if (wt(cart)) { cart = cart.id; } - if (isResource(serviceQuote)) { + if (wt(serviceQuote)) { serviceQuote = serviceQuote.id; } - if (isResource(gateway)) { + if (wt(gateway)) { gateway = gateway.getAttribute('code'); } return this.adapter.get(`${this.namespace}/before`, { ...orderOptions, customer, cart, serviceQuote, gateway }, options); @@ -706,37 +706,37 @@ const checkoutActions = new StoreActions({ return this.adapter.post(`${this.namespace}/capture`, { token, ...params }, options).then((orderJson) => new Order(orderJson, this.adapter)); }, createStripeSetupIntent: function (customer, params = {}, options = {}) { - if (isResource(customer)) { + 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 (isResource(customer)) { + if (wt(customer)) { customer = customer.id; } - if (isResource(cart)) { + if (wt(cart)) { cart = cart.id; } - if (isResource(serviceQuote)) { + 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 (isResource(checkout)) { + if (wt(checkout)) { checkout = checkout.id; } return this.adapter.get(`${this.namespace}/status`, { checkout, token }, options); }, captureQPay: function (checkout, params = {}, options = {}) { - if (isResource(checkout)) { + if (wt(checkout)) { checkout = checkout.id; } return this.adapter.post(`${this.namespace}/capture-qpay`, { checkout, ...params }, options); }, captureQPayCallback: function (checkout, params = {}, options = {}) { - if (isResource(checkout)) { + if (wt(checkout)) { checkout = checkout.id; } return this.adapter.get(`${this.namespace}/capture-qpay`, { checkout, ...params }, options); @@ -768,19 +768,19 @@ class Checkout extends StorefrontResource { return this.store.captureQPayCallback(checkout, params, options); } } -register('resource', 'Checkout', Checkout); +q('resource', 'Checkout', Checkout); class FoodTruck extends StorefrontResource { constructor(attributes = {}, adapter, options = {}) { super(attributes, adapter, 'food-truck', options); } } -register('resource', 'FoodTruck', FoodTruck); +q('resource', 'FoodTruck', FoodTruck); function idFor(value) { - return isResource(value) ? value.id : value; + return wt(value) ? value.id : value; } -const orderActions = new StoreActions({ +const orderActions = new mt({ create: undefined, update: undefined, findAll: undefined, @@ -831,7 +831,7 @@ class Storefront { if (!isKeyValid(storeKey)) { throw new Error('⚠️ Invalid Storefront key given to Storefront SDK'); } - this.adapter = config.adapter || detectAdapter(this.options); + this.adapter = config.adapter || ht(this.options); this.initializeStores(); } initializeStores() { @@ -884,7 +884,7 @@ class Storefront { */ search(query, options = {}) { return this.adapter.get('search', { query, ...options }).then((products) => { - return new Collection(products.map((product) => new Product(product, this.adapter))); + return new at(products.map((product) => new Product(product, this.adapter))); }); } hydrateOwner(attributes = {}) { @@ -905,5 +905,5 @@ class Storefront { } } -export { Cart, Category, Checkout, Customer, DeliveryServiceQuote, FoodTruck, Network, Order, PaymentGateway, Product, Review, Store, StoreHour, StoreLocation, Storefront as default }; +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 c59d3c2..8f642a8 100644 --- a/dist/esm/storefront.js.map +++ b/dist/esm/storefront.js.map @@ -1 +1 @@ -{"version":3,"file":"storefront.js","sources":["../../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":[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","isArray","Resource","Order","FleetbaseOrder"],"mappings":"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"} \ 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":";;;AAAA,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,cAAc,CAAC,2DAA2D,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,OAAO,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAE,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,KAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAE,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,OAAO,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,aAAY,CAAC,MAAM,IAAI,SAAS,CAAC,8BAA8B,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,IAAI,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,MAAM,EAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC,0DAA0D,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,KAAE,CAAC,CAAC,CAAC,YAAY,CAAC,IAAE,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,OAAO,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC,uIAAuI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,KAAE,CAAC,OAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,GAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,IAAE,CAAC,YAAY,CAAC,IAAE,CAAC,QAAQ,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,OAAO,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC,oDAAoD,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAE,CAAC,YAAY,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,EAAE,EAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,UAAU,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,EAAE,OAAO,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,IAAI,SAAS,CAAC,2IAA2I,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAE,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAK,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,IAAE,CAAC,YAAY,CAAC,IAAE,CAAC,QAAQ,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,GAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,8BAA8B,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,OAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,EAAC,CAAC,KAAI,QAAQ,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,OAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,EAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAE,EAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,OAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,mBAAmB,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,OAAM,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAE,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAE,CAAC,CAAC,KAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,wCAAwC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAM,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,KAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,IAAI,SAAS,CAAC,sIAAsI,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAY,CAAC,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC,OAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAM,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,OAAO,MAAM,EAAE,QAAQ,EAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,OAAO,MAAM,EAAE,CAAC,CAAC,WAAW,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAM,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,EAAE,0CAA0C,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAC,CAAC,GAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAI,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAE,CAAC,CAAC,CAAC,MAAM,KAAI,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAE,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,OAAO,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,OAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAM,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,UAAU,EAAE,OAAO,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC,oDAAoD,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAE,CAAC,QAAQ,CAAC,IAAE,CAAC,YAAY,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,MAAM,EAAE,MAAM,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAI,IAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,+DAA+D,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,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,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAE,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAA4N,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAiH,UAAU,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAA6I,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,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,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAM,GAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,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,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,OAAM,GAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,GAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,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,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,OAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,UAAU,GAAG,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,OAAM,MAAE,CAAyH,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,EAAE,WAAW,EAAE,OAAO,OAAO,EAAE,QAAQ,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,MAAM,EAAE,aAAa,IAAI,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,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,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAQ,UAAU,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,GAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,eAAe,GAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,GAAG,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,CAAC,cAAc,CAAC,6BAA6B,CAAC,6BAA6B,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,IAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,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,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,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,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,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,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,EAAE,KAAC,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,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,OAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,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,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,CAAyI,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,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,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,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,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,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,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,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,KAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,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,QAAQ,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,KAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,KAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,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,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,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,IAAI,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAE,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAC,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAM,UAAU,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,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,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,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,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,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,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,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,IAAI,CAAC,UAAU,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,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,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAI,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAI,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAI,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAI,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAI,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,IAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAI,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAI,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,kBAAkB,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,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,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,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,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,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,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,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,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,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,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,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,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,IAAI,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,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,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,IAAI,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,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,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,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,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,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,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,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,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,KAAK,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,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,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,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,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,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,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,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,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,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,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,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,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,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,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,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,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,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,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,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,OAAM,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,OAAM,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,OAAM,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,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,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,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,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,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,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,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,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,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,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,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,gBAAgB,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,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,CA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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/docs/api-contract.md b/docs/api-contract.md index 21fc062..ede700e 100644 --- a/docs/api-contract.md +++ b/docs/api-contract.md @@ -60,4 +60,4 @@ The SDK deliberately passes the token in each request's options instead of mutat - `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 externalizes `@fleetbase/sdk` to preserve class identity. The CommonJS build temporarily bundles it because upstream advertises `dist/cjs/fleetbase.js` from a `type: module` package; a clean consumer cannot reliably execute that target. The packed CommonJS fixture prevents removing this compatibility boundary before upstream publishes a genuine `.cjs` entry. +- 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 index c309669..d904e88 100644 --- a/docs/compatibility.md +++ b/docs/compatibility.md @@ -11,6 +11,8 @@ | 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. diff --git a/docs/releasing.md b/docs/releasing.md index dc5e160..8d86a2d 100644 --- a/docs/releasing.md +++ b/docs/releasing.md @@ -11,7 +11,8 @@ - environment: `npm-production`; - allowed action: publish. 3. After the first successful trusted publish, disable token-based publishing and revoke the old automation token. -4. Protect `main` with the required CI, supported Node, packed-artifact, compatibility, dependency-review, security, and CodeQL checks. +4. Create a `storefront-smoke` environment with the public, non-production `FLEETBASE_STOREFRONT_PUBLIC_KEY` secret and optional `FLEETBASE_STOREFRONT_HOST` variable. +5. Protect `main` with the required quality, supported Node, packed-artifact, framework/package-manager compatibility, mutation, dependency-review, security, and CodeQL checks. ## Release flow @@ -19,13 +20,19 @@ 2. `release-pr.yml` maintains a version and changelog pull request on `main`. 3. Review and merge the release pull request after the normal CI gates pass. 4. Create and publish a GitHub Release whose tag exactly matches `v`. -5. `publish.yml` checks out that immutable tag, requires tag/version parity, installs without a publish cache, runs the complete verification suite, and publishes through npm OpenID Connect. -6. Verify the npm version, dist-tags, provenance, tarball integrity, and a clean install before announcing the release. +5. `publish.yml` checks out that immutable tag, requires tag/version parity, runs the complete suite, packs once, verifies that tarball, publishes those exact bytes through npm OpenID Connect, verifies registry metadata, and attaches the tarball and SHA-256 checksum to the GitHub Release. +6. Verify the npm dist-tags, provenance, attached checksum, and clean registry installs before announcing the release. ## Prereleases Use Changesets prerelease mode and publish release candidates under the npm `next` dist-tag. Validate application consumers against the registry artifact before leaving prerelease mode and publishing the stable version. +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. diff --git a/package.json b/package.json index 7fd473b..cb3be9c 100644 --- a/package.json +++ b/package.json @@ -72,18 +72,21 @@ }, "scripts": { "build": "pnpm run build:types && pnpm run bundle", - "lint": "eslint src tests vitest.config.js rollup.config.js", + "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": "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", @@ -93,7 +96,6 @@ "prepack": "pnpm run build" }, "dependencies": { - "@fleetbase/sdk": "^1.2.13", "countries-list": "^3.4.1", "date-fns": "^4.4.0" }, @@ -105,16 +107,25 @@ "@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", - "vitest": "^4.0.0" + "vite": "8.2.2", + "vitest": "^4.0.0", + "webpack": "5.110.2", + "webpack-cli": "7.2.3" }, "pnpm": { "overrides": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c323376..aa82105 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,9 +13,6 @@ overrides: importers: .: dependencies: - '@fleetbase/sdk': - specifier: ^1.2.13 - version: 1.2.13 countries-list: specifier: ^3.4.1 version: 3.4.1 @@ -32,6 +29,9 @@ importers: '@eslint/js': 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: ^29.0.3 version: 29.0.3(rollup@4.63.1) @@ -44,6 +44,12 @@ importers: '@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) @@ -53,12 +59,21 @@ importers: globals: 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.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.63.0 version: 4.63.1 @@ -71,9 +86,18 @@ importers: 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.37.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: '@andrewbranch/untar.js@1.0.4': @@ -88,27 +112,212 @@ packages: resolution: { integrity: sha512-9ytjzGwxjm9Uz7I9avfbt5vlQt6uk9uRRESzJjqrznl6WKvI6dwYTo+vJ3U02Wrq/mR3iql/PzhvHhKdJIAjDQ== } engines: { node: '>=20' } + '@babel/code-frame@8.0.0': + resolution: { integrity: sha512-dYYg153EyN2Ekbqw2zAsbd6/JR+9N2SEoC7YV2GyyqMM7x9bLDTjBD6XBhSMLH0wtIVyJj03jWNriQhaN+eoCw== } + engines: { node: ^22.18.0 || >=24.11.0 } + + '@babel/compat-data@8.0.0': + resolution: { integrity: sha512-DOjnob/cXOUgDOozCDeq/aK2p5y8dUIVdf6tNhEV1HQRd6I8aQ4f4fbtHRVEvb6lP3BGomrKHiS8ICAASSVQSw== } + engines: { node: ^22.18.0 || >=24.11.0 } + + '@babel/core@8.0.1': + resolution: { integrity: sha512-5FgxM4dLQpMJHSiVATk8foW263dVHQHBVpXYiimNECVWG01f4nFyEbQixeT6Mwvg7TayREJ2gpKl3o2RoMdnqw== } + engines: { node: ^22.18.0 || >=24.11.0 } + + '@babel/generator@8.0.0': + resolution: { integrity: sha512-NT9NrVwJsbSV6Y2FSstWa71EETOnzrjkL5/wX3D2mYHtKM+qvqB1DvR4D0Setb/gDBsHzRICifwEWMO8CnTF6g== } + engines: { node: ^22.18.0 || >=24.11.0 } + + '@babel/helper-annotate-as-pure@8.0.0': + resolution: { integrity: sha512-NSpMkMsvvZqzThJ0p1B02cbtA2ObEyfBvq950bmNkyxsxvcxwhvvCB036rKhlEnuBBo30bOrk13u3FzlKSoRrw== } + engines: { node: ^22.18.0 || >=24.11.0 } + + '@babel/helper-compilation-targets@8.0.0': + resolution: { integrity: sha512-JwculLABZvyPvyLBpwU/E/IbH2uM3mnxNtIJpxnIfb24y1PrdVxK5Dqjle4DpgqpGRnwgC7G8IkzPdSXZrO1Ew== } + engines: { node: ^22.18.0 || >=24.11.0 } + + '@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': ^8.0.0 + + '@babel/helper-globals@8.0.0': + resolution: { integrity: sha512-lLozHOM6sWWlxNo8CYqHy4MBZeTvHXNgVPBfPOGsjPKUzHC2Az9QwB6gxdQmpwHl6GlQtbGgS+lj5887guDiLw== } + engines: { node: ^22.18.0 || >=24.11.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-imports@8.0.0': + resolution: { integrity: sha512-NZ7mSS93o4ndX4KrbD7W8Sf3QT8Qe24PrnFyUcuOPDzK6faqDFKjY9RG7he7+I7FdiQ4llpnosFqzrXa+Vy3Ew== } + engines: { node: ^22.18.0 || >=24.11.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-optimise-call-expression@8.0.0': + resolution: { integrity: sha512-3W6satvtPuCUkUx63S2jMoW9EQNYkADgs1HTfufmL7gCmAulHMKupA/12WNz4A0GMMFn/YnWWwqOT9IZrJHQjg== } + engines: { node: ^22.18.0 || >=24.11.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': ^8.0.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': ^8.0.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.29.7': resolution: { integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw== } 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-identifier@7.29.7': resolution: { integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg== } 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/helper-validator-option@8.0.0': + resolution: { integrity: sha512-U4Dybxh4WESWHt5XhBeExi4DrY0/DNK1aHpQbsrQXCUbFHuMweT0TpLEWKvaraV2Y6fS+ZXunsZ8zIuZIgvF2Q== } + engines: { node: ^22.18.0 || >=24.11.0 } + + '@babel/helpers@8.0.0': + resolution: { integrity: sha512-wfbi91pM3py96oIiJEz7qIpyXDytgr9zQC1HEWwlGNVRAEmItuU/0a41ZUKu1sJGyhhOIpc4t5vk4PYzt8wpsg== } + engines: { node: ^22.18.0 || >=24.11.0 } + '@babel/parser@7.29.8': resolution: { integrity: sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA== } engines: { node: '>=6.0.0' } hasBin: true + '@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-proposal-decorators@8.0.2': + resolution: { integrity: sha512-+C6O6KKXU7BBq1GNaIkFJxrALUVGRcr+WeWm4OcuRl3h+l/CmNfcTLMrT2Lm3uvGBimBH/8pEBRrXJFLoO67Gg== } + engines: { node: ^22.18.0 || >=24.11.0 } + peerDependencies: + '@babel/core': ^8.0.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': ^8.0.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': ^8.0.0 + + '@babel/plugin-syntax-typescript@8.0.3': + resolution: { integrity: sha512-jmTPwps7oSQSZaV1SxkQ3C12UWyufGysGc5OzDpZzvPAIX4mO7dJT3hoqkWVrSImvkcMiknir1iLN1SNV/CZzg== } + engines: { node: ^22.18.0 || >=24.11.0 } + peerDependencies: + '@babel/core': ^8.0.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': ^8.0.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': ^8.0.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': ^8.0.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': ^8.0.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': ^8.0.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': ^8.0.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': ^8.0.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': ^8.0.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': ^8.0.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': ^8.0.0 + '@babel/runtime@7.28.4': resolution: { integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ== } engines: { node: '>=6.9.0' } + '@babel/template@8.0.0': + resolution: { integrity: sha512-eAD0QW/AlbamBbw0FeGiwasbCVPq5ncW0HNVyLP3B9czqLyh4gvw+5JTSNt6le9+ziAU7mqDZsKTHf3jTb4chQ== } + engines: { node: ^22.18.0 || >=24.11.0 } + + '@babel/traverse@8.0.4': + resolution: { integrity: sha512-bZnmqzGG8UZneG1lLxBoWIH0G6Gr1D846Yu4/3XnY6FhCndMR49u26nTY08u/dAxWmLWF9vGQOuC+84FfIUoeg== } + engines: { node: ^22.18.0 || >=24.11.0 } + '@babel/types@7.29.8': resolution: { integrity: sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg== } engines: { node: '>=6.9.0' } + '@babel/types@8.0.4': + resolution: { integrity: sha512-eY+Yn3dCqTGmyiq2QRU66lA5FL8lqqqvecHt0fF3uHONIa7ToYsaCiWV8lOKqAs0Rb2SjixiKFROngnulPtt2g== } + engines: { node: ^22.18.0 || >=24.11.0 } + '@bcoe/v8-coverage@1.0.2': resolution: { integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA== } engines: { node: '>=18' } @@ -175,6 +384,13 @@ packages: resolution: { integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== } engines: { node: '>=0.1.90' } + '@discoveryjs/json-ext@1.1.0': + resolution: { integrity: sha512-Xc3VhU02wqZ1HvHRJUwL09HkZSTvidqY5Ya0NXBSYOxAp+Ln9dcJr9fySI+CkONzP3PekQo9WdzCv0PGER/mOA== } + engines: { node: '>=14.17.0' } + + '@emnapi/runtime@1.11.3': + resolution: { integrity: sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA== } + '@eslint-community/eslint-utils@4.10.1': resolution: { integrity: sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg== } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } @@ -237,6 +453,201 @@ packages: resolution: { integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ== } engines: { node: '>=18.18' } + '@img/colour@1.1.0': + resolution: { integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ== } + engines: { node: '>=18' } + + '@img/sharp-darwin-arm64@0.35.4': + resolution: { integrity: sha512-Uhfl4V4lhP2nbUVF9+hyH1+luj86f1gUFeo8ALYxFoULoU+G87D43BfeMP8XHsk9boxAnCY/bf2EHwhA7MuGsA== } + engines: { node: '>=20.9.0' } + cpu: [arm64] + os: [darwin] + + '@img/sharp-darwin-x64@0.35.4': + resolution: { integrity: sha512-hWniXY3bG5qKpkKrAwPe4y+VTPmf086YQAnkxWh7uA1YrlRouWGa0M0Mxj3ZjnXFkv7/TD1bTy9lGUK26vRvWw== } + engines: { node: '>=20.9.0' } + cpu: [x64] + os: [darwin] + + '@img/sharp-freebsd-wasm32@0.35.4': + resolution: { integrity: sha512-lIsKw/BU+kjB4eZjxrYrZmwOJYi3Ajrv66iAlBmUPyKc3HpnloevB1g3wxGD9P/5BbQ1brBGl65VRRrCvQDEqA== } + engines: { node: '>=20.9.0' } + os: [freebsd] + + '@img/sharp-libvips-darwin-arm64@1.3.3': + resolution: { integrity: sha512-suTBPTDGrI9WodccaDdwZItTSaBYASlBk1NSfElSHrUfzu3szG6lvIF58+WiFvnfzuK8ZBFS5zE00PxqxnRiPg== } + cpu: [arm64] + os: [darwin] + + '@img/sharp-libvips-darwin-x64@1.3.3': + resolution: { integrity: sha512-FVJZ5mITMobmXIz/hPDTw0EintTW5H3WfrxwLqEqjiIihlu+hVRyGrFQ60xl0Lxn7Bt3zdpevPaQi0HEzqz9fw== } + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-linux-arm64@1.3.3': + resolution: { integrity: sha512-0DaL0A6Xu6sQSQFwe4iVCrKWU2cCTItnRsYsCdxAMm9NF6twAA9BKnoqy4hqz4+azQ0JHuA26qiUKsf1XJ/v5A== } + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linux-arm@1.3.3': + resolution: { integrity: sha512-3rbU4vqXXc3hY/OiXdl52xZvT0F1yEngWfvqudtPJg/KkyiaQw2DRsFrNzpmLvfavbwOq3qXn36GP8obHRULQA== } + cpu: [arm] + os: [linux] + + '@img/sharp-libvips-linux-ppc64@1.3.3': + resolution: { integrity: sha512-cdn1OvUBwsXhbC0zSzJnNzf5MZ/mTrobawDvNXBTxe8VtqKAm0sRuEY2Evzovb/w9JMk4TvRxqt1mekSuJz64w== } + cpu: [ppc64] + os: [linux] + + '@img/sharp-libvips-linux-riscv64@1.3.3': + resolution: { integrity: sha512-HjPVx7yKz+0lqdhDlTw1tt90wamBoxhiXpvl1XZpJLiHH4RCJ5yDTqH+VlYPv2fwFs89JFw4c1IexYOcQUi4IQ== } + cpu: [riscv64] + os: [linux] + + '@img/sharp-libvips-linux-s390x@1.3.3': + resolution: { integrity: sha512-neWLh+3yCNThxnfy3c4BbVBeGgt9aftno+XbT56iK28RgeDs3UOFWviLWlUu0bArYVYJaFDK+RRohbicUNCm8Q== } + cpu: [s390x] + os: [linux] + + '@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: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/confirm@6.3.0': + resolution: { integrity: sha512-pZHXJImFtERmSNMBHcjwuz8Ck5vEFEYNUZnwbb8aJpjHv/TwGuFErNxF2Hp8+V+pNJs2EYPMlyWscvFEqO9jOQ== } + engines: { node: '>=23.5.0 || ^22.13.0 || ^20.17.0' } + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/core@12.0.1': + resolution: { integrity: sha512-JMD5Jy/ScL5TZE18m83Nw25HjqGFLoWXwnEkW7IdwwAhZpB9Bus55/WU7zn3UqR1MOCjjTQOIYpiD4vjWA3LPw== } + engines: { node: '>=23.5.0 || ^22.13.0 || ^20.17.0' } + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/editor@5.3.1': + resolution: { integrity: sha512-y43COoyVUjPWIobn2Qep/uI1drPS78aaZZZ9kVi94Tyu/GuW2N8d8Q4rifJXGAXCEAXCPTTMjD8gC1HyvM5ukA== } + engines: { node: '>=23.5.0 || ^22.13.0 || ^20.17.0' } + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/expand@5.1.3': + resolution: { integrity: sha512-3NQJiXNJ/aj9wiAsr7pECdp5Qe9J0X9YUJCKsaFXS+ddOxfL6J4AIl3w3T4Gq3kK0WsQY5GMoDokK5X94m6lHw== } + engines: { node: '>=23.5.0 || ^22.13.0 || ^20.17.0' } + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/external-editor@1.0.3': resolution: { integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA== } engines: { node: '>=18' } @@ -246,6 +657,94 @@ packages: '@types/node': optional: true + '@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: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@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: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/number@4.2.1': + resolution: { integrity: sha512-5KaqwZNLRpUuWcoCrYghPP9TMaXL5v2Sk4xqePM7RCVegcJStoXdWibio60YIC1bec+z1fCyb67N6XPJIkZtGA== } + engines: { node: '>=23.5.0 || ^22.13.0 || ^20.17.0' } + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@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: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/prompts@8.7.0': + resolution: { integrity: sha512-yQwBMYvpJ6jqrXtKiOwRD5XezjJoyt3VQvIyjsr5Arqb519nfIohOQymWVJ8/vEgg8xtZerrCsqlSaqt/LPC9A== } + engines: { node: '>=23.5.0 || ^22.13.0 || ^20.17.0' } + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/rawlist@5.3.3': + resolution: { integrity: sha512-Mu7WrtmDLaXBDEyrRLS70SZgX9ZSm4Up1w0ZxiH8C1OOp9oaVCn2k8q3QGgmlnhsKYUhuaU3zFWhAP6wxkVIMA== } + engines: { node: '>=23.5.0 || ^22.13.0 || ^20.17.0' } + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/search@4.3.1': + resolution: { integrity: sha512-0VWOvsHWI0rPj6CG70MoP4oXNCB6adcyN8bVFZXnh11eLDdPIK2f2XCmva78acPPDfJisfab7qNakwBh7hdBXw== } + engines: { node: '>=23.5.0 || ^22.13.0 || ^20.17.0' } + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/select@5.2.3': + resolution: { integrity: sha512-KuRTodDa6xBXX2noIpjuitpX/QT7Sfav7dIZ/OfUY54Hxg95nrGoshSzxx6Ey7qqLbImKdiGkSDt7KjPXjQgmA== } + engines: { node: '>=23.5.0 || ^22.13.0 || ^20.17.0' } + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@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: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@jridgewell/gen-mapping@0.3.13': + resolution: { integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== } + '@jridgewell/gen-mapping@0.3.8': resolution: { integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA== } engines: { node: '>=6.0.0' } @@ -288,6 +787,57 @@ packages: cpu: [x64] os: [linux] + '@next/env@16.3.3': + resolution: { integrity: sha512-U2eYQRwXj+dsqxV79zFqExDdatnNY/ZWc2nsJU1p/OgT7fd3dXwlF6OjYaFQCfMoeTA19PWq+wVmYgimVA+V+g== } + + '@next/swc-darwin-arm64@16.3.3': + resolution: { integrity: sha512-8Hiv32QJPwdV6KYJ8meR9SBA061tQqnIKTJDocvOXlEQqib0xMFpzArosuffFUUc0sslbh7QQ8a3Yey1QV8EIw== } + engines: { node: '>= 10' } + cpu: [arm64] + os: [darwin] + + '@next/swc-darwin-x64@16.3.3': + resolution: { integrity: sha512-A1lgKgwVchRYmSe467zdwhxT9040dd8lH+o65sL5Jet8fjB4kegw/rDyPIpYVRb6jAqwXFOJpjIXJLxQKLiE3A== } + engines: { node: '>= 10' } + cpu: [x64] + os: [darwin] + + '@next/swc-linux-arm64-gnu@16.3.3': + resolution: { integrity: sha512-bf0FIssMFueU2dm7vQEWWxk0c8UjKTdW0yzuh0sQsD8pf1+KCLDdaqhYZNMYGmXwEOiHAUzgBKudovIlcvvBjg== } + engines: { node: '>= 10' } + cpu: [arm64] + os: [linux] + + '@next/swc-linux-arm64-musl@16.3.3': + resolution: { integrity: sha512-W7viwCk9JY/cAkdz/A273rd5bb3RgT/IHwR7Upv90tunjBWNtAAhGhoecHh+teRNRSinuAFmE+l7fwZ4YKkrXg== } + engines: { node: '>= 10' } + cpu: [arm64] + os: [linux] + + '@next/swc-linux-x64-gnu@16.3.3': + resolution: { integrity: sha512-0W46zw1N3ODpI6n0GeivHvvob1pooozgZVqy65k0mh4/7vr+FbY9+WpHzNVXjHipJf/A3FDheBG19H1s5A25rA== } + engines: { node: '>= 10' } + cpu: [x64] + os: [linux] + + '@next/swc-linux-x64-musl@16.3.3': + resolution: { integrity: sha512-H4mBso8ZTMBPtdT0PN0pBx2ayTvQuTuvS6qT13d77yVFJXAPCxkyIhLTmdMaGTJs0krQYI/qpzdHijCeihXhbg== } + engines: { node: '>= 10' } + cpu: [x64] + os: [linux] + + '@next/swc-win32-arm64-msvc@16.3.3': + resolution: { integrity: sha512-cTMUJpcEGmeywofCUfhR+rSsoE33+rVPnPEYNTNdLNlsOeEg/vktOsKUSTb28vUGqD2jkm4Zaskcwn7OCI6FQg== } + engines: { node: '>= 10' } + cpu: [arm64] + os: [win32] + + '@next/swc-win32-x64-msvc@16.3.3': + resolution: { integrity: sha512-2VR4cTBzHXaBjnGsuH6GyJjENzQOmHeAh11uY1iUhjm3j5dEUrVJuUj+VL78jaGi/Dik8xS76zEj18BsFhlVZQ== } + engines: { node: '>= 10' } + cpu: [x64] + os: [win32] + '@nodelib/fs.scandir@2.1.5': resolution: { integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== } engines: { node: '>= 8' } @@ -574,13 +1124,46 @@ packages: cpu: [x64] os: [win32] + '@sec-ant/readable-stream@0.4.1': + resolution: { integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg== } + '@sindresorhus/is@4.6.0': resolution: { integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== } engines: { node: '>=10' } + '@sindresorhus/merge-streams@4.0.0': + resolution: { integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ== } + engines: { node: '>=18' } + '@standard-schema/spec@1.1.0': resolution: { integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w== } + '@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 + + '@stryker-mutator/instrumenter@10.0.0': + resolution: { integrity: sha512-B7Wmn1KlEWyFeOz6D6oGvQGRfi5Xw3VemG6dEKvFQp4qLvxD9Mf4kcZghfxffgnYwXd3bFgqXsJ+ZGlhdfIOrQ== } + engines: { node: '>=22.0.0' } + + '@stryker-mutator/util@10.0.0': + resolution: { integrity: sha512-LzOpHiJaCp2ABQgnPMlrQQcsK43bd5Vo/2FGL78aN62yDoeRQ+4j3tzeuXxK5OAHdC3fUz6TDoy4IsoAuLAd3w== } + + '@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' + + '@swc/helpers@0.5.23': + resolution: { integrity: sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw== } + '@types/chai@5.2.3': resolution: { integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA== } @@ -596,6 +1179,12 @@ packages: '@types/estree@1.0.9': resolution: { integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg== } + '@types/gensync@1.0.5': + resolution: { integrity: sha512-MbsRCT7mTikHwKZ0X+LVUTLRrZZRLipTuXEO9qOYO+zmjMVk81axyClMROf6uoPD9MRVu46bx8zoR0Ad9q3NAg== } + + '@types/jsesc@2.5.1': + resolution: { integrity: sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw== } + '@types/json-schema@7.0.15': resolution: { integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== } @@ -702,6 +1291,57 @@ packages: '@vitest/utils@4.1.11': resolution: { integrity: sha512-zTCVGpyFsGWBhllOyKlTw/vnr6D9qxsfSDyfbyZmTyjHw5N/VuvzHpHoQjm2ZJzn4RJgx5w4r7V0er69CmLgPQ== } + '@webassemblyjs/ast@1.14.1': + resolution: { integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ== } + + '@webassemblyjs/floating-point-hex-parser@1.13.2': + resolution: { integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA== } + + '@webassemblyjs/helper-api-error@1.13.2': + resolution: { integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ== } + + '@webassemblyjs/helper-buffer@1.14.1': + resolution: { integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA== } + + '@webassemblyjs/helper-numbers@1.13.2': + resolution: { integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA== } + + '@webassemblyjs/helper-wasm-bytecode@1.13.2': + resolution: { integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA== } + + '@webassemblyjs/helper-wasm-section@1.14.1': + resolution: { integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw== } + + '@webassemblyjs/ieee754@1.13.2': + resolution: { integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw== } + + '@webassemblyjs/leb128@1.13.2': + resolution: { integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw== } + + '@webassemblyjs/utf8@1.13.2': + resolution: { integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ== } + + '@webassemblyjs/wasm-edit@1.14.1': + resolution: { integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ== } + + '@webassemblyjs/wasm-gen@1.14.1': + resolution: { integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg== } + + '@webassemblyjs/wasm-opt@1.14.1': + resolution: { integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw== } + + '@webassemblyjs/wasm-parser@1.14.1': + resolution: { integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ== } + + '@webassemblyjs/wast-printer@1.14.1': + resolution: { integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw== } + + '@xtuc/ieee754@1.2.0': + resolution: { integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== } + + '@xtuc/long@4.2.2': + resolution: { integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== } + acorn-jsx@5.3.2: resolution: { integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== } peerDependencies: @@ -721,9 +1361,29 @@ packages: resolution: { integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== } engines: { node: '>= 6.0.0' } + 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-colors@4.1.3: resolution: { integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== } engines: { node: '>=6' } @@ -774,6 +1434,11 @@ packages: 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 + better-path-resolve@1.0.0: resolution: { integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g== } engines: { node: '>=4' } @@ -786,6 +1451,11 @@ packages: resolution: { integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== } engines: { node: '>=8' } + 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== } @@ -793,6 +1463,13 @@ packages: 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' } + + caniuse-lite@1.0.30001810: + resolution: { integrity: sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg== } + chai@6.2.2: resolution: { integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg== } engines: { node: '>=18' } @@ -812,6 +1489,10 @@ packages: 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== } @@ -824,9 +1505,20 @@ packages: 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' } @@ -842,6 +1534,10 @@ packages: 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== } @@ -890,6 +1586,9 @@ packages: resolution: { integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== } engines: { node: '>=0.4.0' } + des.js@1.1.0: + resolution: { integrity: sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg== } + detect-indent@6.1.0: resolution: { integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== } engines: { node: '>=8' } @@ -898,6 +1597,9 @@ packages: resolution: { integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ== } engines: { node: '>=8' } + diff-match-patch@1.0.5: + resolution: { integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw== } + dir-glob@3.0.1: resolution: { integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== } engines: { node: '>=8' } @@ -906,16 +1608,35 @@ packages: resolution: { integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== } engines: { node: '>= 0.4' } + electron-to-chromium@1.5.417: + resolution: { integrity: sha512-4T+DTDWuMPM4aHlHwWdAVCVWwp7LDilnhzkj+c/Lbj91XSQrLuOmZSLtS9Q4iIqjlPUbPOnC624zDVVHCHaolQ== } + + emoji-regex@10.6.0: + resolution: { integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A== } + emoji-regex@8.0.0: resolution: { integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== } emojilib@2.4.0: resolution: { integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw== } + 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' } + enquirer@2.4.1: resolution: { integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== } engines: { node: '>=8.6' } + envinfo@7.21.0: + resolution: { integrity: sha512-Lw7I8Zp5YKHFCXL7+Dz95g4CcbMEpgvqZNNq3AmlT5XAV6CgAAk6gyAMqn2zjw08K9BHfcNuKrMiCPLByGafow== } + engines: { node: '>=4' } + hasBin: true + environment@1.1.0: resolution: { integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q== } engines: { node: '>=18' } @@ -1000,6 +1721,14 @@ packages: 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' } @@ -1020,6 +1749,18 @@ packages: fast-levenshtein@2.0.6: resolution: { integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== } + 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== } + fastq@1.18.0: resolution: { integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw== } @@ -1043,6 +1784,10 @@ packages: 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' } @@ -1063,6 +1808,10 @@ packages: resolution: { integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== } engines: { node: '>=16' } + flat@5.0.2: + resolution: { integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== } + hasBin: true + flatted@3.3.2: resolution: { integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA== } @@ -1095,6 +1844,10 @@ packages: function-bind@1.1.2: resolution: { integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== } + gensync@1.0.0-beta.2: + resolution: { integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== } + engines: { node: '>=6.9.0' } + get-caller-file@2.0.5: resolution: { integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== } engines: { node: 6.* || 8.* || >= 10.* } @@ -1107,6 +1860,10 @@ packages: resolution: { integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== } engines: { node: '>= 0.4' } + get-stream@9.0.1: + resolution: { integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA== } + engines: { node: '>=18' } + glob-parent@5.1.2: resolution: { integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== } engines: { node: '>= 6' } @@ -1164,6 +1921,10 @@ packages: resolution: { integrity: sha512-zPGsiS+dWoTZtZ4AtpA9Y+BdSFSNWvnouNlWNoUFyAM6xHOHmdCvqO3k8AIbdamCOv4gUFUVNPf6rJFfc4UiJw== } hasBin: true + human-signals@8.0.1: + resolution: { integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ== } + engines: { node: '>=18.18.0' } + iconv-lite@0.7.3: resolution: { integrity: sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ== } engines: { node: '>=0.10.0' } @@ -1176,10 +1937,25 @@ packages: 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' } + inherits@2.0.4: + resolution: { integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== } + + 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' } @@ -1203,13 +1979,29 @@ packages: resolution: { integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== } engines: { node: '>=0.12.0' } + 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== } + engines: { node: '>=0.10.0' } + is-reference@1.2.1: resolution: { integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== } + is-stream@4.0.1: + resolution: { integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A== } + engines: { node: '>=18' } + is-subdir@1.2.0: resolution: { integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw== } engines: { node: '>=4' } + is-unicode-supported@2.1.0: + resolution: { integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ== } + engines: { node: '>=18' } + is-windows@1.0.2: resolution: { integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== } engines: { node: '>=0.10.0' } @@ -1217,6 +2009,10 @@ packages: isexe@2.0.0: resolution: { integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== } + isobject@3.0.1: + resolution: { integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== } + engines: { node: '>=0.10.0' } + istanbul-lib-coverage@3.2.2: resolution: { integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== } engines: { node: '>=8' } @@ -1229,6 +2025,13 @@ packages: resolution: { integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA== } engines: { node: '>=8' } + 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== } @@ -1240,21 +2043,41 @@ packages: resolution: { integrity: sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA== } hasBin: true + jsesc@3.1.0: + resolution: { integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== } + engines: { node: '>=6' } + hasBin: true + 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== } + json5@2.2.3: + resolution: { integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== } + engines: { node: '>=6' } + hasBin: true + jsonfile@4.0.0: resolution: { integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== } keyv@4.5.4: resolution: { integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== } + kind-of@6.0.3: + resolution: { integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== } + engines: { node: '>=0.10.0' } + levn@0.4.1: resolution: { integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== } engines: { node: '>= 0.8.0' } @@ -1337,6 +2160,9 @@ packages: resolution: { integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== } engines: { node: '>=10' } + lodash.groupby@4.6.0: + resolution: { integrity: sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw== } + lodash.startcase@4.4.0: resolution: { integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== } @@ -1372,6 +2198,9 @@ packages: resolution: { integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== } engines: { node: '>= 0.4' } + merge-stream@2.0.0: + resolution: { integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== } + merge2@1.4.1: resolution: { integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== } engines: { node: '>= 8' } @@ -1384,14 +2213,64 @@ packages: 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' } + minimalistic-assert@1.0.1: + resolution: { integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== } + minimatch@10.2.6: resolution: { integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A== } engines: { node: 18 || 20 || >=22 } + 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 + mri@1.2.0: resolution: { integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== } engines: { node: '>=4' } @@ -1399,6 +2278,23 @@ packages: 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== } @@ -1410,14 +2306,50 @@ packages: natural-compare@1.4.0: resolution: { integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== } + neo-async@2.6.2: + resolution: { integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== } + + 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 + node-emoji@2.2.0: resolution: { integrity: sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw== } engines: { node: '>=18' } + node-releases@2.0.54: + resolution: { integrity: sha512-YHs7BmmcsdAI5Ozuf8JZo6PT0mv2GIWC9vMfvUC3dp65M8hn7Ux8CPL+2oBI7juNuj9d0ndhTcznq2ODBps9cQ== } + engines: { node: '>=18' } + + npm-run-path@6.0.0: + resolution: { integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA== } + engines: { node: '>=18' } + object-assign@4.1.1: resolution: { integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== } engines: { node: '>=0.10.0' } + object-inspect@1.13.4: + resolution: { integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== } + engines: { node: '>= 0.4' } + obug@2.1.4: resolution: { integrity: sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA== } engines: { node: '>=12.20.0' } @@ -1463,6 +2395,10 @@ packages: package-manager-detector@1.8.0: resolution: { integrity: sha512-yQA4H19AmPEoMUeavPMDIe1higySl/gH/yaQrkT/s07Qp+7pp2hYz30N3z2l5BkjVkF9Ow6o0wjJamm2y7Sn0A== } + parse-ms@4.0.0: + resolution: { integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw== } + engines: { node: '>=18' } + parse5-htmlparser2-tree-adapter@6.0.1: resolution: { integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== } @@ -1480,6 +2416,10 @@ packages: 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== } @@ -1509,6 +2449,14 @@ packages: resolution: { integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== } engines: { node: '>=6' } + pkg-dir@4.2.0: + resolution: { integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== } + engines: { node: '>=8' } + + postcss@8.5.23: + resolution: { integrity: sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg== } + engines: { node: ^10 || ^12 || >=14 } + postcss@8.5.26: resolution: { integrity: sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ== } engines: { node: ^10 || ^12 || >=14 } @@ -1527,6 +2475,14 @@ packages: engines: { node: '>=14' } hasBin: true + pretty-ms@9.3.1: + resolution: { integrity: sha512-HzMy3Geq23nVALD/M2LliU+F+M+gVNsvkQWWqeBZ8HDiCgzo6YPJ/Omrmtq24EFrIsk0a3EkQGEd7bDOo+IhGA== } + engines: { node: '>=18' } + + progress@2.0.3: + resolution: { integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== } + engines: { node: '>=0.4.0' } + proxy-from-env@2.1.0: resolution: { integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA== } engines: { node: '>=10' } @@ -1540,20 +2496,45 @@ packages: resolution: { integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== } engines: { node: '>=6' } + qs@6.15.1: + resolution: { integrity: sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg== } + engines: { node: '>=0.6' } + quansync@0.2.11: resolution: { integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA== } queue-microtask@1.2.3: resolution: { integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== } + react-dom@19.2.8: + resolution: { integrity: sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ== } + peerDependencies: + react: ^19.2.8 + + react@19.2.8: + resolution: { integrity: sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw== } + engines: { node: '>=0.10.0' } + read-yaml-file@1.1.0: resolution: { integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA== } engines: { node: '>=6' } + 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' } + 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' } @@ -1580,6 +2561,9 @@ packages: run-parallel@1.2.0: resolution: { integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== } + rxjs@7.8.2: + resolution: { integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA== } + sade@1.8.1: resolution: { integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== } engines: { node: '>=6' } @@ -1587,6 +2571,13 @@ packages: safer-buffer@2.1.2: resolution: { integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== } + scheduler@0.27.0: + resolution: { integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q== } + + schema-utils@4.3.3: + resolution: { integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA== } + engines: { node: '>= 10.13.0' } + semver@7.8.5: resolution: { integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA== } engines: { node: '>=10' } @@ -1596,6 +2587,19 @@ packages: 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' } @@ -1604,6 +2608,22 @@ packages: resolution: { integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== } engines: { node: '>=8' } + side-channel-list@1.0.1: + resolution: { integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w== } + engines: { node: '>= 0.4' } + + side-channel-map@1.0.1: + resolution: { integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== } + engines: { node: '>= 0.4' } + + side-channel-weakmap@1.0.2: + resolution: { integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== } + engines: { node: '>= 0.4' } + + side-channel@1.1.1: + resolution: { integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ== } + engines: { node: '>= 0.4' } + siginfo@2.0.0: resolution: { integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== } @@ -1633,6 +2653,10 @@ packages: resolution: { integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== } engines: { node: '>=0.10.0' } + source-map@0.7.6: + resolution: { integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ== } + engines: { node: '>= 12' } + spawndamnit@3.0.1: resolution: { integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg== } @@ -1657,10 +2681,31 @@ packages: resolution: { integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== } engines: { node: '>=4' } + strip-final-newline@4.0.0: + resolution: { integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw== } + engines: { node: '>=18' } + + 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== } engines: { node: '>=8' } + supports-color@8.1.1: + resolution: { integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== } + engines: { node: '>=10' } + supports-hyperlinks@3.2.0: resolution: { integrity: sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig== } engines: { node: '>=14.18' } @@ -1669,6 +2714,10 @@ packages: resolution: { integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== } engines: { node: '>= 0.4' } + tapable@2.3.3: + resolution: { integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A== } + engines: { node: '>=6' } + term-size@2.2.1: resolution: { integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== } engines: { node: '>=8' } @@ -1678,6 +2727,11 @@ packages: engines: { node: '>=10' } hasBin: true + 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' } @@ -1704,6 +2758,10 @@ packages: resolution: { integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== } engines: { node: '>=8.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' } @@ -1713,10 +2771,22 @@ packages: tslib@2.8.1: resolution: { integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== } + 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' } + typed-inject@5.0.0: + resolution: { integrity: sha512-0Ql2ORqBORLMdAW89TQKZsb1PQkFGImFfVmncXWe7a+AA3+7dh7Se9exxZowH4kbnlvKEFkMxUYdHUpjYWFJaA== } + engines: { node: '>=18' } + + typed-rest-client@2.3.1: + resolution: { integrity: sha512-k4kX5Up6qA68D0Cby2AK+6+vM5k3qTxe+/3FqhnHRExjY5cfbOnzjQZbP/LXleF8hVoDvDqxlgk9KK83HoBZlQ== } + engines: { node: '>= 16.0.0' } + typescript-eslint@8.68.0: resolution: { integrity: sha512-MHy0Y0ynqeEbx/S45+i/bBssdy3X6KNBfmJAP35GrgtNxu2TQ5K5xsFDhAnmsq1jvpdoZOPG1LGtJo0HWqYCrQ== } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } @@ -1734,14 +2804,27 @@ packages: engines: { node: '>=14.17' } hasBin: true + underscore@1.13.8: + resolution: { integrity: sha512-DXtD3ZtEQzc7M8m4cXotyHR+FAS18C64asBYY5vqZexfYryNNnDc02W4hKg3rdQuqOYas1jkseX0+nZXjTXnvQ== } + unicode-emoji-modifier-base@1.0.0: resolution: { integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g== } engines: { node: '>=4' } + unicorn-magic@0.3.0: + resolution: { integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA== } + engines: { node: '>=18' } + universalify@0.1.2: resolution: { integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== } engines: { node: '>= 4.0.0' } + update-browserslist-db@1.3.2: + resolution: { integrity: sha512-UQ+MSxlhRm1bzjhU+DcuXfjFO1FzNtqhK5+9Yvlp90ItDLk5vT932A0rFu619nf7RVS+Y/VeaUW1jaRDqZ8VJw== } + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + uri-js@4.4.1: resolution: { integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== } @@ -1833,6 +2916,54 @@ packages: jsdom: optional: true + watchpack@2.5.2: + resolution: { integrity: sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg== } + engines: { node: '>=10.13.0' } + + weapon-regex@2.0.4: + resolution: { integrity: sha512-ubuhY5Lo4phWcMsJqe8j62m9uhsuo/VpfK5XsSgYGRGDSt10hwVwOBTriPRd0dac+KYbGNXOrfXjM6xCp2NUKg== } + + 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' } @@ -1843,6 +2974,9 @@ packages: 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' } @@ -1855,6 +2989,11 @@ packages: resolution: { integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== } engines: { node: '>=10' } + 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' } @@ -1867,6 +3006,13 @@ packages: resolution: { integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== } engines: { node: '>=10' } + yoctocolors@2.2.0: + resolution: { integrity: sha512-xYqdZFUK/VYazNl/oCDYN+3WloWQwMfZxBoiNt6qNyk+xfOdi598muWE42rNZFp1kNOiqW936q5RhUdnpqElSg== } + engines: { node: '>=18' } + + zod@4.5.4: + resolution: { integrity: sha512-sC95tT5iHHH9gtpj6A81kh+NEaRAUFN+qlUPDUbRfOMvNf5QCBqsb3WgvnpVtK5Y+4UfA6KqufotuTvMGiTlsA== } + snapshots: '@andrewbranch/untar.js@1.0.4': {} @@ -1891,21 +3037,245 @@ snapshots: 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 + empathic: 2.0.1 + gensync: 1.0.0-beta.2 + import-meta-resolve: 4.2.0 + json5: 2.2.3 + obug: 2.1.4 + semver: 7.8.5 + + '@babel/generator@8.0.0': + dependencies: + '@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@8.0.0': + dependencies: + '@babel/types': 8.0.4 + + '@babel/helper-compilation-targets@8.0.0': + dependencies: + '@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-class-features-plugin@8.0.1(@babel/core@8.0.1)': + dependencies: + '@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-globals@8.0.0': {} + + '@babel/helper-member-expression-to-functions@8.0.0': + dependencies: + '@babel/traverse': 8.0.4 + '@babel/types': 8.0.4 + + '@babel/helper-module-imports@8.0.0': + dependencies: + '@babel/traverse': 8.0.4 + '@babel/types': 8.0.4 + + '@babel/helper-module-transforms@8.0.1(@babel/core@8.0.1)': + dependencies: + '@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@8.0.0': + dependencies: + '@babel/types': 8.0.4 + + '@babel/helper-plugin-utils@8.0.1(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + + '@babel/helper-replace-supers@8.0.1(@babel/core@8.0.1)': + dependencies: + '@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@8.0.0': + dependencies: + '@babel/traverse': 8.0.4 + '@babel/types': 8.0.4 + '@babel/helper-string-parser@7.29.7': {} + '@babel/helper-string-parser@8.0.0': {} + '@babel/helper-validator-identifier@7.29.7': {} + '@babel/helper-validator-identifier@8.0.4': {} + + '@babel/helper-validator-option@8.0.0': {} + + '@babel/helpers@8.0.0': + dependencies: + '@babel/template': 8.0.0 + '@babel/types': 8.0.4 + '@babel/parser@7.29.8': dependencies: '@babel/types': 7.29.8 + '@babel/parser@8.0.4': + dependencies: + '@babel/types': 8.0.4 + + '@babel/plugin-proposal-decorators@8.0.2(@babel/core@8.0.1)': + dependencies: + '@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-syntax-decorators@8.0.1(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 8.0.1(@babel/core@8.0.1) + + '@babel/plugin-syntax-jsx@8.0.1(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 8.0.1(@babel/core@8.0.1) + + '@babel/plugin-syntax-typescript@8.0.3(@babel/core@8.0.1)': + dependencies: + '@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)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 8.0.1(@babel/core@8.0.1) + + '@babel/plugin-transform-explicit-resource-management@8.0.1(@babel/core@8.0.1)': + dependencies: + '@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-transform-modules-commonjs@8.0.1(@babel/core@8.0.1)': + dependencies: + '@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-transform-react-display-name@8.0.1(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 8.0.1(@babel/core@8.0.1) + + '@babel/plugin-transform-react-jsx-development@8.0.1(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/plugin-transform-react-jsx': 8.0.1(@babel/core@8.0.1) + + '@babel/plugin-transform-react-jsx@8.0.1(@babel/core@8.0.1)': + dependencies: + '@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-react-pure-annotations@8.0.1(@babel/core@8.0.1)': + dependencies: + '@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-typescript@8.0.1(@babel/core@8.0.1)': + dependencies: + '@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/preset-react@8.0.1(@babel/core@8.0.1)': + dependencies: + '@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/preset-typescript@8.0.1(@babel/core@8.0.1)': + dependencies: + '@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/runtime@7.28.4': {} + '@babel/template@8.0.0': + dependencies: + '@babel/code-frame': 8.0.0 + '@babel/parser': 8.0.4 + '@babel/types': 8.0.4 + + '@babel/traverse@8.0.4': + dependencies: + '@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/types@7.29.8': dependencies: '@babel/helper-string-parser': 7.29.7 '@babel/helper-validator-identifier': 7.29.7 + '@babel/types@8.0.4': + dependencies: + '@babel/helper-string-parser': 8.0.0 + '@babel/helper-validator-identifier': 8.0.4 + '@bcoe/v8-coverage@1.0.2': {} '@braidai/lang@1.1.2': {} @@ -2056,6 +3426,13 @@ snapshots: '@colors/colors@1.5.0': optional: true + '@discoveryjs/json-ext@1.1.0': {} + + '@emnapi/runtime@1.11.3': + dependencies: + tslib: 2.8.1 + optional: true + '@eslint-community/eslint-utils@4.10.1(eslint@10.9.1)': dependencies: eslint: 10.9.1 @@ -2111,11 +3488,214 @@ snapshots: '@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 + + '@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: + '@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 + + '@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: + '@emnapi/runtime': 1.11.3 + optional: true + + '@img/sharp-webcontainers-wasm32@0.35.4': + dependencies: + '@img/sharp-wasm32': 0.35.4 + optional: true + + '@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: + '@inquirer/ansi': 2.0.7 + '@inquirer/core': 12.0.1 + '@inquirer/figures': 2.0.8 + '@inquirer/type': 4.1.0 + + '@inquirer/confirm@6.3.0': + dependencies: + '@inquirer/core': 12.0.1 + '@inquirer/type': 4.1.0 + + '@inquirer/core@12.0.1': + dependencies: + '@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 + + '@inquirer/editor@5.3.1': + dependencies: + '@inquirer/core': 12.0.1 + '@inquirer/external-editor': 3.0.4 + '@inquirer/type': 4.1.0 + + '@inquirer/expand@5.1.3': + dependencies: + '@inquirer/core': 12.0.1 + '@inquirer/type': 4.1.0 + '@inquirer/external-editor@1.0.3': dependencies: chardet: 2.2.0 iconv-lite: 0.7.3 + '@inquirer/external-editor@3.0.4': + dependencies: + chardet: 2.2.0 + iconv-lite: 0.7.3 + + '@inquirer/figures@2.0.8': {} + + '@inquirer/input@5.1.4': + dependencies: + '@inquirer/core': 12.0.1 + '@inquirer/type': 4.1.0 + + '@inquirer/number@4.2.1': + dependencies: + '@inquirer/core': 12.0.1 + '@inquirer/type': 4.1.0 + + '@inquirer/password@5.2.0': + dependencies: + '@inquirer/ansi': 2.0.7 + '@inquirer/core': 12.0.1 + '@inquirer/type': 4.1.0 + + '@inquirer/prompts@8.7.0': + dependencies: + '@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 + + '@inquirer/rawlist@5.3.3': + dependencies: + '@inquirer/core': 12.0.1 + '@inquirer/type': 4.1.0 + + '@inquirer/search@4.3.1': + dependencies: + '@inquirer/core': 12.0.1 + '@inquirer/figures': 2.0.8 + '@inquirer/type': 4.1.0 + + '@inquirer/select@5.2.3': + dependencies: + '@inquirer/ansi': 2.0.7 + '@inquirer/core': 12.0.1 + '@inquirer/figures': 2.0.8 + '@inquirer/type': 4.1.0 + + '@inquirer/type@4.1.0': {} + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.6.0 + '@jridgewell/trace-mapping': 0.3.31 + '@jridgewell/gen-mapping@0.3.8': dependencies: '@jridgewell/set-array': 1.2.1 @@ -2168,6 +3748,32 @@ snapshots: '@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 + + '@next/swc-win32-x64-msvc@16.3.3': + optional: true + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -2349,15 +3955,89 @@ snapshots: '@rollup/rollup-win32-ia32-msvc@4.63.1': optional: true - '@rollup/rollup-win32-x64-gnu@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: + - '@types/node' - '@rollup/rollup-win32-x64-msvc@4.63.1': - optional: true + '@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 - '@sindresorhus/is@4.6.0': {} + '@stryker-mutator/util@10.0.0': {} - '@standard-schema/spec@1.1.0': {} + '@stryker-mutator/vitest-runner@10.0.0(@stryker-mutator/core@10.0.0)(vitest@4.1.11)': + dependencies: + '@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)) + + '@swc/helpers@0.5.23': + dependencies: + tslib: 2.8.1 '@types/chai@5.2.3': dependencies: @@ -2372,6 +4052,10 @@ snapshots: '@types/estree@1.0.9': {} + '@types/gensync@1.0.5': {} + + '@types/jsesc@2.5.1': {} + '@types/json-schema@7.0.15': {} '@types/node@12.20.55': {} @@ -2481,7 +4165,7 @@ snapshots: 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.37.0)) + vitest: 4.1.11(@vitest/coverage-v8@4.1.11)(vite@8.2.2(terser@5.51.2)(yaml@2.9.0)) '@vitest/expect@4.1.11': dependencies: @@ -2492,13 +4176,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.1 - '@vitest/mocker@4.1.11(vite@8.2.2(terser@5.37.0))': + '@vitest/mocker@4.1.11(vite@8.2.2(terser@5.51.2)(yaml@2.9.0))': dependencies: '@vitest/spy': 4.1.11 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.2.2(terser@5.37.0) + vite: 8.2.2(terser@5.51.2)(yaml@2.9.0) '@vitest/pretty-format@4.1.11': dependencies: @@ -2524,6 +4208,86 @@ snapshots: convert-source-map: 2.0.0 tinyrainbow: 3.1.1 + '@webassemblyjs/ast@1.14.1': + dependencies: + '@webassemblyjs/helper-numbers': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + + '@webassemblyjs/floating-point-hex-parser@1.13.2': {} + + '@webassemblyjs/helper-api-error@1.13.2': {} + + '@webassemblyjs/helper-buffer@1.14.1': {} + + '@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 + + '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} + + '@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 + + '@webassemblyjs/ieee754@1.13.2': + dependencies: + '@xtuc/ieee754': 1.2.0 + + '@webassemblyjs/leb128@1.13.2': + dependencies: + '@xtuc/long': 4.2.2 + + '@webassemblyjs/utf8@1.13.2': {} + + '@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 + + '@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 + + '@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 + + '@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 + + '@webassemblyjs/wast-printer@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@xtuc/long': 4.2.2 + + '@xtuc/ieee754@1.2.0': {} + + '@xtuc/long@4.2.2': {} + acorn-jsx@5.3.2(acorn@8.18.0): dependencies: acorn: 8.18.0 @@ -2534,10 +4298,19 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.4.0 + debug: 4.4.3 transitivePeerDependencies: - supports-color + 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.15.0: dependencies: fast-deep-equal: 3.1.3 @@ -2545,6 +4318,15 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + 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-colors@4.1.3: {} ansi-escapes@7.3.0: @@ -2591,6 +4373,8 @@ snapshots: balanced-match@4.0.4: {} + baseline-browser-mapping@2.11.20: {} + better-path-resolve@1.0.0: dependencies: is-windows: 1.0.2 @@ -2603,6 +4387,14 @@ snapshots: dependencies: fill-range: 7.1.1 + browserslist@4.28.8: + dependencies: + 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.2: @@ -2610,6 +4402,13 @@ snapshots: es-errors: 1.3.0 function-bind: 1.1.2 + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + + caniuse-lite@1.0.30001810: {} + chai@6.2.2: {} chalk@4.1.2: @@ -2623,6 +4422,8 @@ snapshots: chardet@2.2.0: {} + chrome-trace-event@1.0.4: {} + cjs-module-lexer@1.4.3: {} cli-highlight@2.1.11: @@ -2640,12 +4441,22 @@ snapshots: optionalDependencies: '@colors/colors': 1.5.0 + cli-width@4.1.0: {} + + client-only@0.0.1: {} + cliui@7.0.4: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + clone-deep@4.0.1: + dependencies: + is-plain-object: 2.0.4 + kind-of: 6.0.3 + shallow-clone: 3.0.1 + color-convert@2.0.1: dependencies: color-name: 1.1.4 @@ -2658,6 +4469,8 @@ snapshots: commander@10.0.1: {} + commander@14.0.3: {} + commander@2.20.3: {} commondir@1.0.1: {} @@ -2688,10 +4501,17 @@ snapshots: delayed-stream@1.0.0: {} + des.js@1.1.0: + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + detect-indent@6.1.0: {} detect-libc@2.1.2: {} + diff-match-patch@1.0.5: {} + dir-glob@3.0.1: dependencies: path-type: 4.0.0 @@ -2702,15 +4522,28 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 + electron-to-chromium@1.5.417: {} + + emoji-regex@10.6.0: {} + emoji-regex@8.0.0: {} emojilib@2.4.0: {} + empathic@2.0.1: {} + + enhanced-resolve@5.24.5: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.3.3 + enquirer@2.4.1: dependencies: ansi-colors: 4.1.3 strip-ansi: 6.0.1 + envinfo@7.21.0: {} + environment@1.1.0: {} es-define-property@1.0.1: {} @@ -2806,6 +4639,23 @@ snapshots: 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: {} extendable-error@0.1.7: {} @@ -2824,6 +4674,18 @@ snapshots: fast-levenshtein@2.0.6: {} + 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: + fast-string-width: 3.0.2 + fastq@1.18.0: dependencies: reusify: 1.0.4 @@ -2838,6 +4700,10 @@ snapshots: fflate@0.8.3: {} + figures@6.1.0: + dependencies: + is-unicode-supported: 2.1.0 + file-entry-cache@8.0.0: dependencies: flat-cache: 4.0.1 @@ -2861,6 +4727,8 @@ snapshots: flatted: 3.3.2 keyv: 4.5.4 + flat@5.0.2: {} + flatted@3.3.2: {} follow-redirects@1.16.0: {} @@ -2890,6 +4758,8 @@ snapshots: function-bind@1.1.2: {} + gensync@1.0.0-beta.2: {} + get-caller-file@2.0.5: {} get-intrinsic@1.3.0: @@ -2910,6 +4780,11 @@ snapshots: dunder-proto: 1.0.1 es-object-atoms: 1.1.2 + get-stream@9.0.1: + dependencies: + '@sec-ant/readable-stream': 0.4.1 + is-stream: 4.0.1 + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -2956,12 +4831,14 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.4.0 + debug: 4.4.3 transitivePeerDependencies: - supports-color human-id@4.2.1: {} + human-signals@8.0.1: {} + iconv-lite@0.7.3: dependencies: safer-buffer: 2.1.2 @@ -2970,8 +4847,19 @@ snapshots: ignore@7.0.8: {} + import-local@3.2.0: + dependencies: + pkg-dir: 4.2.0 + resolve-cwd: 3.0.0 + + import-meta-resolve@4.2.0: {} + imurmurhash@0.1.4: {} + inherits@2.0.4: {} + + interpret@3.1.1: {} + is-core-module@2.16.1: dependencies: hasown: 2.0.2 @@ -2988,18 +4876,30 @@ snapshots: is-number@7.0.0: {} + is-plain-obj@4.1.0: {} + + is-plain-object@2.0.4: + dependencies: + isobject: 3.0.1 + is-reference@1.2.1: dependencies: '@types/estree': 1.0.6 + is-stream@4.0.1: {} + is-subdir@1.2.0: dependencies: better-path-resolve: 1.0.0 + is-unicode-supported@2.1.0: {} + is-windows@1.0.2: {} isexe@2.0.0: {} + isobject@3.0.1: {} + istanbul-lib-coverage@3.2.2: {} istanbul-lib-report@3.0.1: @@ -3013,6 +4913,14 @@ snapshots: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 + jest-worker@27.5.1: + dependencies: + '@types/node': 12.20.55 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + js-md4@0.3.2: {} + js-tokens@10.0.0: {} js-yaml@3.15.2: @@ -3024,12 +4932,20 @@ snapshots: dependencies: argparse: 2.0.1 + 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: {} + jsonfile@4.0.0: optionalDependencies: graceful-fs: 4.2.11 @@ -3038,6 +4954,8 @@ snapshots: dependencies: json-buffer: 3.0.1 + kind-of@6.0.3: {} + levn@0.4.1: dependencies: prelude-ls: 1.2.1 @@ -3100,6 +5018,8 @@ snapshots: dependencies: p-locate: 5.0.0 + lodash.groupby@4.6.0: {} + lodash.startcase@4.4.0: {} lru-cache@11.5.2: {} @@ -3137,6 +5057,8 @@ snapshots: math-intrinsics@1.1.0: {} + merge-stream@2.0.0: {} + merge2@1.4.1: {} micromatch@4.0.8: @@ -3146,18 +5068,44 @@ snapshots: mime-db@1.52.0: {} + mime-db@1.54.0: {} + mime-types@2.1.35: dependencies: mime-db: 1.52.0 + minimalistic-assert@1.0.1: {} + minimatch@10.2.6: dependencies: brace-expansion: 5.0.9 + minimizer-webpack-plugin@5.8.0(webpack@5.110.2): + dependencies: + '@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) + mri@1.2.0: {} ms@2.1.3: {} + mutation-server-protocol@0.4.1: + dependencies: + zod: 4.5.4 + + mutation-testing-elements@3.8.4: {} + + mutation-testing-metrics@3.8.4: + dependencies: + mutation-testing-report-schema: 3.8.4 + + mutation-testing-report-schema@3.8.4: {} + + mute-stream@3.0.0: {} + mz@2.7.0: dependencies: any-promise: 1.3.0 @@ -3168,6 +5116,33 @@ snapshots: natural-compare@1.4.0: {} + neo-async@2.6.2: {} + + next@16.3.3(@babel/core@8.0.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8): + dependencies: + '@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 + node-emoji@2.2.0: dependencies: '@sindresorhus/is': 4.6.0 @@ -3175,8 +5150,17 @@ snapshots: emojilib: 2.4.0 skin-tone: 2.0.0 + node-releases@2.0.54: {} + + npm-run-path@6.0.0: + dependencies: + 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: @@ -3220,6 +5204,8 @@ snapshots: package-manager-detector@1.8.0: {} + parse-ms@4.0.0: {} + parse5-htmlparser2-tree-adapter@6.0.1: dependencies: parse5: 6.0.1 @@ -3232,6 +5218,8 @@ snapshots: path-key@3.1.1: {} + path-key@4.0.0: {} + path-parse@1.0.7: {} path-type@4.0.0: {} @@ -3248,6 +5236,16 @@ snapshots: pify@4.0.1: {} + pkg-dir@4.2.0: + dependencies: + find-up: 4.1.0 + + postcss@8.5.23: + dependencies: + nanoid: 3.3.18 + picocolors: 1.1.1 + source-map-js: 1.2.1 + postcss@8.5.26: dependencies: nanoid: 3.3.18 @@ -3260,6 +5258,12 @@ snapshots: prettier@3.9.6: {} + pretty-ms@9.3.1: + dependencies: + parse-ms: 4.0.0 + + progress@2.0.3: {} + proxy-from-env@2.1.0: {} publint@0.3.24: @@ -3271,10 +5275,21 @@ snapshots: punycode@2.3.1: {} + qs@6.15.1: + dependencies: + side-channel: 1.1.1 + quansync@0.2.11: {} queue-microtask@1.2.3: {} + react-dom@19.2.8(react@19.2.8): + dependencies: + react: 19.2.8 + scheduler: 0.27.0 + + react@19.2.8: {} + read-yaml-file@1.1.0: dependencies: graceful-fs: 4.2.11 @@ -3282,8 +5297,18 @@ snapshots: pify: 4.0.1 strip-bom: 3.0.0 + rechoir@0.8.0: + dependencies: + resolve: 1.22.10 + require-directory@2.1.1: {} + require-from-string@2.0.2: {} + + resolve-cwd@3.0.0: + dependencies: + resolve-from: 5.0.0 + resolve-from@5.0.0: {} resolve@1.22.10: @@ -3351,22 +5376,100 @@ snapshots: dependencies: queue-microtask: 1.2.3 + rxjs@7.8.2: + dependencies: + tslib: 2.8.1 + sade@1.8.1: dependencies: mri: 1.2.0 safer-buffer@2.1.2: {} + scheduler@0.27.0: {} + + schema-utils@4.3.3: + dependencies: + '@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) + semver@7.8.5: {} 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.1: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + + side-channel@1.1.1: + dependencies: + es-errors: 1.3.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: {} @@ -3388,6 +5491,8 @@ snapshots: source-map@0.6.1: {} + source-map@0.7.6: {} + spawndamnit@3.0.1: dependencies: cross-spawn: 7.0.6 @@ -3411,10 +5516,23 @@ snapshots: strip-bom@3.0.0: {} + strip-final-newline@4.0.0: {} + + 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: has-flag: 4.0.0 + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + supports-hyperlinks@3.2.0: dependencies: has-flag: 4.0.0 @@ -3422,6 +5540,8 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} + tapable@2.3.3: {} + term-size@2.2.1: {} terser@5.37.0: @@ -3431,6 +5551,13 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 + 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 + thenify-all@1.6.0: dependencies: thenify: 3.3.1 @@ -3454,16 +5581,30 @@ snapshots: dependencies: is-number: 7.0.0 + tree-kill@1.2.2: {} + ts-api-utils@2.5.0(typescript@5.9.3): dependencies: typescript: 5.9.3 tslib@2.8.1: {} + tunnel@0.0.6: {} + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 + typed-inject@5.0.0: {} + + typed-rest-client@2.3.1: + dependencies: + des.js: 1.1.0 + js-md4: 0.3.2 + qs: 6.15.1 + tunnel: 0.0.6 + underscore: 1.13.8 + typescript-eslint@8.68.0(eslint@10.9.1)(typescript@5.9.3): dependencies: '@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) @@ -3479,17 +5620,27 @@ snapshots: typescript@5.9.3: {} + underscore@1.13.8: {} + unicode-emoji-modifier-base@1.0.0: {} + unicorn-magic@0.3.0: {} + universalify@0.1.2: {} + update-browserslist-db@1.3.2(browserslist@4.28.8): + dependencies: + browserslist: 4.28.8 + escalade: 3.2.0 + picocolors: 1.1.1 + uri-js@4.4.1: dependencies: punycode: 2.3.1 validate-npm-package-name@5.0.1: {} - vite@8.2.2(terser@5.37.0): + vite@8.2.2(terser@5.51.2)(yaml@2.9.0): dependencies: lightningcss: 1.33.0 picomatch: 4.0.7 @@ -3498,12 +5649,13 @@ snapshots: tinyglobby: 0.2.17 optionalDependencies: fsevents: 2.3.3 - terser: 5.37.0 + terser: 5.51.2 + yaml: 2.9.0 - vitest@4.1.11(@vitest/coverage-v8@4.1.11)(vite@8.2.2(terser@5.37.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.37.0)) + '@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 @@ -3520,13 +5672,79 @@ snapshots: tinyexec: 1.3.0 tinyglobby: 0.2.17 tinyrainbow: 3.1.1 - vite: 8.2.2(terser@5.37.0) + 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: + 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 + + webpack-merge@6.0.1: + dependencies: + clone-deep: 4.0.1 + flat: 5.0.2 + wildcard: 2.0.1 + + webpack-sources@3.5.1: {} + + webpack@5.110.2(webpack-cli@7.2.3): + dependencies: + '@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 @@ -3536,6 +5754,8 @@ snapshots: siginfo: 2.0.0 stackback: 0.0.2 + wildcard@2.0.1: {} + word-wrap@1.2.5: {} wrap-ansi@7.0.0: @@ -3546,6 +5766,9 @@ snapshots: y18n@5.0.8: {} + yaml@2.9.0: + optional: true + yargs-parser@20.2.9: {} yargs@16.2.0: @@ -3559,3 +5782,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 6f1390e..eebfa5f 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -30,7 +30,9 @@ const shared = { export default [ { ...shared, - external: ['@fleetbase/sdk', 'countries-list', 'date-fns'], + // 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', @@ -41,9 +43,6 @@ export default [ }, { ...shared, - // @fleetbase/sdk@1.2.13 advertises a `.js` CommonJS target inside a - // `type: module` package. Bundle it until upstream ships a genuine - // `.cjs` entry; externalizing it makes clean CommonJS consumers fail. external: ['countries-list', 'date-fns'], plugins: [resolve, commonjs(), compileTypeScript(), callableCommonJsDefault], output: { 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-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/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/resources.test.js b/tests/resources.test.js index 51df30c..fb08b62 100644 --- a/tests/resources.test.js +++ b/tests/resources.test.js @@ -151,6 +151,11 @@ describe('resource and store contracts', () => { 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( { @@ -188,6 +193,13 @@ describe('resource and store contracts', () => { 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'); diff --git a/tests/storefront.test.js b/tests/storefront.test.js index 47b39fd..e364b2f 100644 --- a/tests/storefront.test.js +++ b/tests/storefront.test.js @@ -42,6 +42,7 @@ describe('Storefront SDK marketplace contracts', () => { 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 () => { diff --git a/tests/utils.test.js b/tests/utils.test.js index 4d74526..e513b6e 100644 --- a/tests/utils.test.js +++ b/tests/utils.test.js @@ -7,11 +7,17 @@ describe('utility contracts', () => { 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('+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); diff --git a/vitest.config.js b/vitest.config.js index d769b86..035d936 100644 --- a/vitest.config.js +++ b/vitest.config.js @@ -4,6 +4,7 @@ export default defineConfig({ test: { environment: 'node', globals: true, + exclude: ['**/.cache/**', '**/node_modules/**', '**/dist/**'], coverage: { provider: 'v8', include: ['src/**/*.ts'], From ea287e3f3073b777780473499c0b3f65725a08db Mon Sep 17 00:00:00 2001 From: "Ronald A. Richardson" Date: Mon, 31 Aug 2026 22:06:37 +0800 Subject: [PATCH 6/8] fix: patch mutation tooling dependency --- package.json | 3 ++- pnpm-lock.yaml | 10 ++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index cb3be9c..c306a9b 100644 --- a/package.json +++ b/package.json @@ -132,7 +132,8 @@ "@babel/runtime": "7.28.4", "axios": "1.20.0", "follow-redirects": "1.16.0", - "form-data": "4.0.6" + "form-data": "4.0.6", + "qs": "6.16.0" } } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index aa82105..3fc8845 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,6 +9,7 @@ overrides: axios: 1.20.0 follow-redirects: 1.16.0 form-data: 4.0.6 + qs: 6.16.0 importers: .: @@ -2496,8 +2497,8 @@ packages: resolution: { integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== } engines: { node: '>=6' } - qs@6.15.1: - resolution: { integrity: sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg== } + qs@6.16.0: + resolution: { integrity: sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA== } engines: { node: '>=0.6' } quansync@0.2.11: @@ -5275,8 +5276,9 @@ snapshots: punycode@2.3.1: {} - qs@6.15.1: + qs@6.16.0: dependencies: + es-define-property: 1.0.1 side-channel: 1.1.1 quansync@0.2.11: {} @@ -5601,7 +5603,7 @@ snapshots: dependencies: des.js: 1.1.0 js-md4: 0.3.2 - qs: 6.15.1 + qs: 6.16.0 tunnel: 0.0.6 underscore: 1.13.8 From 877cd44db123405689189faca3515dba99b657b1 Mon Sep 17 00:00:00 2001 From: "Ronald A. Richardson" Date: Sat, 26 Sep 2026 13:50:24 +0800 Subject: [PATCH 7/8] chore: prepare v1.2.0 release --- RELEASE.md | 14 +++++++++----- package.json | 2 +- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index d074f44..a0b6f0c 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,13 +1,17 @@ -> 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? diff --git a/package.json b/package.json index 159868a..1c1e95f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@fleetbase/storefront", - "version": "1.1.14", + "version": "1.2.0", "description": "Fleetbase Storefront JS & Node SDK", "license": "AGPL-3.0-or-later", "author": "Ronald A. Richardson (https://ron.dev)", From c02cf343c27c4890d591230355075e222693fce6 Mon Sep 17 00:00:00 2001 From: "Ronald A. Richardson" Date: Sat, 26 Sep 2026 14:10:39 +0800 Subject: [PATCH 8/8] ci: align v1.2 release branch automation --- .changeset/config.json | 11 - .changeset/modernize-storefront-sdk.md | 5 - .github/workflows/ci.yml | 4 +- .github/workflows/publish.yml | 33 +- .github/workflows/release-pr.yml | 36 -- .github/workflows/release.yml | 38 +- .prettierignore | 4 +- CHANGELOG.md | 11 +- CONTRIBUTING.md | 12 +- MODERNIZATION_PLAN.md | 29 +- RELEASE.md | 3 + docs/releasing.md | 28 +- package.json | 4 - pnpm-lock.yaml | 595 +------------------------ 14 files changed, 98 insertions(+), 715 deletions(-) delete mode 100644 .changeset/config.json delete mode 100644 .changeset/modernize-storefront-sdk.md delete mode 100644 .github/workflows/release-pr.yml diff --git a/.changeset/config.json b/.changeset/config.json deleted file mode 100644 index 19f9284..0000000 --- a/.changeset/config.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "$schema": "https://unpkg.com/@changesets/config@3.1.2/schema.json", - "changelog": "@changesets/cli/changelog", - "commit": false, - "fixed": [], - "linked": [], - "access": "public", - "baseBranch": "main", - "updateInternalDependencies": "patch", - "ignore": [] -} diff --git a/.changeset/modernize-storefront-sdk.md b/.changeset/modernize-storefront-sdk.md deleted file mode 100644 index b55a6e9..0000000 --- a/.changeset/modernize-storefront-sdk.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@fleetbase/storefront': minor ---- - -Modernize the Storefront SDK while preserving the existing client and resource APIs. Add current Storefront API helpers, deterministic 100% behavioral coverage, generated TypeScript declarations, genuine CommonJS support, cleaner package contents, and secure release automation. diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 05a2506..a55a789 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,9 +2,9 @@ name: CI on: push: - branches: [main, 'dev-**', 'feature/**'] + branches: [main, 'dev-**', 'feature/**', 'release/**'] pull_request: - branches: [main] + branches: [main, 'release/**'] permissions: contents: read diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 156a03f..5597350 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,8 +1,8 @@ name: Publish on: - release: - types: [published] + push: + tags: ['v*'] permissions: contents: write @@ -21,7 +21,7 @@ jobs: steps: - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 with: - ref: ${{ github.event.release.tag_name }} + ref: ${{ github.ref_name }} - uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4 with: version: 9.15.4 @@ -32,7 +32,7 @@ jobs: package-manager-cache: false - name: Require tag and package version parity env: - RELEASE_TAG: ${{ github.event.release.tag_name }} + 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 @@ -48,22 +48,37 @@ jobs: sha256sum artifacts/*.tgz > artifacts/SHA256SUMS - name: Publish the verified bytes with provenance env: - RELEASE_TAG: ${{ github.event.release.tag_name }} + RELEASE_TAG: ${{ github.ref_name }} run: | version="${RELEASE_TAG#v}" dist_tag=latest case "$version" in *-*) dist_tag=next ;; esac - npm publish artifacts/*.tgz --access public --tag "$dist_tag" + 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.event.release.tag_name }} + PACKAGE_VERSION: ${{ github.ref_name }} run: | expected="${PACKAGE_VERSION#v}" actual="$(npm view @fleetbase/storefront@"$expected" version)" test "$actual" = "$expected" - - name: Attach package and checksum to the GitHub Release + - name: Create the GitHub Release and attach verified artifacts env: GH_TOKEN: ${{ github.token }} - run: gh release upload "${{ github.event.release.tag_name }}" artifacts/*.tgz artifacts/SHA256SUMS --clobber + 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-pr.yml b/.github/workflows/release-pr.yml deleted file mode 100644 index d739ff8..0000000 --- a/.github/workflows/release-pr.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: Release PR - -on: - push: - branches: [main] - -permissions: - contents: write - pull-requests: write - -concurrency: - group: release-pr - cancel-in-progress: false - -jobs: - version: - name: Maintain release PR - runs-on: ubuntu-latest - timeout-minutes: 15 - 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 - - uses: changesets/action@a45c4d594aa4e2c509dc14a9f2b3b67ba3780d0d # v1 - with: - version: pnpm run version-packages - title: 'chore: release packages' - commit: 'chore: release packages' - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 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/.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 index 9793b05..bd8be04 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,15 @@ # Changelog -This file is maintained by Changesets. Each release PR records the user-visible changes included in the next package version. +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 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index deebfda..4d85dd7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -27,17 +27,13 @@ The framework gate builds Vite, webpack, Next.js client/server, and Ember Vite/E ## 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 Changeset and migration documentation. +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. -## Changesets +## Release notes -User-visible changes require a Changeset: +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`. -```sh -pnpm changeset -``` - -Use an empty Changeset only for internal changes that do not affect consumers. Release PRs are generated automatically from Changesets. +Internal-only changes should say explicitly that they do not affect consumers. ## Pull requests diff --git a/MODERNIZATION_PLAN.md b/MODERNIZATION_PLAN.md index f4e043f..df1c2a3 100644 --- a/MODERNIZATION_PLAN.md +++ b/MODERNIZATION_PLAN.md @@ -1,20 +1,20 @@ # Storefront JavaScript SDK modernization and release plan -Status: implementation complete on PR #12; prerelease acceptance and protected publication remain post-merge release gates +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 -Proposed release: `v1.2.0` if every compatibility gate passes; otherwise `v2.0.0` +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, Changesets release PR automation, npm trusted-publishing workflow, checksummed release artifacts, and updated public documentation. +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. -Review and merge do not themselves publish `v1.2.0`. The owner-only release gates remain: configure the documented GitHub environments and npm trusted publisher, record Storefront Web/App and marketplace acceptance against a prerelease, approve the protected production environment, and verify npm provenance and attached checksums after the first publish. +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 @@ -181,7 +181,7 @@ For each slice: - 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 a Changeset; +- 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. @@ -200,17 +200,17 @@ Required branch protection should include quality, supported Node matrix, packag ### Phase 5 — automatic, reviewable release CI -Adopt Changesets because it makes SemVer intent and user-facing notes reviewable per PR and maintains a release PR. Use separate jobs/actions so version-PR permissions do not grant publish permissions. +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 adds a Changeset; CI reports whether one is missing without blocking test-only/internal changes that use an empty Changeset. -2. Changesets maintains a version/changelog PR on `main`. -3. Merging that reviewed release PR runs all required CI again and creates one immutable packed artifact. -4. Publish the artifact first as `v1.2.0-rc.N` under npm dist-tag `next`. +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, promote/publish the exact verified artifact to npm `latest`; publish the same bytes to GitHub Packages only if that registry remains a supported requirement. -7. Create the signed `vX.Y.Z` tag and GitHub Release from the reviewed changelog, attach checksums/package metadata, and verify registry version, dist-tags, provenance, tarball integrity, and install smoke. +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. @@ -256,7 +256,7 @@ Keep reviews bounded and bisectable: 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. Changesets and trusted-publishing dry run. +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. @@ -276,7 +276,7 @@ The modernization is complete only when all of the following are evidenced in CI - 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 Changeset/changelog, prerelease verification, npm trusted-publishing provenance, GitHub Release, checksum/integrity verification, and post-publish install smoke; +- 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. @@ -290,5 +290,4 @@ The modernization is complete only when all of the following are evidenced in CI - [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) -- [Changesets release action](https://github.com/changesets/action) - [publint package compatibility linting](https://github.com/publint/publint) diff --git a/RELEASE.md b/RELEASE.md index a0b6f0c..3f73576 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,6 +1,7 @@ > v1.2.0 ~ "Modern Storefront SDK" --- + ## Highlights - Modernizes the SDK implementation with strict TypeScript while preserving the existing public API and request contracts. @@ -14,6 +15,8 @@ This release is intended to remain compatible with applications using `v1.1.14`. 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/docs/releasing.md b/docs/releasing.md index 8d86a2d..a2d1057 100644 --- a/docs/releasing.md +++ b/docs/releasing.md @@ -2,30 +2,32 @@ ## One-time repository setup -1. Create a protected GitHub environment named `npm-production` and require release-owner approval. -2. Configure npm trusted publishing for package `@fleetbase/storefront`: +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. -3. After the first successful trusted publish, disable token-based publishing and revoke the old automation token. -4. Create a `storefront-smoke` environment with the public, non-production `FLEETBASE_STOREFRONT_PUBLIC_KEY` secret and optional `FLEETBASE_STOREFRONT_HOST` variable. -5. Protect `main` with the required quality, supported Node, packed-artifact, framework/package-manager compatibility, mutation, dependency-review, security, and CodeQL checks. +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. Every consumer-visible pull request adds a Changeset. -2. `release-pr.yml` maintains a version and changelog pull request on `main`. -3. Review and merge the release pull request after the normal CI gates pass. -4. Create and publish a GitHub Release whose tag exactly matches `v`. -5. `publish.yml` checks out that immutable tag, requires tag/version parity, runs the complete suite, packs once, verifies that tarball, publishes those exact bytes through npm OpenID Connect, verifies registry metadata, and attaches the tarball and SHA-256 checksum to the GitHub Release. -6. Verify the npm dist-tags, provenance, attached checksum, and clean registry installs before announcing the release. +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 Changesets prerelease mode and publish release candidates under the npm `next` dist-tag. Validate application consumers against the registry artifact before leaving prerelease mode and publishing the stable version. +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. @@ -36,3 +38,5 @@ Third-party actions are pinned to reviewed commit SHAs. Dependabot checks action ## 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/package.json b/package.json index 41b4a06..903eaad 100644 --- a/package.json +++ b/package.json @@ -90,9 +90,6 @@ "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", - "changeset": "changeset", - "version-packages": "changeset version", - "release": "pnpm run check && changeset publish", "prepack": "pnpm run build" }, "dependencies": { @@ -101,7 +98,6 @@ }, "devDependencies": { "@arethetypeswrong/cli": "^0.18.2", - "@changesets/cli": "^2.29.7", "@eslint/js": "^10.0.1", "@rollup/plugin-commonjs": "^29.0.3", "@rollup/plugin-node-resolve": "^16.0.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3fc8845..c622f7c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -24,9 +24,6 @@ importers: '@arethetypeswrong/cli': specifier: ^0.18.2 version: 0.18.5 - '@changesets/cli': - specifier: ^2.29.7 - version: 2.31.1 '@eslint/js': specifier: ^10.0.1 version: 10.0.1(eslint@10.9.1) @@ -326,61 +323,6 @@ packages: '@braidai/lang@1.1.2': resolution: { integrity: sha512-qBcknbBufNHlui137Hft8xauQMTZDKdophmLFv05r2eNmdIv/MlPuP4TdUknHG68UdWLgVZwgxVe735HzJNIwA== } - '@changesets/apply-release-plan@7.1.1': - resolution: { integrity: sha512-9qPCm/rLx/xoOFXIHGB229+4GOL76S4MC+7tyOuTsR6+1jYlfFDQORdvwR5hDA6y4FL2BPt3qpbcQIS+dW85LA== } - - '@changesets/assemble-release-plan@6.0.10': - resolution: { integrity: sha512-rSDcqdJ9KbVyjpBIuCidhvZNIiVt1XaIYp73ycVQRIA5n/j6wQaEk0ChRLMUQ1vkxZe51PTQ9OIhbg6HQMW45A== } - - '@changesets/changelog-git@0.2.1': - resolution: { integrity: sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q== } - - '@changesets/cli@2.31.1': - resolution: { integrity: sha512-uO05WTcRBwuVOJVSW8Cmpqw6q0WDL53ajGCMyszutvOe5toOnunbpM4jZzf+qxBOz7i0AzopZ8diBuewjmF40w== } - hasBin: true - - '@changesets/config@3.1.4': - resolution: { integrity: sha512-pf0bvD/v6WI2cRlZ6hzpjtZdSlXDXMAJ+Iz7xfFzV4ZxJ8OGGAON+1qYc99ZPrijnt4xp3VGG7eNvAOGS24V1Q== } - - '@changesets/errors@0.2.0': - resolution: { integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow== } - - '@changesets/get-dependents-graph@2.1.4': - resolution: { integrity: sha512-ZsS00x6WvmHq3sQv8oCMwL0f/z3wbXCVuSVTJwCnnmbC/iBdNJGFx1EcbMG4PC6sXRyH69liM4A2WKXzn/kRPg== } - - '@changesets/get-release-plan@4.0.16': - resolution: { integrity: sha512-2K5Om6CrMPm45rtvckfzWo7e9jOVCKLCnXia5eUPaURH7/LWzri7pK1TycdzAuAtehLkW7VPbWLCSExTHmiI6g== } - - '@changesets/get-version-range-type@0.4.0': - resolution: { integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ== } - - '@changesets/git@3.0.4': - resolution: { integrity: sha512-BXANzRFkX+XcC1q/d27NKvlJ1yf7PSAgi8JG6dt8EfbHFHi4neau7mufcSca5zRhwOL8j9s6EqsxmT+s+/E6Sw== } - - '@changesets/logger@0.1.1': - resolution: { integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg== } - - '@changesets/parse@0.4.3': - resolution: { integrity: sha512-ZDmNc53+dXdWEv7fqIUSgRQOLYoUom5Z40gmLgmATmYR9NbL6FJJHwakcCpzaeCy+1D0m0n7mT4jj2B/MQPl7A== } - - '@changesets/pre@2.0.2': - resolution: { integrity: sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug== } - - '@changesets/read@0.6.7': - resolution: { integrity: sha512-D1G4AUYGrBEk8vj8MGwf75k9GpN6XL3wg8i42P2jZZwFLXnlr2Pn7r9yuQNbaMCarP7ZQWNJbV6XLeysAIMhTA== } - - '@changesets/should-skip-package@0.1.2': - resolution: { integrity: sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw== } - - '@changesets/types@4.1.0': - resolution: { integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw== } - - '@changesets/types@6.1.0': - resolution: { integrity: sha512-rKQcJ+o1nKNgeoYRHKOS07tAMNd3YSN0uHaJOZYjBAgxfV7TUE7JE+z4BzZdQwb5hKaYbayKN5KrYV7ODb2rAA== } - - '@changesets/write@0.4.0': - resolution: { integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q== } - '@colors/colors@1.5.0': resolution: { integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== } engines: { node: '>=0.1.90' } @@ -649,15 +591,6 @@ packages: '@types/node': optional: true - '@inquirer/external-editor@1.0.3': - resolution: { integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA== } - engines: { node: '>=18' } - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - '@inquirer/external-editor@3.0.4': resolution: { integrity: sha512-tZbbaK2ovq6vlrRBNQvjrypmrED/p5x2ncIHQ79cD55tei3dD96v5glMMA+6tiq7K104i/25DVYKWVPJuV6ptA== } engines: { node: '>=23.5.0 || ^22.13.0 || ^20.17.0' } @@ -776,12 +709,6 @@ packages: '@loaderkit/resolve@1.0.6': resolution: { integrity: sha512-G8FdIoF5CypfwmD9rl8BXod5HDn8JqB0CCNBXDTaRZ+yRYhARrrSToX1zg1zy9jX3zLqigsELwhT4gNtkdQAUg== } - '@manypkg/find-root@1.1.0': - resolution: { integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA== } - - '@manypkg/get-packages@1.1.3': - resolution: { integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A== } - '@napi-rs/lzma-linux-x64-gnu@1.5.1': resolution: { integrity: sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ== } engines: { node: ^22.20 || ^24.12 || >=25 } @@ -839,18 +766,6 @@ packages: cpu: [x64] os: [win32] - '@nodelib/fs.scandir@2.1.5': - resolution: { integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== } - engines: { node: '>= 8' } - - '@nodelib/fs.stat@2.0.5': - resolution: { integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== } - engines: { node: '>= 8' } - - '@nodelib/fs.walk@1.2.8': - resolution: { integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== } - engines: { node: '>= 8' } - '@oxc-project/types@0.147.0': resolution: { integrity: sha512-IJ3s6ltHLp45S0bh7phkX+gJO7A1Wuz2EaqpAhb8WjqDwbzMiWKHhyyT42tskaWjEYXtHtVCPpnBJVT9+dcRLg== } @@ -1385,10 +1300,6 @@ packages: resolution: { integrity: sha512-3vERzJ65UFDr3C7uozLJwsNcQS3FS784dSh583oDgDTTZMgXe3/pdyXgKndxiP5R2lvYRfW6gSl145Hnyf2OFA== } engines: { node: '>= 14' } - ansi-colors@4.1.3: - resolution: { integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== } - engines: { node: '>=6' } - ansi-escapes@7.3.0: resolution: { integrity: sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg== } engines: { node: '>=18' } @@ -1408,16 +1319,9 @@ packages: any-promise@1.3.0: resolution: { integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== } - argparse@1.0.10: - resolution: { integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== } - argparse@2.0.1: resolution: { integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== } - array-union@2.1.0: - resolution: { integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== } - engines: { node: '>=8' } - assertion-error@2.0.1: resolution: { integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== } engines: { node: '>=12' } @@ -1440,18 +1344,10 @@ packages: engines: { node: '>=6.0.0' } hasBin: true - better-path-resolve@1.0.0: - resolution: { integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g== } - engines: { node: '>=4' } - brace-expansion@5.0.9: resolution: { integrity: sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg== } engines: { node: 20 || >=22 } - braces@3.0.3: - resolution: { integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== } - engines: { node: '>=8' } - browserslist@4.28.8: resolution: { integrity: sha512-V2NpofLblG64mfOtSgDhOJESZEGogzDMBv/q+W6oc4LXWP/q75eOXoOaaOu1EOadB9U4Bwx/e0yzbvwKH8zalA== } engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } @@ -1590,10 +1486,6 @@ packages: des.js@1.1.0: resolution: { integrity: sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg== } - detect-indent@6.1.0: - resolution: { integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== } - engines: { node: '>=8' } - detect-libc@2.1.2: resolution: { integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ== } engines: { node: '>=8' } @@ -1601,10 +1493,6 @@ packages: diff-match-patch@1.0.5: resolution: { integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw== } - dir-glob@3.0.1: - resolution: { integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== } - engines: { node: '>=8' } - dunder-proto@1.0.1: resolution: { integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== } engines: { node: '>= 0.4' } @@ -1629,10 +1517,6 @@ packages: resolution: { integrity: sha512-L1l8TNvomm6UVW5B253AGxQagSQr+vGwhMlrrfRS2qmhx46AMpMVJKQYLvWYbysTMY8VoicOvzHzoHMbyzB+4A== } engines: { node: '>=10.13.0' } - enquirer@2.4.1: - resolution: { integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== } - engines: { node: '>=8.6' } - envinfo@7.21.0: resolution: { integrity: sha512-Lw7I8Zp5YKHFCXL7+Dz95g4CcbMEpgvqZNNq3AmlT5XAV6CgAAk6gyAMqn2zjw08K9BHfcNuKrMiCPLByGafow== } engines: { node: '>=4' } @@ -1695,11 +1579,6 @@ packages: resolution: { integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw== } engines: { node: ^20.19.0 || ^22.13.0 || >=24 } - esprima@4.0.1: - resolution: { integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== } - engines: { node: '>=4' } - hasBin: true - esquery@1.7.0: resolution: { integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g== } engines: { node: '>=0.10' } @@ -1734,16 +1613,9 @@ packages: resolution: { integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA== } engines: { node: '>=12.0.0' } - extendable-error@0.1.7: - resolution: { integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg== } - fast-deep-equal@3.1.3: resolution: { integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== } - fast-glob@3.3.3: - resolution: { integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== } - engines: { node: '>=8.6.0' } - fast-json-stable-stringify@2.1.0: resolution: { integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== } @@ -1762,9 +1634,6 @@ packages: fast-wrap-ansi@0.2.2: resolution: { integrity: sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q== } - fastq@1.18.0: - resolution: { integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw== } - fdir@6.4.2: resolution: { integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ== } peerDependencies: @@ -1793,10 +1662,6 @@ packages: resolution: { integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== } engines: { node: '>=16.0.0' } - fill-range@7.1.1: - resolution: { integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== } - engines: { node: '>=8' } - find-up@4.1.0: resolution: { integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== } engines: { node: '>=8' } @@ -1829,14 +1694,6 @@ packages: resolution: { integrity: sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ== } engines: { node: '>= 6' } - fs-extra@7.0.1: - resolution: { integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== } - engines: { node: '>=6 <7 || >=8' } - - fs-extra@8.1.0: - resolution: { integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== } - engines: { node: '>=6 <7 || >=8' } - fsevents@2.3.3: resolution: { integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== } engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } @@ -1865,10 +1722,6 @@ packages: resolution: { integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA== } engines: { node: '>=18' } - glob-parent@5.1.2: - resolution: { integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== } - engines: { node: '>= 6' } - glob-parent@6.0.2: resolution: { integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== } engines: { node: '>=10.13.0' } @@ -1877,10 +1730,6 @@ packages: resolution: { integrity: sha512-Z2I8hM+PbJDXQDq3Icgpzv+mPdwr68iZUU9d5WW4FuXfDUQfkZaZuvjMv42/5crNyw154+9+VWXbYrUgDXbxNw== } engines: { node: '>=18' } - globby@11.1.0: - resolution: { integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== } - engines: { node: '>=10' } - gopd@1.2.0: resolution: { integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== } engines: { node: '>= 0.4' } @@ -1918,10 +1767,6 @@ packages: resolution: { integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== } engines: { node: '>= 6' } - human-id@4.2.1: - resolution: { integrity: sha512-zPGsiS+dWoTZtZ4AtpA9Y+BdSFSNWvnouNlWNoUFyAM6xHOHmdCvqO3k8AIbdamCOv4gUFUVNPf6rJFfc4UiJw== } - hasBin: true - human-signals@8.0.1: resolution: { integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ== } engines: { node: '>=18.18.0' } @@ -1976,10 +1821,6 @@ packages: is-module@1.0.0: resolution: { integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== } - is-number@7.0.0: - resolution: { integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== } - engines: { node: '>=0.12.0' } - is-plain-obj@4.1.0: resolution: { integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== } engines: { node: '>=12' } @@ -1995,18 +1836,10 @@ packages: resolution: { integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A== } engines: { node: '>=18' } - is-subdir@1.2.0: - resolution: { integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw== } - engines: { node: '>=4' } - is-unicode-supported@2.1.0: resolution: { integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ== } engines: { node: '>=18' } - is-windows@1.0.2: - resolution: { integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== } - engines: { node: '>=0.10.0' } - isexe@2.0.0: resolution: { integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== } @@ -2036,10 +1869,6 @@ packages: js-tokens@10.0.0: resolution: { integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q== } - js-yaml@3.15.2: - resolution: { integrity: sha512-6EuL879VkRA+1Cz578mKMiKvjPNEuk6+r1JaFzoSWejZmtf7xWbIyw1e3KkxlkzTIt9Taw6JBhEppG7utc1P+w== } - hasBin: true - js-yaml@4.3.2: resolution: { integrity: sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA== } hasBin: true @@ -2069,9 +1898,6 @@ packages: engines: { node: '>=6' } hasBin: true - jsonfile@4.0.0: - resolution: { integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== } - keyv@4.5.4: resolution: { integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== } @@ -2164,9 +1990,6 @@ packages: lodash.groupby@4.6.0: resolution: { integrity: sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw== } - lodash.startcase@4.4.0: - resolution: { integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== } - lru-cache@11.5.2: resolution: { integrity: sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g== } engines: { node: 20 || >=22 } @@ -2202,14 +2025,6 @@ packages: merge-stream@2.0.0: resolution: { integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== } - merge2@1.4.1: - resolution: { integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== } - engines: { node: '>= 8' } - - micromatch@4.0.8: - resolution: { integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== } - engines: { node: '>=8.6' } - mime-db@1.52.0: resolution: { integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== } engines: { node: '>= 0.6' } @@ -2359,13 +2174,6 @@ packages: resolution: { integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== } engines: { node: '>= 0.8.0' } - outdent@0.5.0: - resolution: { integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q== } - - p-filter@2.1.0: - resolution: { integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw== } - engines: { node: '>=8' } - p-limit@2.3.0: resolution: { integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== } engines: { node: '>=6' } @@ -2382,17 +2190,10 @@ packages: resolution: { integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== } engines: { node: '>=10' } - p-map@2.1.0: - resolution: { integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== } - engines: { node: '>=6' } - p-try@2.2.0: resolution: { integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== } engines: { node: '>=6' } - package-manager-detector@0.2.11: - resolution: { integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ== } - package-manager-detector@1.8.0: resolution: { integrity: sha512-yQA4H19AmPEoMUeavPMDIe1higySl/gH/yaQrkT/s07Qp+7pp2hYz30N3z2l5BkjVkF9Ow6o0wjJamm2y7Sn0A== } @@ -2424,20 +2225,12 @@ packages: path-parse@1.0.7: resolution: { integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== } - path-type@4.0.0: - resolution: { integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== } - engines: { node: '>=8' } - 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' } @@ -2446,10 +2239,6 @@ packages: resolution: { integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA== } engines: { node: '>=12' } - pify@4.0.1: - resolution: { integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== } - engines: { node: '>=6' } - pkg-dir@4.2.0: resolution: { integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== } engines: { node: '>=8' } @@ -2466,11 +2255,6 @@ packages: resolution: { integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== } engines: { node: '>= 0.8.0' } - prettier@2.8.8: - resolution: { integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== } - engines: { node: '>=10.13.0' } - hasBin: true - prettier@3.9.6: resolution: { integrity: sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g== } engines: { node: '>=14' } @@ -2501,12 +2285,6 @@ packages: resolution: { integrity: sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA== } engines: { node: '>=0.6' } - quansync@0.2.11: - resolution: { integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA== } - - queue-microtask@1.2.3: - resolution: { integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== } - react-dom@19.2.8: resolution: { integrity: sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ== } peerDependencies: @@ -2516,10 +2294,6 @@ packages: resolution: { integrity: sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw== } engines: { node: '>=0.10.0' } - read-yaml-file@1.1.0: - resolution: { integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA== } - engines: { node: '>=6' } - rechoir@0.8.0: resolution: { integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== } engines: { node: '>= 10.13.0' } @@ -2545,10 +2319,6 @@ packages: 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' } - rolldown@1.2.6: resolution: { integrity: sha512-vMM4q3aixf46GiF1Kok8jDPFsEpXgFWGjUHXNkNHNm+Y2adXAG2dbX91jkti3i0ZRsOlcmbuzAz1poObSHCmUA== } engines: { node: ^20.19.0 || >=22.12.0 } @@ -2559,9 +2329,6 @@ packages: 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== } @@ -2636,10 +2403,6 @@ packages: resolution: { integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA== } engines: { node: '>=8' } - slash@3.0.0: - resolution: { integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== } - engines: { node: '>=8' } - smob@1.5.0: resolution: { integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig== } @@ -2658,12 +2421,6 @@ packages: resolution: { integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ== } engines: { node: '>= 12' } - spawndamnit@3.0.1: - resolution: { integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg== } - - sprintf-js@1.0.3: - resolution: { integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== } - stackback@0.0.2: resolution: { integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw== } @@ -2678,10 +2435,6 @@ packages: resolution: { integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== } engines: { node: '>=8' } - strip-bom@3.0.0: - resolution: { integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== } - engines: { node: '>=4' } - strip-final-newline@4.0.0: resolution: { integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw== } engines: { node: '>=18' } @@ -2719,10 +2472,6 @@ packages: resolution: { integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A== } engines: { node: '>=6' } - term-size@2.2.1: - resolution: { integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== } - engines: { node: '>=8' } - terser@5.37.0: resolution: { integrity: sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA== } engines: { node: '>=10' } @@ -2755,10 +2504,6 @@ packages: resolution: { integrity: sha512-yau8yJdTt989Mm0Bd/236QnzEiPf2xLLTqUZRUJOo/3CB078LSwzei343DgtJVmfJKJE3TMINY1u42SQsP6mXw== } engines: { node: '>=14.0.0' } - to-regex-range@5.0.1: - resolution: { integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== } - engines: { node: '>=8.0' } - tree-kill@1.2.2: resolution: { integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== } hasBin: true @@ -2816,10 +2561,6 @@ packages: resolution: { integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA== } engines: { node: '>=18' } - universalify@0.1.2: - resolution: { integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== } - engines: { node: '>= 4.0.0' } - update-browserslist-db@1.3.2: resolution: { integrity: sha512-UQ+MSxlhRm1bzjhU+DcuXfjFO1FzNtqhK5+9Yvlp90ItDLk5vT932A0rFu619nf7RVS+Y/VeaUW1jaRDqZ8VJw== } hasBin: true @@ -3281,149 +3022,6 @@ snapshots: '@braidai/lang@1.1.2': {} - '@changesets/apply-release-plan@7.1.1': - dependencies: - '@changesets/config': 3.1.4 - '@changesets/get-version-range-type': 0.4.0 - '@changesets/git': 3.0.4 - '@changesets/should-skip-package': 0.1.2 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - detect-indent: 6.1.0 - fs-extra: 7.0.1 - lodash.startcase: 4.4.0 - outdent: 0.5.0 - prettier: 2.8.8 - resolve-from: 5.0.0 - semver: 7.8.5 - - '@changesets/assemble-release-plan@6.0.10': - dependencies: - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.4 - '@changesets/should-skip-package': 0.1.2 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - semver: 7.8.5 - - '@changesets/changelog-git@0.2.1': - dependencies: - '@changesets/types': 6.1.0 - - '@changesets/cli@2.31.1': - dependencies: - '@changesets/apply-release-plan': 7.1.1 - '@changesets/assemble-release-plan': 6.0.10 - '@changesets/changelog-git': 0.2.1 - '@changesets/config': 3.1.4 - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.4 - '@changesets/get-release-plan': 4.0.16 - '@changesets/git': 3.0.4 - '@changesets/logger': 0.1.1 - '@changesets/pre': 2.0.2 - '@changesets/read': 0.6.7 - '@changesets/should-skip-package': 0.1.2 - '@changesets/types': 6.1.0 - '@changesets/write': 0.4.0 - '@inquirer/external-editor': 1.0.3 - '@manypkg/get-packages': 1.1.3 - ansi-colors: 4.1.3 - enquirer: 2.4.1 - fs-extra: 7.0.1 - mri: 1.2.0 - package-manager-detector: 0.2.11 - picocolors: 1.1.1 - resolve-from: 5.0.0 - semver: 7.8.5 - spawndamnit: 3.0.1 - term-size: 2.2.1 - transitivePeerDependencies: - - '@types/node' - - '@changesets/config@3.1.4': - dependencies: - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.4 - '@changesets/logger': 0.1.1 - '@changesets/should-skip-package': 0.1.2 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - fs-extra: 7.0.1 - micromatch: 4.0.8 - - '@changesets/errors@0.2.0': - dependencies: - extendable-error: 0.1.7 - - '@changesets/get-dependents-graph@2.1.4': - dependencies: - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - picocolors: 1.1.1 - semver: 7.8.5 - - '@changesets/get-release-plan@4.0.16': - dependencies: - '@changesets/assemble-release-plan': 6.0.10 - '@changesets/config': 3.1.4 - '@changesets/pre': 2.0.2 - '@changesets/read': 0.6.7 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - - '@changesets/get-version-range-type@0.4.0': {} - - '@changesets/git@3.0.4': - dependencies: - '@changesets/errors': 0.2.0 - '@manypkg/get-packages': 1.1.3 - is-subdir: 1.2.0 - micromatch: 4.0.8 - spawndamnit: 3.0.1 - - '@changesets/logger@0.1.1': - dependencies: - picocolors: 1.1.1 - - '@changesets/parse@0.4.3': - dependencies: - '@changesets/types': 6.1.0 - js-yaml: 4.3.2 - - '@changesets/pre@2.0.2': - dependencies: - '@changesets/errors': 0.2.0 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - fs-extra: 7.0.1 - - '@changesets/read@0.6.7': - dependencies: - '@changesets/git': 3.0.4 - '@changesets/logger': 0.1.1 - '@changesets/parse': 0.4.3 - '@changesets/types': 6.1.0 - fs-extra: 7.0.1 - p-filter: 2.1.0 - picocolors: 1.1.1 - - '@changesets/should-skip-package@0.1.2': - dependencies: - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - - '@changesets/types@4.1.0': {} - - '@changesets/types@6.1.0': {} - - '@changesets/write@0.4.0': - dependencies: - '@changesets/types': 6.1.0 - fs-extra: 7.0.1 - human-id: 4.2.1 - prettier: 2.8.8 - '@colors/colors@1.5.0': optional: true @@ -3631,11 +3229,6 @@ snapshots: '@inquirer/core': 12.0.1 '@inquirer/type': 4.1.0 - '@inquirer/external-editor@1.0.3': - dependencies: - chardet: 2.2.0 - iconv-lite: 0.7.3 - '@inquirer/external-editor@3.0.4': dependencies: chardet: 2.2.0 @@ -3730,22 +3323,6 @@ snapshots: dependencies: '@braidai/lang': 1.1.2 - '@manypkg/find-root@1.1.0': - dependencies: - '@babel/runtime': 7.28.4 - '@types/node': 12.20.55 - find-up: 4.1.0 - fs-extra: 8.1.0 - - '@manypkg/get-packages@1.1.3': - dependencies: - '@babel/runtime': 7.28.4 - '@changesets/types': 4.1.0 - '@manypkg/find-root': 1.1.0 - fs-extra: 8.1.0 - globby: 11.1.0 - read-yaml-file: 1.1.0 - '@napi-rs/lzma-linux-x64-gnu@1.5.1': optional: true @@ -3775,18 +3352,6 @@ snapshots: '@next/swc-win32-x64-msvc@16.3.3': optional: true - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.18.0 - '@oxc-project/types@0.147.0': {} '@publint/pack@0.1.7': @@ -4328,8 +3893,6 @@ snapshots: angular-html-parser@10.11.0: {} - ansi-colors@4.1.3: {} - ansi-escapes@7.3.0: dependencies: environment: 1.1.0 @@ -4344,13 +3907,8 @@ snapshots: any-promise@1.3.0: {} - argparse@1.0.10: - dependencies: - sprintf-js: 1.0.3 - - argparse@2.0.1: {} - - array-union@2.1.0: {} + argparse@2.0.1: + optional: true assertion-error@2.0.1: {} @@ -4376,18 +3934,10 @@ snapshots: baseline-browser-mapping@2.11.20: {} - better-path-resolve@1.0.0: - dependencies: - is-windows: 1.0.2 - brace-expansion@5.0.9: dependencies: balanced-match: 4.0.4 - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - browserslist@4.28.8: dependencies: baseline-browser-mapping: 2.11.20 @@ -4507,16 +4057,10 @@ snapshots: inherits: 2.0.4 minimalistic-assert: 1.0.1 - detect-indent@6.1.0: {} - detect-libc@2.1.2: {} diff-match-patch@1.0.5: {} - dir-glob@3.0.1: - dependencies: - path-type: 4.0.0 - dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -4538,11 +4082,6 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.3.3 - enquirer@2.4.1: - dependencies: - ansi-colors: 4.1.3 - strip-ansi: 6.0.1 - envinfo@7.21.0: {} environment@1.1.0: {} @@ -4620,8 +4159,6 @@ snapshots: acorn-jsx: 5.3.2(acorn@8.18.0) eslint-visitor-keys: 5.0.1 - esprima@4.0.1: {} - esquery@1.7.0: dependencies: estraverse: 5.3.0 @@ -4659,18 +4196,8 @@ snapshots: expect-type@1.4.0: {} - extendable-error@0.1.7: {} - fast-deep-equal@3.1.3: {} - fast-glob@3.3.3: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - fast-json-stable-stringify@2.1.0: {} fast-levenshtein@2.0.6: {} @@ -4687,10 +4214,6 @@ snapshots: dependencies: fast-string-width: 3.0.2 - fastq@1.18.0: - dependencies: - reusify: 1.0.4 - fdir@6.4.2(picomatch@4.0.2): optionalDependencies: picomatch: 4.0.2 @@ -4709,10 +4232,6 @@ snapshots: dependencies: flat-cache: 4.0.1 - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 - find-up@4.1.0: dependencies: locate-path: 5.0.0 @@ -4742,18 +4261,6 @@ snapshots: hasown: 2.0.4 mime-types: 2.1.35 - fs-extra@7.0.1: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - - fs-extra@8.1.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - fsevents@2.3.3: optional: true @@ -4786,25 +4293,12 @@ snapshots: '@sec-ant/readable-stream': 0.4.1 is-stream: 4.0.1 - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - glob-parent@6.0.2: dependencies: is-glob: 4.0.3 globals@17.11.0: {} - globby@11.1.0: - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.3 - ignore: 5.3.2 - merge2: 1.4.1 - slash: 3.0.0 - gopd@1.2.0: {} graceful-fs@4.2.11: {} @@ -4836,8 +4330,6 @@ snapshots: transitivePeerDependencies: - supports-color - human-id@4.2.1: {} - human-signals@8.0.1: {} iconv-lite@0.7.3: @@ -4875,8 +4367,6 @@ snapshots: is-module@1.0.0: {} - is-number@7.0.0: {} - is-plain-obj@4.1.0: {} is-plain-object@2.0.4: @@ -4889,14 +4379,8 @@ snapshots: is-stream@4.0.1: {} - is-subdir@1.2.0: - dependencies: - better-path-resolve: 1.0.0 - is-unicode-supported@2.1.0: {} - is-windows@1.0.2: {} - isexe@2.0.0: {} isobject@3.0.1: {} @@ -4924,14 +4408,10 @@ snapshots: js-tokens@10.0.0: {} - js-yaml@3.15.2: - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - js-yaml@4.3.2: dependencies: argparse: 2.0.1 + optional: true jsesc@3.1.0: {} @@ -4947,10 +4427,6 @@ snapshots: json5@2.2.3: {} - jsonfile@4.0.0: - optionalDependencies: - graceful-fs: 4.2.11 - keyv@4.5.4: dependencies: json-buffer: 3.0.1 @@ -5021,8 +4497,6 @@ snapshots: lodash.groupby@4.6.0: {} - lodash.startcase@4.4.0: {} - lru-cache@11.5.2: {} magic-string@0.30.17: @@ -5060,13 +4534,6 @@ snapshots: merge-stream@2.0.0: {} - merge2@1.4.1: {} - - micromatch@4.0.8: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - mime-db@1.52.0: {} mime-db@1.54.0: {} @@ -5173,12 +4640,6 @@ snapshots: type-check: 0.4.0 word-wrap: 1.2.5 - outdent@0.5.0: {} - - p-filter@2.1.0: - dependencies: - p-map: 2.1.0 - p-limit@2.3.0: dependencies: p-try: 2.2.0 @@ -5195,14 +4656,8 @@ snapshots: dependencies: p-limit: 3.1.0 - p-map@2.1.0: {} - p-try@2.2.0: {} - package-manager-detector@0.2.11: - dependencies: - quansync: 0.2.11 - package-manager-detector@1.8.0: {} parse-ms@4.0.0: {} @@ -5223,20 +4678,14 @@ snapshots: path-parse@1.0.7: {} - path-type@4.0.0: {} - pathe@2.0.3: {} picocolors@1.1.1: {} - picomatch@2.3.1: {} - picomatch@4.0.2: {} picomatch@4.0.7: {} - pify@4.0.1: {} - pkg-dir@4.2.0: dependencies: find-up: 4.1.0 @@ -5255,8 +4704,6 @@ snapshots: prelude-ls@1.2.1: {} - prettier@2.8.8: {} - prettier@3.9.6: {} pretty-ms@9.3.1: @@ -5281,10 +4728,6 @@ snapshots: es-define-property: 1.0.1 side-channel: 1.1.1 - quansync@0.2.11: {} - - queue-microtask@1.2.3: {} - react-dom@19.2.8(react@19.2.8): dependencies: react: 19.2.8 @@ -5292,13 +4735,6 @@ snapshots: react@19.2.8: {} - read-yaml-file@1.1.0: - dependencies: - graceful-fs: 4.2.11 - js-yaml: 3.15.2 - pify: 4.0.1 - strip-bom: 3.0.0 - rechoir@0.8.0: dependencies: resolve: 1.22.10 @@ -5319,8 +4755,6 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - reusify@1.0.4: {} - rolldown@1.2.6: dependencies: '@oxc-project/types': 0.147.0 @@ -5374,10 +4808,6 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.63.1 fsevents: 2.3.3 - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - rxjs@7.8.2: dependencies: tslib: 2.8.1 @@ -5480,8 +4910,6 @@ snapshots: dependencies: unicode-emoji-modifier-base: 1.0.0 - slash@3.0.0: {} - smob@1.5.0: {} source-map-js@1.2.1: {} @@ -5495,13 +4923,6 @@ snapshots: source-map@0.7.6: {} - spawndamnit@3.0.1: - dependencies: - cross-spawn: 7.0.6 - signal-exit: 4.1.0 - - sprintf-js@1.0.3: {} - stackback@0.0.2: {} std-env@4.2.0: {} @@ -5516,8 +4937,6 @@ snapshots: dependencies: ansi-regex: 5.0.1 - strip-bom@3.0.0: {} - strip-final-newline@4.0.0: {} styled-jsx@5.1.6(@babel/core@8.0.1)(react@19.2.8): @@ -5544,8 +4963,6 @@ snapshots: tapable@2.3.3: {} - term-size@2.2.1: {} - terser@5.37.0: dependencies: '@jridgewell/source-map': 0.3.6 @@ -5579,10 +4996,6 @@ snapshots: tinyrainbow@3.1.1: {} - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - tree-kill@1.2.2: {} ts-api-utils@2.5.0(typescript@5.9.3): @@ -5628,8 +5041,6 @@ snapshots: unicorn-magic@0.3.0: {} - universalify@0.1.2: {} - update-browserslist-db@1.3.2(browserslist@4.28.8): dependencies: browserslist: 4.28.8