@c15t/react 2.0.0-rc.2 → 2.0.0-rc.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/client/components/consent-banner.js +4 -0
- package/client/components/consent-dialog-link.js +3 -0
- package/client/components/consent-dialog-trigger.js +3 -0
- package/client/components/consent-dialog.js +4 -0
- package/client/components/consent-widget.js +4 -0
- package/client/components/frame.js +3 -0
- package/client/components/iab-consent-banner.js +4 -0
- package/client/components/iab-consent-dialog.js +4 -0
- package/dist/components/consent-dialog-link/index.cjs +1 -0
- package/dist/components/consent-dialog-link/index.d.ts +2 -0
- package/dist/components/consent-dialog-link/index.d.ts.map +1 -0
- package/dist/components/consent-dialog-link/index.js +1 -0
- package/dist/components/consent-dialog-trigger/atoms/button.cjs +1 -1
- package/dist/components/consent-dialog-trigger/atoms/button.d.ts.map +1 -1
- package/dist/components/consent-dialog-trigger/atoms/button.js +1 -1
- package/dist/components/consent-preferences-link/consent-preferences-link.cjs +1 -0
- package/dist/components/consent-preferences-link/consent-preferences-link.d.ts +16 -0
- package/dist/components/consent-preferences-link/consent-preferences-link.d.ts.map +1 -0
- package/dist/components/consent-preferences-link/consent-preferences-link.js +1 -0
- package/dist/components/consent-preferences-link/index.cjs +1 -0
- package/dist/components/consent-preferences-link/index.d.ts +2 -0
- package/dist/components/consent-preferences-link/index.d.ts.map +1 -0
- package/dist/components/consent-preferences-link/index.js +1 -0
- package/dist/components/iab-consent-dialog/iab-consent-dialog.d.ts +1 -1
- package/dist/components/shared/primitives/button.cjs +1 -1
- package/dist/components/shared/primitives/button.d.ts.map +1 -1
- package/dist/components/shared/primitives/button.js +1 -1
- package/dist/hooks/index.cjs +1 -1
- package/dist/hooks/use-consent-manager.cjs +1 -1
- package/dist/hooks/use-consent-manager.d.ts.map +1 -1
- package/dist/hooks/use-consent-manager.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/utils/theme-utils.d.ts +1 -1
- package/dist/utils/theme-utils.d.ts.map +1 -1
- package/dist/version.cjs +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +49 -6
- package/dist/components/__tests__/active-ui-transitions.e2e.test.cjs +0 -1
- package/dist/components/__tests__/active-ui-transitions.e2e.test.js +0 -1
- package/dist/components/__tests__/consent-flow.e2e.test.cjs +0 -1
- package/dist/components/__tests__/consent-flow.e2e.test.js +0 -1
- package/dist/components/__tests__/models-prop.e2e.test.cjs +0 -1
- package/dist/components/__tests__/models-prop.e2e.test.js +0 -1
- package/dist/components/__tests__/ui-source-tracking.e2e.test.cjs +0 -1
- package/dist/components/__tests__/ui-source-tracking.e2e.test.js +0 -1
- package/dist/components/iab/__tests__/e2e-setup.cjs +0 -1
- package/dist/components/iab/__tests__/e2e-setup.js +0 -1
- package/dist/components/iab/__tests__/fixtures/mock-consent-state.cjs +0 -1
- package/dist/components/iab/__tests__/fixtures/mock-consent-state.d.ts +0 -212
- package/dist/components/iab/__tests__/fixtures/mock-consent-state.d.ts.map +0 -1
- package/dist/components/iab/__tests__/fixtures/mock-consent-state.js +0 -1
- package/dist/components/iab/__tests__/iab-banner.e2e.test.cjs +0 -1
- package/dist/components/iab/__tests__/iab-banner.e2e.test.js +0 -1
- package/dist/components/iab/__tests__/iab-consent-flow.e2e.test.cjs +0 -1
- package/dist/components/iab/__tests__/iab-consent-flow.e2e.test.js +0 -1
- package/dist/components/iab/__tests__/iab-events.e2e.test.cjs +0 -1
- package/dist/components/iab/__tests__/iab-events.e2e.test.js +0 -1
- package/dist/components/iab/__tests__/iab-gvl.e2e.test.cjs +0 -1
- package/dist/components/iab/__tests__/iab-gvl.e2e.test.js +0 -1
- package/dist/components/iab/__tests__/iab-preference-center.e2e.test.cjs +0 -1
- package/dist/components/iab/__tests__/iab-preference-center.e2e.test.js +0 -1
- package/dist/components/iab/__tests__/iab-storage.e2e.test.cjs +0 -1
- package/dist/components/iab/__tests__/iab-storage.e2e.test.js +0 -1
- package/dist/components/iab/__tests__/iab-stub.e2e.test.cjs +0 -1
- package/dist/components/iab/__tests__/iab-stub.e2e.test.js +0 -1
- package/dist/components/iab/__tests__/iab-tcfapi.e2e.test.cjs +0 -1
- package/dist/components/iab/__tests__/iab-tcfapi.e2e.test.js +0 -1
- package/dist/components/iab/__tests__/msw-handlers.cjs +0 -1
- package/dist/components/iab/__tests__/msw-handlers.js +0 -1
- package/dist/components/iab-consent-banner/__tests__/iab-consent-banner.test.cjs +0 -1
- package/dist/components/iab-consent-banner/__tests__/iab-consent-banner.test.js +0 -1
- package/dist/components/iab-consent-dialog/__tests__/legitimate-interest-ui.test.cjs +0 -1
- package/dist/components/iab-consent-dialog/__tests__/legitimate-interest-ui.test.js +0 -1
- package/dist/components/iab-consent-dialog/__tests__/preference-center.test.cjs +0 -1
- package/dist/components/iab-consent-dialog/__tests__/preference-center.test.js +0 -1
- package/dist/components/iab-consent-dialog/__tests__/purposes-tab.test.cjs +0 -1
- package/dist/components/iab-consent-dialog/__tests__/purposes-tab.test.js +0 -1
- package/dist/components/iab-consent-dialog/__tests__/vendors-tab.test.cjs +0 -1
- package/dist/components/iab-consent-dialog/__tests__/vendors-tab.test.js +0 -1
- package/dist/components/shared/ui/__tests__/primitives.test.cjs +0 -1
- package/dist/components/shared/ui/__tests__/primitives.test.js +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-cleans-up-system-preference-listener-on-unmount-1.cjs +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-cleans-up-system-preference-listener-on-unmount-1.js +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-handles-default-theme-based-on-document-class-1.cjs +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-handles-default-theme-based-on-document-class-1.js +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-responds-to-system-preference-1.cjs +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-responds-to-system-preference-1.js +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-sets-dark-theme-correctly-1.cjs +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-sets-dark-theme-correctly-1.js +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-updates-theme-when-default-theme-changes-1.cjs +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-updates-theme-when-default-theme-changes-1.js +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-updates-theme-when-system-preference-changes-1.cjs +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-updates-theme-when-system-preference-changes-1.js +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-consent-manager.test.tsx/useConsentManager-provides-manager-object-when-configured-1.cjs +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-consent-manager.test.tsx/useConsentManager-provides-manager-object-when-configured-1.js +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-styles.test.tsx/useStyles-handles-string-className-correctly-1.cjs +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-styles.test.tsx/useStyles-handles-string-className-correctly-1.js +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-styles.test.tsx/useStyles-merges-theme-and-component-styles-correctly-1.cjs +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-styles.test.tsx/useStyles-merges-theme-and-component-styles-correctly-1.js +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-styles.test.tsx/useStyles-should-remove-base-default-styles-but-keep-theme-and-component-classNames-when-noStyle--true-1.cjs +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-styles.test.tsx/useStyles-should-remove-base-default-styles-but-keep-theme-and-component-classNames-when-noStyle--true-1.js +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-styles.test.tsx/useStyles-should-remove-default-styles-but-keep-custom-classNames-when-theme-object-provides-noStyle--true-1.cjs +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-styles.test.tsx/useStyles-should-remove-default-styles-but-keep-custom-classNames-when-theme-object-provides-noStyle--true-1.js +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-theme.test.tsx/useTheme-local-theme-takes-precedence-over-global-theme-1.cjs +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-theme.test.tsx/useTheme-local-theme-takes-precedence-over-global-theme-1.js +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-Custom-English-instead-of-English-when-German-is-selected-1.cjs +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-Custom-English-instead-of-English-when-German-is-selected-1.js +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-falls-back-to-English-when-selected-language-is-not-available-1.cjs +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-falls-back-to-English-when-selected-language-is-not-available-1.js +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-merges-custom-translations-with-defaults-1.cjs +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-merges-custom-translations-with-defaults-1.js +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-returns-English-translations-by-default-1.cjs +0 -1
- package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-returns-English-translations-by-default-1.js +0 -1
- package/dist/hooks/__tests__/use-color-scheme.test.cjs +0 -1
- package/dist/hooks/__tests__/use-color-scheme.test.js +0 -1
- package/dist/hooks/__tests__/use-consent-manager.test.cjs +0 -1
- package/dist/hooks/__tests__/use-consent-manager.test.js +0 -1
- package/dist/hooks/__tests__/use-focus-trap.test.cjs +0 -1
- package/dist/hooks/__tests__/use-focus-trap.test.js +0 -1
- package/dist/hooks/__tests__/use-scroll-lock.test.cjs +0 -1
- package/dist/hooks/__tests__/use-scroll-lock.test.js +0 -1
- package/dist/hooks/__tests__/use-styles.test.cjs +0 -1
- package/dist/hooks/__tests__/use-styles.test.js +0 -1
- package/dist/hooks/__tests__/use-theme.test.cjs +0 -1
- package/dist/hooks/__tests__/use-theme.test.js +0 -1
- package/dist/hooks/__tests__/use-translations.test.cjs +0 -1
- package/dist/hooks/__tests__/use-translations.test.js +0 -1
- package/dist/mockServiceWorker.js +0 -349
- package/dist/providers/__tests__/__screenshots__/provider-basic.test.tsx/ConsentManagerProvider-Basic-Request-Behavior-should-make-a-new-request-when-core-options-change-1.cjs +0 -1
- package/dist/providers/__tests__/__screenshots__/provider-basic.test.tsx/ConsentManagerProvider-Basic-Request-Behavior-should-make-a-new-request-when-core-options-change-1.js +0 -1
- package/dist/providers/__tests__/__screenshots__/provider-basic.test.tsx/ConsentManagerProvider-Basic-Request-Behavior-should-not-make-additional-requests-when-props-change-but-core-options-remain-same-1.cjs +0 -1
- package/dist/providers/__tests__/__screenshots__/provider-basic.test.tsx/ConsentManagerProvider-Basic-Request-Behavior-should-not-make-additional-requests-when-props-change-but-core-options-remain-same-1.js +0 -1
- package/dist/providers/__tests__/__screenshots__/provider-basic.test.tsx/ConsentManagerProvider-Basic-Request-Behavior-should-only-make-one-initial-request-for-consent-banner-status-1.cjs +0 -1
- package/dist/providers/__tests__/__screenshots__/provider-basic.test.tsx/ConsentManagerProvider-Basic-Request-Behavior-should-only-make-one-initial-request-for-consent-banner-status-1.js +0 -1
- package/dist/providers/__tests__/__screenshots__/provider-hydration.test.tsx/ConsentManagerProvider-Hydration-Behavior-should-handle-rapid-re-renders-without-blocking-children-1.cjs +0 -1
- package/dist/providers/__tests__/__screenshots__/provider-hydration.test.tsx/ConsentManagerProvider-Hydration-Behavior-should-handle-rapid-re-renders-without-blocking-children-1.js +0 -1
- package/dist/providers/__tests__/__screenshots__/provider-hydration.test.tsx/ConsentManagerProvider-Hydration-Behavior-should-not-block-SSR-provider-content-when-SSR-provider-wraps-ConsentManager-1.cjs +0 -1
- package/dist/providers/__tests__/__screenshots__/provider-hydration.test.tsx/ConsentManagerProvider-Hydration-Behavior-should-not-block-SSR-provider-content-when-SSR-provider-wraps-ConsentManager-1.js +0 -1
- package/dist/providers/__tests__/__screenshots__/provider-hydration.test.tsx/ConsentManagerProvider-Hydration-Behavior-should-render-children-immediately-without-blocking-during-hydration-1.cjs +0 -1
- package/dist/providers/__tests__/__screenshots__/provider-hydration.test.tsx/ConsentManagerProvider-Hydration-Behavior-should-render-children-immediately-without-blocking-during-hydration-1.js +0 -1
- package/dist/providers/__tests__/__screenshots__/provider-hydration.test.tsx/ConsentManagerProvider-Hydration-Behavior-should-use-startTransition-for-non-blocking-state-updates-during-hydration-1.cjs +0 -1
- package/dist/providers/__tests__/__screenshots__/provider-hydration.test.tsx/ConsentManagerProvider-Hydration-Behavior-should-use-startTransition-for-non-blocking-state-updates-during-hydration-1.js +0 -1
- package/dist/providers/__tests__/provider-basic.test.cjs +0 -1
- package/dist/providers/__tests__/provider-basic.test.js +0 -1
- package/dist/providers/__tests__/provider-context.test.cjs +0 -1
- package/dist/providers/__tests__/provider-context.test.js +0 -1
- package/dist/providers/__tests__/provider-errors.test.cjs +0 -1
- package/dist/providers/__tests__/provider-errors.test.js +0 -1
- package/dist/providers/__tests__/provider-hydration.test.cjs +0 -1
- package/dist/providers/__tests__/provider-hydration.test.js +0 -1
- package/dist/providers/__tests__/test-helpers.cjs +0 -1
- package/dist/providers/__tests__/test-helpers.js +0 -1
- package/dist/server/headers.test.cjs +0 -1
- package/dist/server/headers.test.d.ts +0 -2
- package/dist/server/headers.test.d.ts.map +0 -1
- package/dist/server/headers.test.js +0 -1
- package/dist/server/normalize-url.test.cjs +0 -1
- package/dist/server/normalize-url.test.d.ts +0 -2
- package/dist/server/normalize-url.test.d.ts.map +0 -1
- package/dist/server/normalize-url.test.js +0 -1
- package/dist/static/image/ConsentManagerProvider-Basic-Request-Behavior-should-make-a-new-request-when-core-options-change-1.png +0 -0
- package/dist/static/image/ConsentManagerProvider-Basic-Request-Behavior-should-not-make-additional-requests-when-props-change-but-core-options-remain-same-1.png +0 -0
- package/dist/static/image/ConsentManagerProvider-Basic-Request-Behavior-should-only-make-one-initial-request-for-consent-banner-status-1.png +0 -0
- package/dist/static/image/ConsentManagerProvider-Hydration-Behavior-should-handle-rapid-re-renders-without-blocking-children-1.png +0 -0
- package/dist/static/image/ConsentManagerProvider-Hydration-Behavior-should-not-block-SSR-provider-content-when-SSR-provider-wraps-ConsentManager-1.png +0 -0
- package/dist/static/image/ConsentManagerProvider-Hydration-Behavior-should-render-children-immediately-without-blocking-during-hydration-1.png +0 -0
- package/dist/static/image/ConsentManagerProvider-Hydration-Behavior-should-use-startTransition-for-non-blocking-state-updates-during-hydration-1.png +0 -0
- package/dist/static/image/useColorScheme-cleans-up-system-preference-listener-on-unmount-1.png +0 -0
- package/dist/static/image/useColorScheme-handles-default-theme-based-on-document-class-1.png +0 -0
- package/dist/static/image/useColorScheme-responds-to-system-preference-1.png +0 -0
- package/dist/static/image/useColorScheme-sets-dark-theme-correctly-1.png +0 -0
- package/dist/static/image/useColorScheme-updates-theme-when-default-theme-changes-1.png +0 -0
- package/dist/static/image/useColorScheme-updates-theme-when-system-preference-changes-1.png +0 -0
- package/dist/static/image/useConsentManager-provides-manager-object-when-configured-1.png +0 -0
- package/dist/static/image/useStyles-handles-string-className-correctly-1.png +0 -0
- package/dist/static/image/useStyles-merges-theme-and-component-styles-correctly-1.png +0 -0
- package/dist/static/image/useStyles-should-remove-base-default-styles-but-keep-theme-and-component-classNames-when-noStyle--true-1.png +0 -0
- package/dist/static/image/useStyles-should-remove-default-styles-but-keep-custom-classNames-when-theme-object-provides-noStyle--true-1.png +0 -0
- package/dist/static/image/useTheme-local-theme-takes-precedence-over-global-theme-1.png +0 -0
- package/dist/static/image/useTranslations-Custom-English-instead-of-English-when-German-is-selected-1.png +0 -0
- package/dist/static/image/useTranslations-falls-back-to-English-when-selected-language-is-not-available-1.png +0 -0
- package/dist/static/image/useTranslations-merges-custom-translations-with-defaults-1.png +0 -0
- package/dist/static/image/useTranslations-returns-English-translations-by-default-1.png +0 -0
- package/dist/test-setup.browser.cjs +0 -1
- package/dist/test-setup.browser.d.ts +0 -8
- package/dist/test-setup.browser.d.ts.map +0 -1
- package/dist/test-setup.browser.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";const __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_modules__={"./src/providers/__tests__/__screenshots__/provider-hydration.test.tsx/ConsentManagerProvider-Hydration-Behavior-should-use-startTransition-for-non-blocking-state-updates-during-hydration-1.png"(e){e.exports=require("../../../../static/image/ConsentManagerProvider-Hydration-Behavior-should-use-startTransition-for-non-blocking-state-updates-during-hydration-1.png")}},__webpack_module_cache__={};function __webpack_require__(e){var _=__webpack_module_cache__[e];if(void 0!==_)return _.exports;var r=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](r,r.exports,__webpack_require__),r.exports}var __webpack_exports__=__webpack_require__("./src/providers/__tests__/__screenshots__/provider-hydration.test.tsx/ConsentManagerProvider-Hydration-Behavior-should-use-startTransition-for-non-blocking-state-updates-during-hydration-1.png");for(var __rspack_i in exports.default=__webpack_exports__.default,__webpack_exports__)-1===["default"].indexOf(__rspack_i)&&(exports[__rspack_i]=__webpack_exports__[__rspack_i]);Object.defineProperty(exports,"__esModule",{value:!0});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import a from"../../../../static/image/ConsentManagerProvider-Hydration-Behavior-should-use-startTransition-for-non-blocking-state-updates-during-hydration-1.png";export{a as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";const __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_exports__={};const jsx_runtime_namespaceObject=require("react/jsx-runtime"),external_c15t_namespaceObject=require("c15t"),external_vitest_namespaceObject=require("vitest"),external_vitest_browser_react_namespaceObject=require("vitest-browser-react"),external_index_cjs_namespaceObject=require("../../index.cjs"),mockFetch=external_vitest_namespaceObject.vi.fn();for(var __rspack_i in window.fetch=mockFetch,(0,external_vitest_namespaceObject.describe)("ConsentManagerProvider Basic Request Behavior",()=>{(0,external_vitest_namespaceObject.beforeEach)(()=>{external_vitest_namespaceObject.vi.resetAllMocks(),external_vitest_namespaceObject.vi.useFakeTimers(),mockFetch.mockResolvedValue(new Response(JSON.stringify({showConsentBanner:!0,jurisdiction:{code:"GDPR"},translations:{language:"en",translations:external_c15t_namespaceObject.defaultTranslationConfig.translations.en}}),{status:200,headers:{"Content-Type":"application/json"}}))}),(0,external_vitest_namespaceObject.afterEach)(()=>{external_vitest_namespaceObject.vi.clearAllMocks(),external_vitest_namespaceObject.vi.useRealTimers()}),(0,external_vitest_namespaceObject.it)("should only make one initial request for consent banner status",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsx)(external_index_cjs_namespaceObject.ConsentManagerProvider,{options:{mode:"c15t",backendURL:"/api/c15t"},children:(0,jsx_runtime_namespaceObject.jsx)("div",{children:"Test Component"})})),await external_vitest_namespaceObject.vi.runAllTimersAsync(),(0,external_vitest_namespaceObject.expect)(mockFetch).toHaveBeenCalledTimes(1),(0,external_vitest_namespaceObject.expect)(mockFetch).toHaveBeenCalledWith(external_vitest_namespaceObject.expect.stringContaining("/api/c15t/init"),external_vitest_namespaceObject.expect.any(Object))}),(0,external_vitest_namespaceObject.it)("should not make additional requests when props change but core options remain same",async()=>{mockFetch.mockClear();let{rerender:e}=await (0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsx)(external_index_cjs_namespaceObject.ConsentManagerProvider,{options:{mode:"offline",theme:{slots:{bannerCard:"light"}}},children:(0,jsx_runtime_namespaceObject.jsx)("div",{children:"Light theme"})}));await external_vitest_namespaceObject.vi.runAllTimersAsync(),(0,external_vitest_namespaceObject.expect)(mockFetch).not.toHaveBeenCalled(),e((0,jsx_runtime_namespaceObject.jsx)(external_index_cjs_namespaceObject.ConsentManagerProvider,{options:{mode:"offline",theme:{slots:{bannerCard:"dark"}}},children:(0,jsx_runtime_namespaceObject.jsx)("div",{children:"Dark theme"})})),await external_vitest_namespaceObject.vi.runAllTimersAsync(),(0,external_vitest_namespaceObject.expect)(mockFetch).not.toHaveBeenCalled()}),(0,external_vitest_namespaceObject.it)("should make a new request when core options change",async()=>{let{rerender:e}=await (0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsx)(external_index_cjs_namespaceObject.ConsentManagerProvider,{options:{mode:"c15t",backendURL:"/api/c15t-1"},children:(0,jsx_runtime_namespaceObject.jsx)("div",{children:"First URL"})}));await external_vitest_namespaceObject.vi.runAllTimersAsync(),(0,external_vitest_namespaceObject.expect)(mockFetch).toHaveBeenCalledTimes(1),(0,external_vitest_namespaceObject.expect)(mockFetch).toHaveBeenCalledWith(external_vitest_namespaceObject.expect.stringContaining("/api/c15t-1/init"),external_vitest_namespaceObject.expect.any(Object)),mockFetch.mockClear(),e((0,jsx_runtime_namespaceObject.jsx)(external_index_cjs_namespaceObject.ConsentManagerProvider,{options:{mode:"c15t",backendURL:"/api/c15t-2"},children:(0,jsx_runtime_namespaceObject.jsx)("div",{children:"Second URL"})})),await external_vitest_namespaceObject.vi.runAllTimersAsync(),(0,external_vitest_namespaceObject.expect)(mockFetch).toHaveBeenCalledWith(external_vitest_namespaceObject.expect.stringContaining("/api/c15t-2/init"),external_vitest_namespaceObject.expect.any(Object))}),(0,external_vitest_namespaceObject.it)("should handle rapid re-renders without making duplicate requests",async()=>{mockFetch.mockClear();let{rerender:e}=await (0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsx)(external_index_cjs_namespaceObject.ConsentManagerProvider,{options:{mode:"offline"},children:(0,jsx_runtime_namespaceObject.jsx)("div",{children:"Counter: 0"})}));await external_vitest_namespaceObject.vi.runAllTimersAsync(),(0,external_vitest_namespaceObject.expect)(mockFetch).not.toHaveBeenCalled();for(let t=1;t<=5;t++)e((0,jsx_runtime_namespaceObject.jsx)(external_index_cjs_namespaceObject.ConsentManagerProvider,{options:{mode:"offline"},children:(0,jsx_runtime_namespaceObject.jsxs)("div",{children:["Counter: ",t]})})),await external_vitest_namespaceObject.vi.runAllTimersAsync();(0,external_vitest_namespaceObject.expect)(mockFetch).not.toHaveBeenCalled()})}),__webpack_exports__)exports[__rspack_i]=__webpack_exports__[__rspack_i];Object.defineProperty(exports,"__esModule",{value:!0});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{jsx as e,jsxs as n}from"react/jsx-runtime";import{defaultTranslationConfig as t}from"c15t";import{afterEach as i,beforeEach as a,describe as o,expect as r,it as s,vi as l}from"vitest";import{render as c}from"vitest-browser-react";import{ConsentManagerProvider as d}from"../../index.js";let m=l.fn();window.fetch=m,o("ConsentManagerProvider Basic Request Behavior",()=>{a(()=>{l.resetAllMocks(),l.useFakeTimers(),m.mockResolvedValue(new Response(JSON.stringify({showConsentBanner:!0,jurisdiction:{code:"GDPR"},translations:{language:"en",translations:t.translations.en}}),{status:200,headers:{"Content-Type":"application/json"}}))}),i(()=>{l.clearAllMocks(),l.useRealTimers()}),s("should only make one initial request for consent banner status",async()=>{c(e(d,{options:{mode:"c15t",backendURL:"/api/c15t"},children:e("div",{children:"Test Component"})})),await l.runAllTimersAsync(),r(m).toHaveBeenCalledTimes(1),r(m).toHaveBeenCalledWith(r.stringContaining("/api/c15t/init"),r.any(Object))}),s("should not make additional requests when props change but core options remain same",async()=>{m.mockClear();let{rerender:n}=await c(e(d,{options:{mode:"offline",theme:{slots:{bannerCard:"light"}}},children:e("div",{children:"Light theme"})}));await l.runAllTimersAsync(),r(m).not.toHaveBeenCalled(),n(e(d,{options:{mode:"offline",theme:{slots:{bannerCard:"dark"}}},children:e("div",{children:"Dark theme"})})),await l.runAllTimersAsync(),r(m).not.toHaveBeenCalled()}),s("should make a new request when core options change",async()=>{let{rerender:n}=await c(e(d,{options:{mode:"c15t",backendURL:"/api/c15t-1"},children:e("div",{children:"First URL"})}));await l.runAllTimersAsync(),r(m).toHaveBeenCalledTimes(1),r(m).toHaveBeenCalledWith(r.stringContaining("/api/c15t-1/init"),r.any(Object)),m.mockClear(),n(e(d,{options:{mode:"c15t",backendURL:"/api/c15t-2"},children:e("div",{children:"Second URL"})})),await l.runAllTimersAsync(),r(m).toHaveBeenCalledWith(r.stringContaining("/api/c15t-2/init"),r.any(Object))}),s("should handle rapid re-renders without making duplicate requests",async()=>{m.mockClear();let{rerender:t}=await c(e(d,{options:{mode:"offline"},children:e("div",{children:"Counter: 0"})}));await l.runAllTimersAsync(),r(m).not.toHaveBeenCalled();for(let i=1;i<=5;i++)t(e(d,{options:{mode:"offline"},children:n("div",{children:["Counter: ",i]})})),await l.runAllTimersAsync();r(m).not.toHaveBeenCalled()})});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";const __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_exports__={};const jsx_runtime_namespaceObject=require("react/jsx-runtime"),external_vitest_namespaceObject=require("vitest"),external_vitest_browser_react_namespaceObject=require("vitest-browser-react"),use_consent_manager_cjs_namespaceObject=require("../../hooks/use-consent-manager.cjs"),external_consent_manager_provider_cjs_namespaceObject=require("../consent-manager-provider.cjs"),external_test_helpers_cjs_namespaceObject=require("./test-helpers.cjs");(0,external_test_helpers_cjs_namespaceObject.setupMocks)();const modifyContextActiveUI=external_vitest_namespaceObject.vi.fn();for(var __rspack_i in external_vitest_namespaceObject.vi.mock("../../hooks/use-consent-manager",async()=>{let e=await external_vitest_namespaceObject.vi.importActual("../../hooks/use-consent-manager");return{...e,useConsentManager:()=>{let t=e.useConsentManager();return t.activeUI="banner",modifyContextActiveUI(),t}}}),(0,external_vitest_namespaceObject.describe)("ConsentManagerProvider Context Values",()=>{(0,external_vitest_namespaceObject.beforeEach)(()=>{external_vitest_namespaceObject.vi.resetAllMocks(),external_vitest_namespaceObject.vi.useFakeTimers(),(0,external_consent_manager_provider_cjs_namespaceObject.clearConsentRuntimeCache)()}),(0,external_vitest_namespaceObject.afterEach)(()=>{external_vitest_namespaceObject.vi.clearAllMocks(),external_vitest_namespaceObject.vi.useRealTimers()}),(0,external_vitest_namespaceObject.it)("should provide correct context values to children",async()=>{let{getByTestId:e}=await (0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsx)(external_consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:{mode:"offline",theme:{slots:{bannerCard:"dark"}}},children:(0,jsx_runtime_namespaceObject.jsx)(()=>{let e=(0,use_consent_manager_cjs_namespaceObject.useConsentManager)();return(0,jsx_runtime_namespaceObject.jsxs)("div",{children:[(0,jsx_runtime_namespaceObject.jsx)("div",{"data-testid":"has-manager",children:(!!e.manager).toString()}),(0,jsx_runtime_namespaceObject.jsx)("div",{"data-testid":"active-ui",children:"banner"===e.activeUI?"true":"false"}),(0,jsx_runtime_namespaceObject.jsx)("div",{"data-testid":"debug-state",children:JSON.stringify({activeUI:e.activeUI})})]})},{})}));await external_vitest_namespaceObject.vi.runAllTimersAsync(),(0,external_vitest_namespaceObject.expect)(modifyContextActiveUI).toHaveBeenCalled(),await external_vitest_namespaceObject.vi.waitFor(()=>{(0,external_vitest_namespaceObject.expect)(e("has-manager")).toHaveTextContent("true"),(0,external_vitest_namespaceObject.expect)(e("active-ui")).toHaveTextContent("true")},{timeout:3e3})})}),__webpack_exports__)exports[__rspack_i]=__webpack_exports__[__rspack_i];Object.defineProperty(exports,"__esModule",{value:!0});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{jsx as e,jsxs as t}from"react/jsx-runtime";import{afterEach as r,beforeEach as a,describe as n,expect as o,it as s,vi as i}from"vitest";import{render as c}from"vitest-browser-react";import{useConsentManager as l}from"../../hooks/use-consent-manager.js";import{ConsentManagerProvider as m,clearConsentRuntimeCache as d}from"../consent-manager-provider.js";import{setupMocks as u}from"./test-helpers.js";u();let v=i.fn();i.mock("../../hooks/use-consent-manager",async()=>{let e=await i.importActual("../../hooks/use-consent-manager");return{...e,useConsentManager:()=>{let t=e.useConsentManager();return t.activeUI="banner",v(),t}}}),n("ConsentManagerProvider Context Values",()=>{a(()=>{i.resetAllMocks(),i.useFakeTimers(),d()}),r(()=>{i.clearAllMocks(),i.useRealTimers()}),s("should provide correct context values to children",async()=>{let{getByTestId:r}=await c(e(m,{options:{mode:"offline",theme:{slots:{bannerCard:"dark"}}},children:e(()=>{let r=l();return t("div",{children:[e("div",{"data-testid":"has-manager",children:(!!r.manager).toString()}),e("div",{"data-testid":"active-ui",children:"banner"===r.activeUI?"true":"false"}),e("div",{"data-testid":"debug-state",children:JSON.stringify({activeUI:r.activeUI})})]})},{})}));await i.runAllTimersAsync(),o(v).toHaveBeenCalled(),await i.waitFor(()=>{o(r("has-manager")).toHaveTextContent("true"),o(r("active-ui")).toHaveTextContent("true")},{timeout:3e3})})});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";const __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_exports__={};const jsx_runtime_namespaceObject=require("react/jsx-runtime"),external_vitest_namespaceObject=require("vitest"),external_vitest_browser_react_namespaceObject=require("vitest-browser-react"),use_consent_manager_cjs_namespaceObject=require("../../hooks/use-consent-manager.cjs"),external_consent_manager_provider_cjs_namespaceObject=require("../consent-manager-provider.cjs"),external_test_helpers_cjs_namespaceObject=require("./test-helpers.cjs"),{mockFetch:e}=(0,external_test_helpers_cjs_namespaceObject.setupMocks)();for(var __rspack_i in(0,external_vitest_namespaceObject.describe)("ConsentManagerProvider Error Handling",()=>{(0,external_vitest_namespaceObject.beforeEach)(()=>{external_vitest_namespaceObject.vi.resetAllMocks(),e.mockResolvedValueOnce(new Response(JSON.stringify({error:"API error"}),{status:500,headers:{"Content-Type":"application/json"}}))}),(0,external_vitest_namespaceObject.afterEach)(()=>{external_vitest_namespaceObject.vi.clearAllMocks()}),(0,external_vitest_namespaceObject.it)("should handle errors from API responses",async()=>{let{getByTestId:t}=await (0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsx)(external_consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:{mode:"c15t",backendURL:"/api/c15t"},children:(0,jsx_runtime_namespaceObject.jsx)(()=>{let e=(0,use_consent_manager_cjs_namespaceObject.useConsentManager)();return(0,jsx_runtime_namespaceObject.jsx)("div",{"data-testid":"request-state",children:e.manager?"Manager Ready":"Manager Not Ready"})},{})}));await external_vitest_namespaceObject.vi.waitFor(()=>{let e=t("request-state");(0,external_vitest_namespaceObject.expect)(e).toHaveTextContent(/Manager (Not )?Ready/)}),(0,external_vitest_namespaceObject.expect)(e).toHaveBeenCalledTimes(1)})}),__webpack_exports__)exports[__rspack_i]=__webpack_exports__[__rspack_i];Object.defineProperty(exports,"__esModule",{value:!0});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import{afterEach as r,beforeEach as t,describe as o,expect as a,it as s,vi as n}from"vitest";import{render as i}from"vitest-browser-react";import{useConsentManager as m}from"../../hooks/use-consent-manager.js";import{ConsentManagerProvider as d}from"../consent-manager-provider.js";import{setupMocks as l}from"./test-helpers.js";let{mockFetch:c}=l();o("ConsentManagerProvider Error Handling",()=>{t(()=>{n.resetAllMocks(),c.mockResolvedValueOnce(new Response(JSON.stringify({error:"API error"}),{status:500,headers:{"Content-Type":"application/json"}}))}),r(()=>{n.clearAllMocks()}),s("should handle errors from API responses",async()=>{let{getByTestId:r}=await i(e(d,{options:{mode:"c15t",backendURL:"/api/c15t"},children:e(()=>e("div",{"data-testid":"request-state",children:m().manager?"Manager Ready":"Manager Not Ready"}),{})}));await n.waitFor(()=>{a(r("request-state")).toHaveTextContent(/Manager (Not )?Ready/)}),a(c).toHaveBeenCalledTimes(1)})});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";const __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_exports__={};const jsx_runtime_namespaceObject=require("react/jsx-runtime"),external_vitest_namespaceObject=require("vitest"),external_vitest_browser_react_namespaceObject=require("vitest-browser-react"),external_consent_manager_provider_cjs_namespaceObject=require("../consent-manager-provider.cjs"),MockSSRProvider=({children:e})=>(0,jsx_runtime_namespaceObject.jsx)("div",{"data-testid":"ssr-provider",children:e}),RenderTracker=({label:e})=>(0,jsx_runtime_namespaceObject.jsx)("div",{"data-testid":`render-${e}`,children:e});for(var __rspack_i in(0,external_vitest_namespaceObject.describe)("ConsentManagerProvider Hydration Behavior",()=>{(0,external_vitest_namespaceObject.beforeEach)(()=>{external_vitest_namespaceObject.vi.resetAllMocks(),external_vitest_namespaceObject.vi.useFakeTimers(),(0,external_consent_manager_provider_cjs_namespaceObject.clearConsentRuntimeCache)()}),(0,external_vitest_namespaceObject.afterEach)(()=>{external_vitest_namespaceObject.vi.clearAllMocks(),external_vitest_namespaceObject.vi.useRealTimers()}),(0,external_vitest_namespaceObject.it)("should render children immediately without blocking during hydration",async()=>{let{getByTestId:e}=await (0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsx)(external_consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:{mode:"offline",consentCategories:["necessary","marketing"]},children:(0,jsx_runtime_namespaceObject.jsx)(RenderTracker,{label:"child"})}));(0,external_vitest_namespaceObject.expect)(e("render-child")).toBeInTheDocument(),(0,external_vitest_namespaceObject.expect)(e("render-child")).toHaveTextContent("child"),await external_vitest_namespaceObject.vi.runAllTimersAsync(),(0,external_vitest_namespaceObject.expect)(e("render-child")).toBeInTheDocument()}),(0,external_vitest_namespaceObject.it)("should not block SSR provider content when ConsentManager wraps SSR provider",async()=>{let{getByTestId:e}=await (0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsx)(external_consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:{mode:"offline",consentCategories:["necessary","marketing"]},children:(0,jsx_runtime_namespaceObject.jsx)(MockSSRProvider,{children:(0,jsx_runtime_namespaceObject.jsx)(RenderTracker,{label:"ssr-content"})})}));(0,external_vitest_namespaceObject.expect)(e("ssr-provider")).toBeInTheDocument(),(0,external_vitest_namespaceObject.expect)(e("render-ssr-content")).toBeInTheDocument(),(0,external_vitest_namespaceObject.expect)(e("render-ssr-content")).toHaveTextContent("ssr-content"),await external_vitest_namespaceObject.vi.runAllTimersAsync(),(0,external_vitest_namespaceObject.expect)(e("ssr-provider")).toBeInTheDocument(),(0,external_vitest_namespaceObject.expect)(e("render-ssr-content")).toBeInTheDocument()}),(0,external_vitest_namespaceObject.it)("should not block SSR provider content when SSR provider wraps ConsentManager",async()=>{let{getByTestId:e}=await (0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsx)(MockSSRProvider,{children:(0,jsx_runtime_namespaceObject.jsx)(external_consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:{mode:"offline",consentCategories:["necessary","marketing"]},children:(0,jsx_runtime_namespaceObject.jsx)(RenderTracker,{label:"nested-content"})})}));(0,external_vitest_namespaceObject.expect)(e("ssr-provider")).toBeInTheDocument(),(0,external_vitest_namespaceObject.expect)(e("render-nested-content")).toBeInTheDocument(),(0,external_vitest_namespaceObject.expect)(e("render-nested-content")).toHaveTextContent("nested-content"),await external_vitest_namespaceObject.vi.runAllTimersAsync(),(0,external_vitest_namespaceObject.expect)(e("ssr-provider")).toBeInTheDocument(),(0,external_vitest_namespaceObject.expect)(e("render-nested-content")).toBeInTheDocument()}),(0,external_vitest_namespaceObject.it)("should handle rapid re-renders without blocking children",async()=>{let{rerender:e,getByTestId:t}=await (0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsx)(external_consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:{mode:"offline",consentCategories:["necessary"]},children:(0,jsx_runtime_namespaceObject.jsx)(RenderTracker,{label:"rapid-render"})}));(0,external_vitest_namespaceObject.expect)(t("render-rapid-render")).toBeInTheDocument();for(let n=0;n<3;n++)e((0,jsx_runtime_namespaceObject.jsx)(external_consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:{mode:"offline",consentCategories:["necessary","marketing"]},children:(0,jsx_runtime_namespaceObject.jsx)(RenderTracker,{label:"rapid-render"})})),(0,external_vitest_namespaceObject.expect)(t("render-rapid-render")).toBeInTheDocument(),await external_vitest_namespaceObject.vi.runAllTimersAsync()}),(0,external_vitest_namespaceObject.it)("should use startTransition for non-blocking state updates during hydration",async()=>{let e=!1,{getByTestId:t}=await (0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsx)(external_consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:{mode:"offline",consentCategories:["necessary"]},children:(0,jsx_runtime_namespaceObject.jsx)(()=>(e=!0,(0,jsx_runtime_namespaceObject.jsx)("div",{"data-testid":"hydration-test",children:"Content"})),{})}));(0,external_vitest_namespaceObject.expect)(e).toBe(!0),(0,external_vitest_namespaceObject.expect)(t("hydration-test")).toBeInTheDocument(),await external_vitest_namespaceObject.vi.runAllTimersAsync(),(0,external_vitest_namespaceObject.expect)(t("hydration-test")).toBeInTheDocument()})}),__webpack_exports__)exports[__rspack_i]=__webpack_exports__[__rspack_i];Object.defineProperty(exports,"__esModule",{value:!0});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import{afterEach as n,beforeEach as t,describe as r,expect as o,it as s,vi as i}from"vitest";import{render as a}from"vitest-browser-react";import{ConsentManagerProvider as d,clearConsentRuntimeCache as c}from"../consent-manager-provider.js";let l=({children:n})=>e("div",{"data-testid":"ssr-provider",children:n}),h=({label:n})=>e("div",{"data-testid":`render-${n}`,children:n});r("ConsentManagerProvider Hydration Behavior",()=>{t(()=>{i.resetAllMocks(),i.useFakeTimers(),c()}),n(()=>{i.clearAllMocks(),i.useRealTimers()}),s("should render children immediately without blocking during hydration",async()=>{let{getByTestId:n}=await a(e(d,{options:{mode:"offline",consentCategories:["necessary","marketing"]},children:e(h,{label:"child"})}));o(n("render-child")).toBeInTheDocument(),o(n("render-child")).toHaveTextContent("child"),await i.runAllTimersAsync(),o(n("render-child")).toBeInTheDocument()}),s("should not block SSR provider content when ConsentManager wraps SSR provider",async()=>{let{getByTestId:n}=await a(e(d,{options:{mode:"offline",consentCategories:["necessary","marketing"]},children:e(l,{children:e(h,{label:"ssr-content"})})}));o(n("ssr-provider")).toBeInTheDocument(),o(n("render-ssr-content")).toBeInTheDocument(),o(n("render-ssr-content")).toHaveTextContent("ssr-content"),await i.runAllTimersAsync(),o(n("ssr-provider")).toBeInTheDocument(),o(n("render-ssr-content")).toBeInTheDocument()}),s("should not block SSR provider content when SSR provider wraps ConsentManager",async()=>{let{getByTestId:n}=await a(e(l,{children:e(d,{options:{mode:"offline",consentCategories:["necessary","marketing"]},children:e(h,{label:"nested-content"})})}));o(n("ssr-provider")).toBeInTheDocument(),o(n("render-nested-content")).toBeInTheDocument(),o(n("render-nested-content")).toHaveTextContent("nested-content"),await i.runAllTimersAsync(),o(n("ssr-provider")).toBeInTheDocument(),o(n("render-nested-content")).toBeInTheDocument()}),s("should handle rapid re-renders without blocking children",async()=>{let{rerender:n,getByTestId:t}=await a(e(d,{options:{mode:"offline",consentCategories:["necessary"]},children:e(h,{label:"rapid-render"})}));o(t("render-rapid-render")).toBeInTheDocument();for(let r=0;r<3;r++)n(e(d,{options:{mode:"offline",consentCategories:["necessary","marketing"]},children:e(h,{label:"rapid-render"})})),o(t("render-rapid-render")).toBeInTheDocument(),await i.runAllTimersAsync()}),s("should use startTransition for non-blocking state updates during hydration",async()=>{let n=!1,{getByTestId:t}=await a(e(d,{options:{mode:"offline",consentCategories:["necessary"]},children:e(()=>(n=!0,e("div",{"data-testid":"hydration-test",children:"Content"})),{})}));o(n).toBe(!0),o(t("hydration-test")).toBeInTheDocument(),await i.runAllTimersAsync(),o(t("hydration-test")).toBeInTheDocument()})});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";const __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,n)=>{for(var t in n)__webpack_require__.o(n,t)&&!__webpack_require__.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},__webpack_require__.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{TestConsumer:()=>TestConsumer,setupMocks:()=>setupMocks});const jsx_runtime_namespaceObject=require("react/jsx-runtime"),external_vitest_namespaceObject=require("vitest"),external_index_cjs_namespaceObject=require("../../index.cjs");function setupMocks(){let e=external_vitest_namespaceObject.vi.fn();window.fetch=e;let n=external_vitest_namespaceObject.vi.fn(),t=new Map,r=new Map;return(0,external_vitest_namespaceObject.beforeEach)(()=>{t.clear(),r.clear()}),external_vitest_namespaceObject.vi.mock("c15t",async()=>{let s=await external_vitest_namespaceObject.vi.importActual("c15t"),{createConsentManagerStore:a}=s,o=r=>{n(r);let s=r.backendURL||"";if("c15t"===r.mode)return{getCallbacks:()=>r.callbacks,showConsentBanner:async()=>(t.has(s)||(e(`${s}/init`,{headers:{"Content-Type":"application/json"}}),t.set(s,!0)),{ok:!0,data:{showConsentBanner:!0},error:null,response:null}),setConsent:async()=>({ok:!0,data:{success:!0},error:null,response:null}),verifyConsent:async()=>({ok:!0,data:{valid:!0},error:null,response:null})};if("offline"===r.mode)return{getCallbacks:()=>r.callbacks,showConsentBanner:async()=>({ok:!0,data:{showConsentBanner:!0},error:null,response:null}),setConsent:async()=>({ok:!0,data:{success:!0},error:null,response:null}),verifyConsent:async()=>({ok:!0,data:{valid:!0},error:null,response:null})};if("custom"===r.mode&&"endpointHandlers"in r){let e=r.endpointHandlers;return{getCallbacks:()=>r.callbacks,init:async()=>e?.init?.({}),setConsent:async n=>e.setConsent({body:n}),verifyConsent:async n=>e.verifyConsent({body:n})}}return{getCallbacks:()=>r.callbacks,init:async()=>({ok:!0,data:{jurisdiction:"GDPR",location:{countryCode:"GB",regionCode:null},translations:{language:"en",translations:{}},branding:"c15t"},error:null,response:null}),setConsent:async()=>({ok:!0,data:{success:!0},error:null,response:null}),verifyConsent:async()=>({ok:!0,data:{valid:!0},error:null,response:null})}};return{...s,configureConsentManager:o,getOrCreateConsentRuntime:(e,n)=>{let t=e.mode||"c15t",s="backendURL"in e?e.backendURL:void 0,c=`${t}:${s??"default"}`,_=r.get(c);if(_)return{..._,cacheKey:c};let i=o({...e,mode:t,..."c15t"===t?{backendURL:s||"/api/c15t"}:{}}),l=a(i,{config:{pkg:n.pkg,version:n.version,mode:e.mode||"Unknown"},...e,...e.store,initialTranslationConfig:e.translations});return r.set(c,{consentManager:i,consentStore:l}),{consentManager:i,consentStore:l,cacheKey:c}}}}),{mockFetch:e,mockConfigureConsentManager:n}}const TestConsumer=()=>{let e=(0,external_index_cjs_namespaceObject.useConsentManager)();return(0,jsx_runtime_namespaceObject.jsx)("div",{"data-testid":"consumer",children:"banner"===e.activeUI?"Show":"Hide"})};for(var __rspack_i in exports.TestConsumer=__webpack_exports__.TestConsumer,exports.setupMocks=__webpack_exports__.setupMocks,__webpack_exports__)-1===["TestConsumer","setupMocks"].indexOf(__rspack_i)&&(exports[__rspack_i]=__webpack_exports__[__rspack_i]);Object.defineProperty(exports,"__esModule",{value:!0});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{jsx as n}from"react/jsx-runtime";import{beforeEach as e,vi as t}from"vitest";import{useConsentManager as s}from"../../index.js";function o(){let n=t.fn();window.fetch=n;let s=t.fn(),o=new Map,r=new Map;return e(()=>{o.clear(),r.clear()}),t.mock("c15t",async()=>{let e=await t.importActual("c15t"),{createConsentManagerStore:a}=e,l=e=>{s(e);let t=e.backendURL||"";if("c15t"===e.mode)return{getCallbacks:()=>e.callbacks,showConsentBanner:async()=>(o.has(t)||(n(`${t}/init`,{headers:{"Content-Type":"application/json"}}),o.set(t,!0)),{ok:!0,data:{showConsentBanner:!0},error:null,response:null}),setConsent:async()=>({ok:!0,data:{success:!0},error:null,response:null}),verifyConsent:async()=>({ok:!0,data:{valid:!0},error:null,response:null})};if("offline"===e.mode)return{getCallbacks:()=>e.callbacks,showConsentBanner:async()=>({ok:!0,data:{showConsentBanner:!0},error:null,response:null}),setConsent:async()=>({ok:!0,data:{success:!0},error:null,response:null}),verifyConsent:async()=>({ok:!0,data:{valid:!0},error:null,response:null})};if("custom"===e.mode&&"endpointHandlers"in e){let n=e.endpointHandlers;return{getCallbacks:()=>e.callbacks,init:async()=>n?.init?.({}),setConsent:async e=>n.setConsent({body:e}),verifyConsent:async e=>n.verifyConsent({body:e})}}return{getCallbacks:()=>e.callbacks,init:async()=>({ok:!0,data:{jurisdiction:"GDPR",location:{countryCode:"GB",regionCode:null},translations:{language:"en",translations:{}},branding:"c15t"},error:null,response:null}),setConsent:async()=>({ok:!0,data:{success:!0},error:null,response:null}),verifyConsent:async()=>({ok:!0,data:{valid:!0},error:null,response:null})}};return{...e,configureConsentManager:l,getOrCreateConsentRuntime:(n,e)=>{let t=n.mode||"c15t",s="backendURL"in n?n.backendURL:void 0,o=`${t}:${s??"default"}`,i=r.get(o);if(i)return{...i,cacheKey:o};let c=l({...n,mode:t,..."c15t"===t?{backendURL:s||"/api/c15t"}:{}}),u=a(c,{config:{pkg:e.pkg,version:e.version,mode:n.mode||"Unknown"},...n,...n.store,initialTranslationConfig:n.translations});return r.set(o,{consentManager:c,consentStore:u}),{consentManager:c,consentStore:u,cacheKey:o}}}}),{mockFetch:n,mockConfigureConsentManager:s}}let r=()=>n("div",{"data-testid":"consumer",children:"banner"===s().activeUI?"Show":"Hide"});export{r as TestConsumer,o as setupMocks};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";const __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_exports__={};const external_vitest_namespaceObject=require("vitest"),external_headers_cjs_namespaceObject=require("./headers.cjs");for(var __rspack_i in(0,external_vitest_namespaceObject.describe)("extractRelevantHeaders",()=>{(0,external_vitest_namespaceObject.it)("should extract all relevant headers when present",()=>{let e=new Headers;e.set("cf-ipcountry","US"),e.set("x-vercel-ip-country","GB"),e.set("x-amz-cf-ipcountry","DE"),e.set("x-country-code","FR"),e.set("x-vercel-ip-country-region","CA-ON"),e.set("x-region-code","WEST"),e.set("accept-language","en-US,en;q=0.9"),e.set("user-agent","Mozilla/5.0"),e.set("x-forwarded-host","example.com"),e.set("x-forwarded-for","127.0.0.1");let t=(0,external_headers_cjs_namespaceObject.extractRelevantHeaders)(e);(0,external_vitest_namespaceObject.expect)(t).toEqual({"cf-ipcountry":"US","x-vercel-ip-country":"GB","x-amz-cf-ipcountry":"DE","x-country-code":"FR","x-vercel-ip-country-region":"CA-ON","x-region-code":"WEST","accept-language":"en-US,en;q=0.9","user-agent":"Mozilla/5.0","x-c15t-country":"US","x-c15t-region":"CA-ON","x-forwarded-host":"example.com","x-forwarded-for":"127.0.0.1"})}),(0,external_vitest_namespaceObject.it)("should only extract headers that are present",()=>{let e=new Headers;e.set("cf-ipcountry","US"),e.set("user-agent","Mozilla/5.0");let t=(0,external_headers_cjs_namespaceObject.extractRelevantHeaders)(e);(0,external_vitest_namespaceObject.expect)(t).toEqual({"cf-ipcountry":"US","user-agent":"Mozilla/5.0","x-c15t-country":"US"})}),(0,external_vitest_namespaceObject.it)("should return empty object when no relevant headers are present",()=>{let e=new Headers;e.set("irrelevant-header","some-value");let t=(0,external_headers_cjs_namespaceObject.extractRelevantHeaders)(e);(0,external_vitest_namespaceObject.expect)(t).toEqual({})}),(0,external_vitest_namespaceObject.it)("should handle empty Headers object",()=>{let e=new Headers,t=(0,external_headers_cjs_namespaceObject.extractRelevantHeaders)(e);(0,external_vitest_namespaceObject.expect)(t).toEqual({})}),(0,external_vitest_namespaceObject.it)("should extract sec-gpc header when present",()=>{let e=new Headers;e.set("sec-gpc","1"),e.set("cf-ipcountry","CA");let t=(0,external_headers_cjs_namespaceObject.extractRelevantHeaders)(e);(0,external_vitest_namespaceObject.expect)(t).toEqual({"sec-gpc":"1","cf-ipcountry":"CA","x-c15t-country":"CA"})}),(0,external_vitest_namespaceObject.it)("should not include sec-gpc when not present",()=>{let e=new Headers;e.set("cf-ipcountry","US");let t=(0,external_headers_cjs_namespaceObject.extractRelevantHeaders)(e);(0,external_vitest_namespaceObject.expect)(t).not.toHaveProperty("sec-gpc")}),(0,external_vitest_namespaceObject.it)("should add c15t headers when corresponding headers are present",()=>{let e=new Headers;e.set("cf-ipcountry","US"),e.set("x-vercel-ip-country","GB"),e.set("x-amz-cf-ipcountry","DE"),e.set("x-country-code","FR"),e.set("x-vercel-ip-country-region","CA-ON"),e.set("x-region-code","WEST");let t=(0,external_headers_cjs_namespaceObject.extractRelevantHeaders)(e);(0,external_vitest_namespaceObject.expect)(t).toMatchObject({"x-c15t-country":"US","x-c15t-region":"CA-ON"});let a=new Headers;a.set("x-country-code","FR");let c=(0,external_headers_cjs_namespaceObject.extractRelevantHeaders)(a);(0,external_vitest_namespaceObject.expect)(c).toMatchObject({"x-c15t-country":"FR"});let r=new Headers;r.set("x-region-code","WEST");let s=(0,external_headers_cjs_namespaceObject.extractRelevantHeaders)(r);(0,external_vitest_namespaceObject.expect)(s).toMatchObject({"x-c15t-region":"WEST"})})}),__webpack_exports__)exports[__rspack_i]=__webpack_exports__[__rspack_i];Object.defineProperty(exports,"__esModule",{value:!0});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"headers.test.d.ts","sourceRoot":"","sources":["../../src/server/headers.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{describe as e,expect as t,it as r}from"vitest";import{extractRelevantHeaders as c}from"./headers.js";e("extractRelevantHeaders",()=>{r("should extract all relevant headers when present",()=>{let e=new Headers;e.set("cf-ipcountry","US"),e.set("x-vercel-ip-country","GB"),e.set("x-amz-cf-ipcountry","DE"),e.set("x-country-code","FR"),e.set("x-vercel-ip-country-region","CA-ON"),e.set("x-region-code","WEST"),e.set("accept-language","en-US,en;q=0.9"),e.set("user-agent","Mozilla/5.0"),e.set("x-forwarded-host","example.com"),e.set("x-forwarded-for","127.0.0.1"),t(c(e)).toEqual({"cf-ipcountry":"US","x-vercel-ip-country":"GB","x-amz-cf-ipcountry":"DE","x-country-code":"FR","x-vercel-ip-country-region":"CA-ON","x-region-code":"WEST","accept-language":"en-US,en;q=0.9","user-agent":"Mozilla/5.0","x-c15t-country":"US","x-c15t-region":"CA-ON","x-forwarded-host":"example.com","x-forwarded-for":"127.0.0.1"})}),r("should only extract headers that are present",()=>{let e=new Headers;e.set("cf-ipcountry","US"),e.set("user-agent","Mozilla/5.0"),t(c(e)).toEqual({"cf-ipcountry":"US","user-agent":"Mozilla/5.0","x-c15t-country":"US"})}),r("should return empty object when no relevant headers are present",()=>{let e=new Headers;e.set("irrelevant-header","some-value"),t(c(e)).toEqual({})}),r("should handle empty Headers object",()=>{t(c(new Headers)).toEqual({})}),r("should extract sec-gpc header when present",()=>{let e=new Headers;e.set("sec-gpc","1"),e.set("cf-ipcountry","CA"),t(c(e)).toEqual({"sec-gpc":"1","cf-ipcountry":"CA","x-c15t-country":"CA"})}),r("should not include sec-gpc when not present",()=>{let e=new Headers;e.set("cf-ipcountry","US"),t(c(e)).not.toHaveProperty("sec-gpc")}),r("should add c15t headers when corresponding headers are present",()=>{let e=new Headers;e.set("cf-ipcountry","US"),e.set("x-vercel-ip-country","GB"),e.set("x-amz-cf-ipcountry","DE"),e.set("x-country-code","FR"),e.set("x-vercel-ip-country-region","CA-ON"),e.set("x-region-code","WEST"),t(c(e)).toMatchObject({"x-c15t-country":"US","x-c15t-region":"CA-ON"});let r=new Headers;r.set("x-country-code","FR"),t(c(r)).toMatchObject({"x-c15t-country":"FR"});let o=new Headers;o.set("x-region-code","WEST"),t(c(o)).toMatchObject({"x-c15t-region":"WEST"})})});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";const __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_exports__={};const external_vitest_namespaceObject=require("vitest"),external_normalize_url_cjs_namespaceObject=require("./normalize-url.cjs");for(var __rspack_i in(0,external_vitest_namespaceObject.describe)("validateBackendURL",()=>{(0,external_vitest_namespaceObject.it)("should validate absolute URLs correctly",()=>{for(let e of["http://example.com","https://example.com","http://localhost:3000","https://api.example.com/path"]){let t=(0,external_normalize_url_cjs_namespaceObject.validateBackendURL)(e);(0,external_vitest_namespaceObject.expect)(t.isAbsolute).toBe(!0),(0,external_vitest_namespaceObject.expect)(t.normalizedURL).toBe(e)}}),(0,external_vitest_namespaceObject.it)("should trim trailing slashes from absolute URLs",()=>{for(let{input:e,expected:t}of[{input:"https://my-instance.c15t.dev/",expected:"https://my-instance.c15t.dev"},{input:"https://example.com/",expected:"https://example.com"},{input:"http://localhost:3000/",expected:"http://localhost:3000"},{input:"https://api.example.com/path/",expected:"https://api.example.com/path"}]){let a=(0,external_normalize_url_cjs_namespaceObject.validateBackendURL)(e);(0,external_vitest_namespaceObject.expect)(a.isAbsolute).toBe(!0),(0,external_vitest_namespaceObject.expect)(a.normalizedURL).toBe(t)}}),(0,external_vitest_namespaceObject.it)("should throw error for invalid absolute URLs",()=>{for(let e of["ftp://example.com","ws://example.com","not-a-url://","http:/invalid-url"])(0,external_vitest_namespaceObject.expect)(()=>(0,external_normalize_url_cjs_namespaceObject.validateBackendURL)(e)).toThrow()}),(0,external_vitest_namespaceObject.it)("should validate relative URLs correctly",()=>{for(let{input:e,expected:t}of[{input:"/api/c15t",expected:"/api/c15t"},{input:"/path/to/api",expected:"/path/to/api"}]){let a=(0,external_normalize_url_cjs_namespaceObject.validateBackendURL)(e);(0,external_vitest_namespaceObject.expect)(a.isAbsolute).toBe(!1),(0,external_vitest_namespaceObject.expect)(a.normalizedURL).toBe(t)}}),(0,external_vitest_namespaceObject.it)("should trim trailing slashes from relative URLs",()=>{for(let{input:e,expected:t}of[{input:"/api/c15t/",expected:"/api/c15t"},{input:"/path/to/api/",expected:"/path/to/api"},{input:"/",expected:"/"}]){let a=(0,external_normalize_url_cjs_namespaceObject.validateBackendURL)(e);(0,external_vitest_namespaceObject.expect)(a.isAbsolute).toBe(!1),(0,external_vitest_namespaceObject.expect)(a.normalizedURL).toBe(t)}}),(0,external_vitest_namespaceObject.it)("should throw error for invalid relative URLs",()=>{for(let e of["not-a-url","http://","https://","api/c15t"])(0,external_vitest_namespaceObject.expect)(()=>(0,external_normalize_url_cjs_namespaceObject.validateBackendURL)(e)).toThrow()})}),(0,external_vitest_namespaceObject.describe)("normalizeBackendURL",()=>{let e=e=>({get:t=>e[t.toLowerCase()]||null});(0,external_vitest_namespaceObject.it)("should return absolute URLs unchanged",()=>{let t="https://example.com/api",a=e({}),c=(0,external_normalize_url_cjs_namespaceObject.normalizeBackendURL)(t,a);(0,external_vitest_namespaceObject.expect)(c).toBe(t)}),(0,external_vitest_namespaceObject.it)("should trim trailing slashes from absolute URLs",()=>{let t=e({});for(let{input:e,expected:a}of[{input:"https://my-instance.c15t.dev/",expected:"https://my-instance.c15t.dev"},{input:"https://example.com/api/",expected:"https://example.com/api"}]){let c=(0,external_normalize_url_cjs_namespaceObject.normalizeBackendURL)(e,t);(0,external_vitest_namespaceObject.expect)(c).toBe(a)}}),(0,external_vitest_namespaceObject.it)("should construct URL from x-forwarded headers",()=>{let t=e({"x-forwarded-proto":"https","x-forwarded-host":"example.com"}),a=(0,external_normalize_url_cjs_namespaceObject.normalizeBackendURL)("/api/c15t",t);(0,external_vitest_namespaceObject.expect)(a).toBe("https://example.com/api/c15t")}),(0,external_vitest_namespaceObject.it)("should construct URL from x-forwarded headers and trim trailing slashes",()=>{for(let{headers:t,input:a,expected:c}of[{headers:{"x-forwarded-proto":"https","x-forwarded-host":"my-instance.c15t.dev"},input:"/api/c15t/",expected:"https://my-instance.c15t.dev/api/c15t"},{headers:{"x-forwarded-proto":"https","x-forwarded-host":"example.com"},input:"/api/",expected:"https://example.com/api"}]){let s=e(t),r=(0,external_normalize_url_cjs_namespaceObject.normalizeBackendURL)(a,s);(0,external_vitest_namespaceObject.expect)(r).toBe(c)}}),(0,external_vitest_namespaceObject.it)("should use host header when x-forwarded-host is not available",()=>{let t=e({host:"example.com"}),a=(0,external_normalize_url_cjs_namespaceObject.normalizeBackendURL)("/api/c15t",t);(0,external_vitest_namespaceObject.expect)(a).toBe("https://example.com/api/c15t")}),(0,external_vitest_namespaceObject.it)("should use referer when host headers are not available",()=>{let t=e({referer:"https://example.com/some/path"}),a=(0,external_normalize_url_cjs_namespaceObject.normalizeBackendURL)("/api/c15t",t);(0,external_vitest_namespaceObject.expect)(a).toBe("https://example.com/api/c15t")}),(0,external_vitest_namespaceObject.it)("should use referer and trim trailing slashes",()=>{let t=e({referer:"https://my-instance.c15t.dev/some/path"}),a=(0,external_normalize_url_cjs_namespaceObject.normalizeBackendURL)("/api/c15t/",t);(0,external_vitest_namespaceObject.expect)(a).toBe("https://my-instance.c15t.dev/api/c15t")}),(0,external_vitest_namespaceObject.it)("should return null when no headers are available to determine base URL",()=>{let t=e({}),a=(0,external_normalize_url_cjs_namespaceObject.normalizeBackendURL)("/api/c15t",t);(0,external_vitest_namespaceObject.expect)(a).toBeNull()}),(0,external_vitest_namespaceObject.it)("should return null for invalid URLs",()=>{let t=e({host:"example.com"}),a=(0,external_normalize_url_cjs_namespaceObject.normalizeBackendURL)("not-a-url://",t);(0,external_vitest_namespaceObject.expect)(a).toBeNull()})}),__webpack_exports__)exports[__rspack_i]=__webpack_exports__[__rspack_i];Object.defineProperty(exports,"__esModule",{value:!0});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"normalize-url.test.d.ts","sourceRoot":"","sources":["../../src/server/normalize-url.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{describe as t,expect as e,it as o}from"vitest";import{normalizeBackendURL as a,validateBackendURL as p}from"./normalize-url.js";t("validateBackendURL",()=>{o("should validate absolute URLs correctly",()=>{for(let t of["http://example.com","https://example.com","http://localhost:3000","https://api.example.com/path"]){let o=p(t);e(o.isAbsolute).toBe(!0),e(o.normalizedURL).toBe(t)}}),o("should trim trailing slashes from absolute URLs",()=>{for(let{input:t,expected:o}of[{input:"https://my-instance.c15t.dev/",expected:"https://my-instance.c15t.dev"},{input:"https://example.com/",expected:"https://example.com"},{input:"http://localhost:3000/",expected:"http://localhost:3000"},{input:"https://api.example.com/path/",expected:"https://api.example.com/path"}]){let a=p(t);e(a.isAbsolute).toBe(!0),e(a.normalizedURL).toBe(o)}}),o("should throw error for invalid absolute URLs",()=>{for(let t of["ftp://example.com","ws://example.com","not-a-url://","http:/invalid-url"])e(()=>p(t)).toThrow()}),o("should validate relative URLs correctly",()=>{for(let{input:t,expected:o}of[{input:"/api/c15t",expected:"/api/c15t"},{input:"/path/to/api",expected:"/path/to/api"}]){let a=p(t);e(a.isAbsolute).toBe(!1),e(a.normalizedURL).toBe(o)}}),o("should trim trailing slashes from relative URLs",()=>{for(let{input:t,expected:o}of[{input:"/api/c15t/",expected:"/api/c15t"},{input:"/path/to/api/",expected:"/path/to/api"},{input:"/",expected:"/"}]){let a=p(t);e(a.isAbsolute).toBe(!1),e(a.normalizedURL).toBe(o)}}),o("should throw error for invalid relative URLs",()=>{for(let t of["not-a-url","http://","https://","api/c15t"])e(()=>p(t)).toThrow()})}),t("normalizeBackendURL",()=>{let t=t=>({get:e=>t[e.toLowerCase()]||null});o("should return absolute URLs unchanged",()=>{let o="https://example.com/api";e(a(o,t({}))).toBe(o)}),o("should trim trailing slashes from absolute URLs",()=>{let o=t({});for(let{input:t,expected:p}of[{input:"https://my-instance.c15t.dev/",expected:"https://my-instance.c15t.dev"},{input:"https://example.com/api/",expected:"https://example.com/api"}])e(a(t,o)).toBe(p)}),o("should construct URL from x-forwarded headers",()=>{e(a("/api/c15t",t({"x-forwarded-proto":"https","x-forwarded-host":"example.com"}))).toBe("https://example.com/api/c15t")}),o("should construct URL from x-forwarded headers and trim trailing slashes",()=>{for(let{headers:o,input:p,expected:s}of[{headers:{"x-forwarded-proto":"https","x-forwarded-host":"my-instance.c15t.dev"},input:"/api/c15t/",expected:"https://my-instance.c15t.dev/api/c15t"},{headers:{"x-forwarded-proto":"https","x-forwarded-host":"example.com"},input:"/api/",expected:"https://example.com/api"}])e(a(p,t(o))).toBe(s)}),o("should use host header when x-forwarded-host is not available",()=>{e(a("/api/c15t",t({host:"example.com"}))).toBe("https://example.com/api/c15t")}),o("should use referer when host headers are not available",()=>{e(a("/api/c15t",t({referer:"https://example.com/some/path"}))).toBe("https://example.com/api/c15t")}),o("should use referer and trim trailing slashes",()=>{e(a("/api/c15t/",t({referer:"https://my-instance.c15t.dev/some/path"}))).toBe("https://my-instance.c15t.dev/api/c15t")}),o("should return null when no headers are available to determine base URL",()=>{e(a("/api/c15t",t({}))).toBeNull()}),o("should return null for invalid URLs",()=>{e(a("not-a-url://",t({host:"example.com"}))).toBeNull()})});
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/dist/static/image/useColorScheme-cleans-up-system-preference-listener-on-unmount-1.png
DELETED
|
Binary file
|
package/dist/static/image/useColorScheme-handles-default-theme-based-on-document-class-1.png
DELETED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";const __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_exports__={};const mock_consent_state_cjs_namespaceObject=require("./components/iab/__tests__/fixtures/mock-consent-state.cjs");for(var __rspack_i in window.__c15t_mock_gvl=mock_consent_state_cjs_namespaceObject.mockGVL,console.log("[test-setup.browser] Mock GVL set on window"),__webpack_exports__)exports[__rspack_i]=__webpack_exports__[__rspack_i];Object.defineProperty(exports,"__esModule",{value:!0});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test-setup.browser.d.ts","sourceRoot":"","sources":["../src/test-setup.browser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{mockGVL as o}from"./components/iab/__tests__/fixtures/mock-consent-state.js";window.__c15t_mock_gvl=o,console.log("[test-setup.browser] Mock GVL set on window");
|