Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi👋, please prefix this PR's title with:
breaking-change:
if you have introduced modification that necessitates immediate adjustments by this SDK's users to their applications, clients, or integrations to avert disruptions to existing features or functionalities.feat:
,fix:
,refactor:
,docs:
, orchore:
.Summary
To resolve issues with CDN and browser caching when loading the
@latest
version of the package, we have previously introduced a mechanism to query the NPM registry for a specific version.This approach ensures that apps hosting the widget load a precise version of the package, such as:
https://cdn.jsdelivr.net/npm/@imtbl/[email protected]/dist/browser/checkout/widgets-esm.js.
While this resolves caching issues, it introduces a new issue: CDN propagation delays. It typically takes 5–10 minutes for the new version to become fully available on the CDN. During this period, if a user accesses the app, the widget's files for the specific the specific latest version may not yet be accessible.
This PR adds a
last_updated.json
file containing a timestamp recorded just before the package is published to NPM. The widget:last_updated.json
file on the CDN.@latest
version (https://cdn.jsdelivr.net/npm/@imtbl/sdk@latest/dist/browser/checkout/widgets-esm.js).This ensures users have access to the latest version of widgets while avoiding the downtime due to CDN propagation delays. The experience remains seamless, requiring no user intervention (e.g. no need for hard browser reloads to clear browser cache).