Skip to content

chore(deps): bump cordova-plugin-purchase from 13.17.2 to 13.18.0 in the minor-updates group#3502

Merged
olgahaha merged 3 commits into
mainfrom
dependabot/npm_and_yarn/main/minor-updates-f62f3e352e
Jul 17, 2026
Merged

chore(deps): bump cordova-plugin-purchase from 13.17.2 to 13.18.0 in the minor-updates group#3502
olgahaha merged 3 commits into
mainfrom
dependabot/npm_and_yarn/main/minor-updates-f62f3e352e

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 16, 2026

Copy link
Copy Markdown
Contributor

Bumps the minor-updates group with 1 update: cordova-plugin-purchase.

Updates cordova-plugin-purchase from 13.17.2 to 13.18.0

Release notes

Sourced from cordova-plugin-purchase's releases.

v13.18.0

13.18.0

(feat) OfflineEntitlements — answer "is this product owned?" when the device is offline

New CdvPurchase.OfflineEntitlements helper class persists a subset of VerifiedPurchase to device storage on each verified event, reloads it at app launch, and answers isOwned() when the device is offline or has just restarted without connectivity. Phase 1 — unsigned cache (no JWT, no crypto, no server changes).

store.owned() itself is unchanged — it still checks the in-memory verified and local receipts. OfflineEntitlements adds a parallel check against a persisted cache, so you can combine both:

const offline = new CdvPurchase.OfflineEntitlements(store, {
    gracePeriodMs: 30 * 24 * 60 * 60 * 1000, // 30 days
    onExpiredOffline: 'readonly',
    detectClockRollback: true,
});
await offline.ready();
function isUserPremium(): boolean {
return store.owned('premium') || offline.isOwned('premium');
}

Use find() to retrieve the persisted entitlement details — expiry date, renewal intent, last renewal date, etc. — without digging into local storage by hand:

const entitlement = offline.find('premium');
if (entitlement?.expiryDate) {
    const daysLeft = Math.ceil((entitlement.expiryDate - Date.now()) / 86400000);
    showRenewalBanner(daysLeft);
}

Options:

  • storage — pluggable OfflineStorageAdapter (defaults to a localStorage wrapper). For long-offline deployments (weeks without connectivity), pass a file-based or secure-storage adapter — localStorage can be evicted by the WebView under storage pressure.
  • gracePeriodMs — grace window after a subscription's expiryDate during which it's still considered owned (default 30 days).
  • onExpiredOffline — behavior when the grace period has elapsed and the device is still offline: 'readonly' keeps granting access (default), 'deny' revokes it.
  • detectClockRollback — if true, deny access when the persisted lastSeenTimestamp is in the future relative to now (clock tampering).

Events (offline.on(event => ...)) fire on grace, readonly, clock_rollback, entitlement_missing, and expired transitions, deduplicated per productId.

offline.clear() removes all persisted entitlements (for user logout).

Companion plugin compatibility

StoreKit 2 Plugin, Braintree Plugin and Apple Pay Plugin are unaffected — OfflineEntitlements is a TypeScript-only helper with no native code, no version bump required.

npm packages

... (truncated)

Changelog

Sourced from cordova-plugin-purchase's changelog.

13.18.0

(feat) OfflineEntitlements — answer "is this product owned?" when the device is offline

New CdvPurchase.OfflineEntitlements helper class persists a subset of VerifiedPurchase to device storage on each verified event, reloads it at app launch, and answers isOwned() when the device is offline or has just restarted without connectivity. Phase 1 — unsigned cache (no JWT, no crypto, no server changes).

store.owned() itself is unchanged — it still checks the in-memory verified and local receipts. OfflineEntitlements adds a parallel check against a persisted cache, so you can combine both:

const offline = new CdvPurchase.OfflineEntitlements(store, {
    gracePeriodMs: 30 * 24 * 60 * 60 * 1000, // 30 days
    onExpiredOffline: 'readonly',
    detectClockRollback: true,
});
await offline.ready();
function isUserPremium(): boolean {
return store.owned('premium') || offline.isOwned('premium');
}

Use find() to retrieve the persisted entitlement details — expiry date, renewal intent, last renewal date, etc. — without digging into local storage by hand:

const entitlement = offline.find('premium');
if (entitlement?.expiryDate) {
    const daysLeft = Math.ceil((entitlement.expiryDate - Date.now()) / 86400000);
    showRenewalBanner(daysLeft);
}

Options:

  • storage — pluggable OfflineStorageAdapter (defaults to a localStorage wrapper). For long-offline deployments (weeks without connectivity), pass a file-based or secure-storage adapter — localStorage can be evicted by the WebView under storage pressure.
  • gracePeriodMs — grace window after a subscription's expiryDate during which it's still considered owned (default 30 days).
  • onExpiredOffline — behavior when the grace period has elapsed and the device is still offline: 'readonly' keeps granting access (default), 'deny' revokes it.
  • detectClockRollback — if true, deny access when the persisted lastSeenTimestamp is in the future relative to now (clock tampering).

Events (offline.on(event => ...)) fire on grace, readonly, clock_rollback, entitlement_missing, and expired transitions, deduplicated per productId.

offline.clear() removes all persisted entitlements (for user logout).

Companion plugin compatibility

StoreKit 2 Plugin, Braintree Plugin and Apple Pay Plugin are unaffected — OfflineEntitlements is a TypeScript-only helper with no native code, no version bump required.

13.17

Commits
  • 4f79815 release: 13.18.0
  • 3705077 feat: add OfflineEntitlements.find() — retrieve persisted entitlement data
  • 114b6dd Add 'offline' example to smoke-test gate (FOV-886)
  • 9223f03 fix: address senior review — blockers + API surface improvements
  • 463f6ee fix: unregister verifiedCallback in clear() + clarify renewalIntent fallthrough
  • 78770e3 feat: implement OfflineEntitlements class — Phase 1 (unsigned cache)
  • fcd82c7 build(deps-dev): bump @​tootallnate/once from 2.0.0 to 2.0.1 (#1707)
  • a661ff3 build(deps-dev): bump picomatch from 2.3.1 to 2.3.2 (#1700)
  • a0e4d9f build(deps): bump handlebars from 4.7.7 to 4.7.9 (#1699)
  • cd2a2b0 build(deps): bump minimatch (#1698)
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore <dependency name> major version will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
  • @dependabot ignore <dependency name> minor version will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
  • @dependabot ignore <dependency name> will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
  • @dependabot unignore <dependency name> will remove all of the ignore conditions of the specified dependency
  • @dependabot unignore <dependency name> <ignore condition> will remove the ignore condition of the specified dependency and ignore conditions

Bumps the minor-updates group with 1 update: [cordova-plugin-purchase](https://github.com/j3k0/cordova-plugin-purchase).


Updates `cordova-plugin-purchase` from 13.17.2 to 13.18.0
- [Release notes](https://github.com/j3k0/cordova-plugin-purchase/releases)
- [Changelog](https://github.com/j3k0/cordova-plugin-purchase/blob/master/RELEASE_NOTES.md)
- [Commits](j3k0/cordova-plugin-purchase@v13.17.2...v13.18.0)

---
updated-dependencies:
- dependency-name: cordova-plugin-purchase
  dependency-version: 13.18.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Jul 16, 2026
@olgahaha
olgahaha merged commit 31d1523 into main Jul 17, 2026
10 checks passed
@dependabot
dependabot Bot deleted the dependabot/npm_and_yarn/main/minor-updates-f62f3e352e branch July 17, 2026 06:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant