chore: version packages - #173
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
August 2, 2026 11:56
40d63a2 to
2cb4299
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
August 2, 2026 13:35
2cb4299 to
a5478c7
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
August 2, 2026 14:11
a5478c7 to
84bf632
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@policystack/core@1.3.0
Minor Changes
74ab73b:
gateScriptnow follows the official vendor snippet order, fixing gated scripts that never fired (gateScript: stub lifecycle drops calls after load — shipped metaPixel() never fires #156). On consent it restores the stubbed globals, runsinit, replays the pre-consent queue, and only then injects the script;script:loadedfires only after the script's real load event, and calls made while the script downloads are no longer dropped. The shipped Meta Pixel, PostHog, Segment, and Hotjar integrations now create their vendor's official snippet stub ininit, so scripts likefbevents.js— which decorate the existing global and drain its queue rather than replacing it — bootstrap correctly in both the gated and already-granted paths.Migration for custom
defineScriptdefinitions:initnow runs before the script is injected (previously after). Mirror the vendor's inline snippet: create the vendor's own queueing stub and make the initial calls there.aa2f390: Storage keys drop the pre-rebrand
oc_prefix, and the consent scanner now resolves aliasedConsentGateimports (Nits: oc_ storage-key branding leftovers; scanner misses aliased ConsentGate imports #161).localStorageAdapterandcookieAdapterboth default tops_consentinstead ofoc_consent(and the localStorage probe key is now__ps_probe__). No visitor is re-prompted: both adapters still read the old key when the new one is absent, so an existing decision keeps loading. The fallback is read-only — writes always go tops_consent— and is skipped entirely when you pass your ownkey/name. The one exception isclear(), which removes both keys; otherwise the fallback would resurrect a decision the visitor just withdrew.Two things to check if you touch the cookie name directly:
cookieAdapter().namenow returnsps_consent. Server code that reads the consent cookie should use that property rather than a hardcoded string.getSetCookieHeaders(record), which returns everySet-Cookieheader to emit — on clear that includes one expiring the legacy cookie. The existing singulargetSetCookieHeaderis unchanged and still covers only the canonical cookie, so clearing through it leavesoc_consentbehind.The Vite consent scanner previously treated a JSX element as a gate only when it was literally named
ConsentGate, soimport { ConsentGate as Gate }silently defeated gating detection and correctly-gated code was reported as ungated (a build failure undermode: "error"). Aliased imports and namespaced usage (import * as PS→<PS.ConsentGate>) resolving to a PolicyStack package are now recognised. This is purely additive — a bare<ConsentGate>with no import still counts, so local wrappers, barrel re-exports and auto-imports keep working and no previously-clean project starts failing.e7c984f: Cookie context entries now accept
label,description, andrespectGPC, and derived consent categories use that metadata directly. Missing copy falls back to the built-in cookie-type dictionary for the policy locale, so preference panels can renderuseConsent().categorieswithout maintaining a separate copy table (CookieContextEntry: allow label/description so preference panels don't hardcode copy #160).Note that this changes the default copy for categories that do not set
label/description: a derived category'slabelis now the dictionary label ("Analytics Cookies") rather than the capitalised key ("Analytics"), anddescriptionis now the dictionary description (or""for a custom category key) rather thanundefined. Setlabel/descriptionincookies.contextto keep your existing wording.@policystack/scripts@1.3.0
Minor Changes
74ab73b:
gateScriptnow follows the official vendor snippet order, fixing gated scripts that never fired (gateScript: stub lifecycle drops calls after load — shipped metaPixel() never fires #156). On consent it restores the stubbed globals, runsinit, replays the pre-consent queue, and only then injects the script;script:loadedfires only after the script's real load event, and calls made while the script downloads are no longer dropped. The shipped Meta Pixel, PostHog, Segment, and Hotjar integrations now create their vendor's official snippet stub ininit, so scripts likefbevents.js— which decorate the existing global and drain its queue rather than replacing it — bootstrap correctly in both the gated and already-granted paths.Migration for custom
defineScriptdefinitions:initnow runs before the script is injected (previously after). Mirror the vendor's inline snippet: create the vendor's own queueing stub and make the initial calls there.@policystack/solid@1.3.0
Minor Changes
0d15fae: Vue, Solid, and Svelte now expose
<GatedScript def={...} />, completing framework-native support forgateScriptand the@policystack/scriptscatalogue (No way to reach the provider's ConsentStore — gateScript unusable with framework bindings #159). Each renderless component reads the enclosing consent store, gates only on the client, disposes with the component lifecycle, followsdef.idacross rerenders so inline definitions retain queued calls, and forwards the optionalonEventstream.Vue and Solid also export
useConsentStore()for passing the provider's stable store to core free functions such asgateScripts. Svelte already supports injecting a pre-created store withsetPolicyStackConsentContext({ store }).@policystack/svelte@1.3.0
Minor Changes
0d15fae: Vue, Solid, and Svelte now expose
<GatedScript def={...} />, completing framework-native support forgateScriptand the@policystack/scriptscatalogue (No way to reach the provider's ConsentStore — gateScript unusable with framework bindings #159). Each renderless component reads the enclosing consent store, gates only on the client, disposes with the component lifecycle, followsdef.idacross rerenders so inline definitions retain queued calls, and forwards the optionalonEventstream.Vue and Solid also export
useConsentStore()for passing the provider's stable store to core free functions such asgateScripts. Svelte already supports injecting a pre-created store withsetPolicyStackConsentContext({ store }).@policystack/vite@1.3.0
Minor Changes
aa2f390: Storage keys drop the pre-rebrand
oc_prefix, and the consent scanner now resolves aliasedConsentGateimports (Nits: oc_ storage-key branding leftovers; scanner misses aliased ConsentGate imports #161).localStorageAdapterandcookieAdapterboth default tops_consentinstead ofoc_consent(and the localStorage probe key is now__ps_probe__). No visitor is re-prompted: both adapters still read the old key when the new one is absent, so an existing decision keeps loading. The fallback is read-only — writes always go tops_consent— and is skipped entirely when you pass your ownkey/name. The one exception isclear(), which removes both keys; otherwise the fallback would resurrect a decision the visitor just withdrew.Two things to check if you touch the cookie name directly:
cookieAdapter().namenow returnsps_consent. Server code that reads the consent cookie should use that property rather than a hardcoded string.getSetCookieHeaders(record), which returns everySet-Cookieheader to emit — on clear that includes one expiring the legacy cookie. The existing singulargetSetCookieHeaderis unchanged and still covers only the canonical cookie, so clearing through it leavesoc_consentbehind.The Vite consent scanner previously treated a JSX element as a gate only when it was literally named
ConsentGate, soimport { ConsentGate as Gate }silently defeated gating detection and correctly-gated code was reported as ungated (a build failure undermode: "error"). Aliased imports and namespaced usage (import * as PS→<PS.ConsentGate>) resolving to a PolicyStack package are now recognised. This is purely additive — a bare<ConsentGate>with no import still counts, so local wrappers, barrel re-exports and auto-imports keep working and no previously-clean project starts failing.Patch Changes
@policystack/vue@1.3.0
Minor Changes
0d15fae: Vue, Solid, and Svelte now expose
<GatedScript def={...} />, completing framework-native support forgateScriptand the@policystack/scriptscatalogue (No way to reach the provider's ConsentStore — gateScript unusable with framework bindings #159). Each renderless component reads the enclosing consent store, gates only on the client, disposes with the component lifecycle, followsdef.idacross rerenders so inline definitions retain queued calls, and forwards the optionalonEventstream.Vue and Solid also export
useConsentStore()for passing the provider's stable store to core free functions such asgateScripts. Svelte already supports injecting a pre-created store withsetPolicyStackConsentContext({ store }).@policystack/cli@1.3.0
Patch Changes
@policystack/renderers@1.3.0
Patch Changes
@policystack/angular@1.3.0
@policystack/react@1.3.0
@policystack/sdk@1.3.0
astro-example@0.0.2
Patch Changes