@descope/react-sdk 2.3.25 → 2.5.0

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.
Files changed (58) hide show
  1. package/README.md +72 -0
  2. package/dist/cjs/components/AccessKeyManagement.js +1 -1
  3. package/dist/cjs/components/AccessKeyManagement.js.map +1 -1
  4. package/dist/cjs/components/ApplicationsPortal.js +1 -1
  5. package/dist/cjs/components/ApplicationsPortal.js.map +1 -1
  6. package/dist/cjs/components/AuditManagement.js +1 -1
  7. package/dist/cjs/components/AuditManagement.js.map +1 -1
  8. package/dist/cjs/components/AuthProvider/AuthProvider.js +1 -1
  9. package/dist/cjs/components/AuthProvider/AuthProvider.js.map +1 -1
  10. package/dist/cjs/components/DefaultFlows.js +1 -1
  11. package/dist/cjs/components/DefaultFlows.js.map +1 -1
  12. package/dist/cjs/components/Descope.js +1 -1
  13. package/dist/cjs/components/Descope.js.map +1 -1
  14. package/dist/cjs/components/RoleManagement.js +1 -1
  15. package/dist/cjs/components/RoleManagement.js.map +1 -1
  16. package/dist/cjs/components/UserManagement.js +1 -1
  17. package/dist/cjs/components/UserManagement.js.map +1 -1
  18. package/dist/cjs/components/UserProfile.js +1 -1
  19. package/dist/cjs/components/UserProfile.js.map +1 -1
  20. package/dist/cjs/components/withPropsMapping/index.js +1 -1
  21. package/dist/cjs/components/withPropsMapping/index.js.map +1 -1
  22. package/dist/cjs/components/withPropsMapping/utils.js +1 -1
  23. package/dist/cjs/components/withPropsMapping/utils.js.map +1 -1
  24. package/dist/cjs/constants.js +1 -1
  25. package/dist/cjs/constants.js.map +1 -1
  26. package/dist/cjs/flows.js +1 -1
  27. package/dist/cjs/hooks/Context.js +1 -1
  28. package/dist/cjs/hooks/Context.js.map +1 -1
  29. package/dist/cjs/index.js +1 -1
  30. package/dist/cjs/sdk.js +1 -1
  31. package/dist/cjs/sdk.js.map +1 -1
  32. package/dist/cjs/utils.js +1 -1
  33. package/dist/cjs/utils.js.map +1 -1
  34. package/dist/esm/components/AccessKeyManagement.js +1 -1
  35. package/dist/esm/components/AccessKeyManagement.js.map +1 -1
  36. package/dist/esm/components/ApplicationsPortal.js +1 -1
  37. package/dist/esm/components/ApplicationsPortal.js.map +1 -1
  38. package/dist/esm/components/AuditManagement.js +1 -1
  39. package/dist/esm/components/AuditManagement.js.map +1 -1
  40. package/dist/esm/components/AuthProvider/AuthProvider.js.map +1 -1
  41. package/dist/esm/components/Descope.js +1 -1
  42. package/dist/esm/components/Descope.js.map +1 -1
  43. package/dist/esm/components/RoleManagement.js +1 -1
  44. package/dist/esm/components/RoleManagement.js.map +1 -1
  45. package/dist/esm/components/UserManagement.js +1 -1
  46. package/dist/esm/components/UserManagement.js.map +1 -1
  47. package/dist/esm/components/UserProfile.js +1 -1
  48. package/dist/esm/components/UserProfile.js.map +1 -1
  49. package/dist/esm/components/withPropsMapping/index.js +1 -1
  50. package/dist/esm/constants.js +1 -1
  51. package/dist/esm/constants.js.map +1 -1
  52. package/dist/index.d.ts +12 -3
  53. package/dist/index.umd.js +2 -2
  54. package/dist/index.umd.js.map +1 -1
  55. package/dist/types/components/AuthProvider/AuthProvider.d.ts +4 -1
  56. package/dist/types/sdk.d.ts +6 -2
  57. package/dist/types/types.d.ts +3 -0
  58. package/package.json +19 -19
package/README.md CHANGED
@@ -166,6 +166,75 @@ const App = () => {
166
166
  }
167
167
  ```
168
168
 
169
+ ### `onScreenUpdate`
170
+
171
+ A function that is called whenever there is a new screen state and after every next call. It receives the following parameters:
172
+
173
+ - `screenName`: The name of the screen that is about to be rendered
174
+ - `context`: An object containing the upcoming screen state
175
+ - `next`: A function that, when called, continues the flow execution
176
+ - `ref`: A reference to the descope-wc node
177
+
178
+ The function can be sync or async, and should return a boolean indicating whether a custom screen should be rendered:
179
+
180
+ - `true`: Render a custom screen
181
+ - `false`: Render the default flow screen
182
+
183
+ This function allows rendering custom screens instead of the default flow screens.
184
+ It can be useful for highly customized UIs or specific logic not covered by the default screens
185
+
186
+ To render a custom screen, its elements should be appended as children of the `Descope` component
187
+
188
+ Usage example:
189
+
190
+ ```javascript
191
+ const CustomScreen = ({onClick, setForm}) => {
192
+ const onChange = (e) => setForm({ email: e.target.value })
193
+
194
+ return (
195
+ <>
196
+ <input
197
+ type="email"
198
+ placeholder="Email"
199
+ onChange={onChange}
200
+ />
201
+ <button
202
+ type="button"
203
+ onClick={onClick}
204
+ >
205
+ Submit
206
+ </button>
207
+ </>
208
+ )}
209
+
210
+ const Login = () => {
211
+ const [state, setState] = useState();
212
+ const [form, setForm] = useState();
213
+
214
+ const onScreenUpdate = (screenName, context, next) => {
215
+ setState({screenName, context, next})
216
+
217
+ if (screenName === 'My Custom Screen') {
218
+ return true;
219
+ }
220
+
221
+ return false;
222
+ };
223
+
224
+ return <Descope
225
+ ...
226
+ onScreenUpdate={onScreenUpdate}
227
+ >{state.screenName === 'My Custom Screen' && <CustomScreen
228
+ onClick={() => {
229
+ // replace with the button interaction id
230
+ state.next('interactionId', form)
231
+ }}
232
+ setForm={setForm}/>}
233
+ </Descope>
234
+ }
235
+
236
+ ```
237
+
169
238
  ### Use the `useDescope`, `useSession` and `useUser` hooks in your components in order to get authentication state, user details and utilities
170
239
 
171
240
  This can be helpful to implement application-specific logic. Examples:
@@ -301,6 +370,9 @@ Note:
301
370
  The session token cookie is set as a [`Secure`](https://datatracker.ietf.org/doc/html/rfc6265#section-5.2.5) cookie. It will be sent only over HTTPS connections.
302
371
  In addition, some browsers (e.g. Safari) may not store `Secure` cookie if the hosted page is running on an HTTP protocol.
303
372
 
373
+ The session token cookie is set to [`SameSite=Strict`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#samesitesamesite-value) by default.
374
+ If you need to customize this, you can set `sessionTokenViaCookie={sameSite: 'Lax'}`
375
+
304
376
  ### Helper Functions
305
377
 
306
378
  You can also use the following functions to assist with various actions managing your JWT.
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../hooks/Context.js"),r=require("./withPropsMapping/index.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var u=a(e);const l=e.lazy((async()=>(await Promise.resolve().then((function(){return n(require("@descope/access-key-management-widget"))})),{default:r.default(u.default.forwardRef(((e,t)=>u.default.createElement("descope-access-key-management-widget",Object.assign({ref:t},e)))))}))),s=u.default.forwardRef((({logger:r,tenant:a,theme:n,debug:s,widgetId:c,styleId:d},o)=>{const[f,i]=e.useState(null);e.useImperativeHandle(o,(()=>f));const{projectId:p,baseUrl:g,baseStaticUrl:b}=u.default.useContext(t.default);return u.default.createElement(e.Suspense,{fallback:null},u.default.createElement(l,{projectId:p,widgetId:c,tenant:a,baseUrl:g,baseStaticUrl:b,innerRef:i,"theme.attr":n,"debug.attr":s,"styleId.attr":d,"logger.prop":r}))}));exports.default=s;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../hooks/Context.js"),a=require("./withPropsMapping/index.js");function r(e){return e&&e.__esModule?e:{default:e}}var l=r(e);const s=e.lazy((async()=>(await import("@descope/access-key-management-widget"),{default:a.default(l.default.forwardRef(((e,t)=>l.default.createElement("descope-access-key-management-widget",Object.assign({ref:t},e)))))}))),d=l.default.forwardRef((({logger:a,tenant:r,theme:d,debug:n,widgetId:u,styleId:o},c)=>{const[f,i]=e.useState(null);e.useImperativeHandle(c,(()=>f));const{projectId:p,baseUrl:g,baseStaticUrl:b,baseCdnUrl:m}=l.default.useContext(t.default);return l.default.createElement(e.Suspense,{fallback:null},l.default.createElement(s,{projectId:p,widgetId:u,tenant:r,baseUrl:g,baseStaticUrl:b,baseCdnUrl:m,innerRef:i,"theme.attr":d,"debug.attr":n,"styleId.attr":o,"logger.prop":a}))}));exports.default=d;
2
2
  //# sourceMappingURL=AccessKeyManagement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AccessKeyManagement.js","sources":["../../../src/components/AccessKeyManagement.tsx"],"sourcesContent":["import React, { lazy, Suspense, useImperativeHandle, useState } from 'react';\nimport Context from '../hooks/Context';\nimport { AccessKeyManagementProps } from '../types';\nimport withPropsMapping from './withPropsMapping';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst AccessKeyManagementWC = lazy(async () => {\n await import('@descope/access-key-management-widget');\n\n return {\n default: withPropsMapping(\n React.forwardRef<HTMLElement>((props, ref) => (\n\t<descope-access-key-management-widget ref={ref} {...props} />\n )),\n ),\n };\n});\n\nconst AccessKeyManagement = React.forwardRef<\n HTMLElement,\n AccessKeyManagementProps\n>(({ logger, tenant, theme, debug, widgetId, styleId }, ref) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl } = React.useContext(Context);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<AccessKeyManagementWC\n projectId={projectId}\n widgetId={widgetId}\n tenant={tenant}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n innerRef={setInnerRef}\n {...{\n // attributes\n 'theme.attr': theme,\n 'debug.attr': debug,\n 'styleId.attr': styleId,\n // props\n 'logger.prop': logger,\n }}\n />\n\t</Suspense>\n );\n});\n\nexport default AccessKeyManagement;\n"],"names":["AccessKeyManagementWC","lazy","async","Promise","resolve","then","_interopNamespace","require","default","withPropsMapping","React","forwardRef","props","ref","createElement","Object","assign","AccessKeyManagement","logger","tenant","theme","debug","widgetId","styleId","innerRef","setInnerRef","useState","useImperativeHandle","projectId","baseUrl","baseStaticUrl","useContext","Context","Suspense","fallback"],"mappings":"uhBAMA,MAAMA,EAAwBC,EAAIA,MAACC,gBAC3BC,QAAAC,UAAAC,MAAA,WAAA,OAAAC,EAAAC,QAAO,yCAAuC,IAE7C,CACLC,QAASC,EAAgB,QACvBC,UAAMC,YAAwB,CAACC,EAAOC,IAC3CH,EAAAA,QAAsCI,cAAA,uCAAAC,OAAAC,OAAA,CAAAH,IAAKA,GAASD,WAM/CK,EAAsBP,EAAK,QAACC,YAGhC,EAAGO,SAAQC,SAAQC,QAAOC,QAAOC,WAAUC,WAAWV,KACtD,MAAOW,EAAUC,GAAeC,EAAQA,SAAC,MAEzCC,sBAAoBd,GAAK,IAAMW,IAE/B,MAAMI,UAAEA,EAASC,QAAEA,EAAOC,cAAEA,GAAkBpB,UAAMqB,WAAWC,EAAAA,SAE/D,OACDtB,EAAC,QAAAI,cAAAmB,EAAQA,SAAC,CAAAC,SAAU,MACnBxB,EAAC,QAAAI,cAAAd,EACK,CAAA4B,UAAWA,EACXN,SAAUA,EACVH,OAAQA,EACRU,QAASA,EACTC,cAAeA,EACfN,SAAUC,EAGR,aAAcL,EACd,aAAcC,EACd,eAAgBE,EAEhB,cAAeL,IAIrB"}
1
+ {"version":3,"file":"AccessKeyManagement.js","sources":["../../../src/components/AccessKeyManagement.tsx"],"sourcesContent":["import React, { lazy, Suspense, useImperativeHandle, useState } from 'react';\nimport Context from '../hooks/Context';\nimport { AccessKeyManagementProps } from '../types';\nimport withPropsMapping from './withPropsMapping';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst AccessKeyManagementWC = lazy(async () => {\n await import('@descope/access-key-management-widget');\n\n return {\n default: withPropsMapping(\n React.forwardRef<HTMLElement>((props, ref) => (\n <descope-access-key-management-widget ref={ref} {...props} />\n )),\n ),\n };\n});\n\nconst AccessKeyManagement = React.forwardRef<\n HTMLElement,\n AccessKeyManagementProps\n>(({ logger, tenant, theme, debug, widgetId, styleId }, ref) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl, baseCdnUrl } =\n React.useContext(Context);\n\n return (\n <Suspense fallback={null}>\n <AccessKeyManagementWC\n projectId={projectId}\n widgetId={widgetId}\n tenant={tenant}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n baseCdnUrl={baseCdnUrl}\n innerRef={setInnerRef}\n {...{\n // attributes\n 'theme.attr': theme,\n 'debug.attr': debug,\n 'styleId.attr': styleId,\n // props\n 'logger.prop': logger,\n }}\n />\n </Suspense>\n );\n});\n\nexport default AccessKeyManagement;\n"],"names":["AccessKeyManagementWC","lazy","async","import","default","withPropsMapping","React","forwardRef","props","ref","createElement","Object","assign","AccessKeyManagement","logger","tenant","theme","debug","widgetId","styleId","innerRef","setInnerRef","useState","useImperativeHandle","projectId","baseUrl","baseStaticUrl","baseCdnUrl","useContext","Context","Suspense","fallback"],"mappings":"mOAMA,MAAMA,EAAwBC,EAAIA,MAACC,gBAC3BC,OAAO,yCAEN,CACLC,QAASC,EAAgBD,QACvBE,UAAMC,YAAwB,CAACC,EAAOC,IACpCH,EAAAA,QAAsCI,cAAA,uCAAAC,OAAAC,OAAA,CAAAH,IAAKA,GAASD,WAMtDK,EAAsBP,EAAKF,QAACG,YAGhC,EAAGO,SAAQC,SAAQC,QAAOC,QAAOC,WAAUC,WAAWV,KACtD,MAAOW,EAAUC,GAAeC,EAAQA,SAAC,MAEzCC,sBAAoBd,GAAK,IAAMW,IAE/B,MAAMI,UAAEA,EAASC,QAAEA,EAAOC,cAAEA,EAAaC,WAAEA,GACzCrB,EAAKF,QAACwB,WAAWC,EAAAA,SAEnB,OACEvB,EAACF,QAAAM,cAAAoB,EAAQA,SAAC,CAAAC,SAAU,MAClBzB,EAAAF,QAAAM,cAACV,EAAqB,CACpBwB,UAAWA,EACXN,SAAUA,EACVH,OAAQA,EACRU,QAASA,EACTC,cAAeA,EACfC,WAAYA,EACZP,SAAUC,EAGR,aAAcL,EACd,aAAcC,EACd,eAAgBE,EAEhB,cAAeL,IAIrB"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../hooks/Context.js"),r=require("./withPropsMapping/index.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function l(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var n=a(e);const u=e.lazy((async()=>(await Promise.resolve().then((function(){return l(require("@descope/applications-portal-widget"))})),{default:r.default(n.default.forwardRef(((e,t)=>n.default.createElement("descope-applications-portal-widget",Object.assign({ref:t},e)))))}))),o=n.default.forwardRef((({logger:r,theme:a,debug:l,widgetId:o,styleId:d},s)=>{const[c,i]=e.useState(null);e.useImperativeHandle(s,(()=>c));const{projectId:f,baseUrl:p,baseStaticUrl:b}=n.default.useContext(t.default);return n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(u,{projectId:f,widgetId:o,baseUrl:p,baseStaticUrl:b,innerRef:i,"theme.attr":a,"debug.attr":l,"styleId.attr":d,"logger.prop":r}))}));exports.default=o;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../hooks/Context.js"),a=require("./withPropsMapping/index.js");function r(e){return e&&e.__esModule?e:{default:e}}var l=r(e);const d=e.lazy((async()=>(await import("@descope/applications-portal-widget"),{default:a.default(l.default.forwardRef(((e,t)=>l.default.createElement("descope-applications-portal-widget",Object.assign({ref:t},e)))))}))),s=l.default.forwardRef((({logger:a,theme:r,debug:s,widgetId:u,styleId:o},n)=>{const[i,c]=e.useState(null);e.useImperativeHandle(n,(()=>i));const{projectId:p,baseUrl:f,baseStaticUrl:g,baseCdnUrl:b}=l.default.useContext(t.default);return l.default.createElement(e.Suspense,{fallback:null},l.default.createElement(d,{projectId:p,widgetId:u,baseUrl:f,baseStaticUrl:g,baseCdnUrl:b,innerRef:c,"theme.attr":r,"debug.attr":s,"styleId.attr":o,"logger.prop":a}))}));exports.default=s;
2
2
  //# sourceMappingURL=ApplicationsPortal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ApplicationsPortal.js","sources":["../../../src/components/ApplicationsPortal.tsx"],"sourcesContent":["import React, { lazy, Suspense, useImperativeHandle, useState } from 'react';\nimport Context from '../hooks/Context';\nimport { ApplicationsPortalProps } from '../types';\nimport withPropsMapping from './withPropsMapping';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst ApplicationsPortalWC = lazy(async () => {\n await import('@descope/applications-portal-widget');\n\n return {\n default: withPropsMapping(\n React.forwardRef<HTMLElement>((props, ref) => (\n\t<descope-applications-portal-widget ref={ref} {...props} />\n )),\n ),\n };\n});\n\nconst ApplicationsPortal = React.forwardRef<\n HTMLElement,\n ApplicationsPortalProps\n>(({ logger, theme, debug, widgetId, styleId }, ref) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl } = React.useContext(Context);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<ApplicationsPortalWC\n projectId={projectId}\n widgetId={widgetId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n innerRef={setInnerRef}\n {...{\n // attributes\n 'theme.attr': theme,\n 'debug.attr': debug,\n 'styleId.attr': styleId,\n // props\n 'logger.prop': logger,\n }}\n />\n\t</Suspense>\n );\n});\n\nexport default ApplicationsPortal;\n"],"names":["ApplicationsPortalWC","lazy","async","Promise","resolve","then","_interopNamespace","require","default","withPropsMapping","React","forwardRef","props","ref","createElement","Object","assign","ApplicationsPortal","logger","theme","debug","widgetId","styleId","innerRef","setInnerRef","useState","useImperativeHandle","projectId","baseUrl","baseStaticUrl","useContext","Context","Suspense","fallback"],"mappings":"uhBAMA,MAAMA,EAAuBC,EAAIA,MAACC,gBAC1BC,QAAAC,UAAAC,MAAA,WAAA,OAAAC,EAAAC,QAAO,uCAAqC,IAE3C,CACLC,QAASC,EAAgB,QACvBC,UAAMC,YAAwB,CAACC,EAAOC,IAC3CH,EAAAA,QAAoCI,cAAA,qCAAAC,OAAAC,OAAA,CAAAH,IAAKA,GAASD,WAM7CK,EAAqBP,EAAK,QAACC,YAG/B,EAAGO,SAAQC,QAAOC,QAAOC,WAAUC,WAAWT,KAC9C,MAAOU,EAAUC,GAAeC,EAAQA,SAAC,MAEzCC,sBAAoBb,GAAK,IAAMU,IAE/B,MAAMI,UAAEA,EAASC,QAAEA,EAAOC,cAAEA,GAAkBnB,UAAMoB,WAAWC,EAAAA,SAE/D,OACDrB,EAAC,QAAAI,cAAAkB,EAAQA,SAAC,CAAAC,SAAU,MACnBvB,EAAAA,QAACI,cAAAd,GACK2B,UAAWA,EACXN,SAAUA,EACVO,QAASA,EACTC,cAAeA,EACfN,SAAUC,EAGR,aAAcL,EACd,aAAcC,EACd,eAAgBE,EAEhB,cAAeJ,IAIrB"}
1
+ {"version":3,"file":"ApplicationsPortal.js","sources":["../../../src/components/ApplicationsPortal.tsx"],"sourcesContent":["import React, { lazy, Suspense, useImperativeHandle, useState } from 'react';\nimport Context from '../hooks/Context';\nimport { ApplicationsPortalProps } from '../types';\nimport withPropsMapping from './withPropsMapping';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst ApplicationsPortalWC = lazy(async () => {\n await import('@descope/applications-portal-widget');\n\n return {\n default: withPropsMapping(\n React.forwardRef<HTMLElement>((props, ref) => (\n <descope-applications-portal-widget ref={ref} {...props} />\n )),\n ),\n };\n});\n\nconst ApplicationsPortal = React.forwardRef<\n HTMLElement,\n ApplicationsPortalProps\n>(({ logger, theme, debug, widgetId, styleId }, ref) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl, baseCdnUrl } =\n React.useContext(Context);\n\n return (\n <Suspense fallback={null}>\n <ApplicationsPortalWC\n projectId={projectId}\n widgetId={widgetId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n baseCdnUrl={baseCdnUrl}\n innerRef={setInnerRef}\n {...{\n // attributes\n 'theme.attr': theme,\n 'debug.attr': debug,\n 'styleId.attr': styleId,\n // props\n 'logger.prop': logger,\n }}\n />\n </Suspense>\n );\n});\n\nexport default ApplicationsPortal;\n"],"names":["ApplicationsPortalWC","lazy","async","import","default","withPropsMapping","React","forwardRef","props","ref","createElement","Object","assign","ApplicationsPortal","logger","theme","debug","widgetId","styleId","innerRef","setInnerRef","useState","useImperativeHandle","projectId","baseUrl","baseStaticUrl","baseCdnUrl","useContext","Context","Suspense","fallback"],"mappings":"mOAMA,MAAMA,EAAuBC,EAAIA,MAACC,gBAC1BC,OAAO,uCAEN,CACLC,QAASC,EAAgBD,QACvBE,UAAMC,YAAwB,CAACC,EAAOC,IACpCH,EAAAA,QAAoCI,cAAA,qCAAAC,OAAAC,OAAA,CAAAH,IAAKA,GAASD,WAMpDK,EAAqBP,EAAKF,QAACG,YAG/B,EAAGO,SAAQC,QAAOC,QAAOC,WAAUC,WAAWT,KAC9C,MAAOU,EAAUC,GAAeC,EAAQA,SAAC,MAEzCC,sBAAoBb,GAAK,IAAMU,IAE/B,MAAMI,UAAEA,EAASC,QAAEA,EAAOC,cAAEA,EAAaC,WAAEA,GACzCpB,EAAKF,QAACuB,WAAWC,EAAAA,SAEnB,OACEtB,EAACF,QAAAM,cAAAmB,EAAQA,SAAC,CAAAC,SAAU,MAClBxB,EAACF,QAAAM,cAAAV,EACC,CAAAuB,UAAWA,EACXN,SAAUA,EACVO,QAASA,EACTC,cAAeA,EACfC,WAAYA,EACZP,SAAUC,EAGR,aAAcL,EACd,aAAcC,EACd,eAAgBE,EAEhB,cAAeJ,IAIrB"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../hooks/Context.js"),r=require("./withPropsMapping/index.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var u=a(e);const l=e.lazy((async()=>(await Promise.resolve().then((function(){return n(require("@descope/audit-management-widget"))})),{default:r.default(u.default.forwardRef(((e,t)=>u.default.createElement("descope-audit-management-widget",Object.assign({ref:t},e)))))}))),d=u.default.forwardRef((({logger:r,tenant:a,theme:n,debug:d,widgetId:o,styleId:f},s)=>{const[c,i]=e.useState(null);e.useImperativeHandle(s,(()=>c));const{projectId:p,baseUrl:g,baseStaticUrl:b}=u.default.useContext(t.default);return u.default.createElement(e.Suspense,{fallback:null},u.default.createElement(l,{projectId:p,widgetId:o,tenant:a,baseUrl:g,baseStaticUrl:b,innerRef:i,"theme.attr":n,"debug.attr":d,"styleId.attr":f,"logger.prop":r}))}));exports.default=d;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../hooks/Context.js"),a=require("./withPropsMapping/index.js");function r(e){return e&&e.__esModule?e:{default:e}}var d=r(e);const l=e.lazy((async()=>(await import("@descope/audit-management-widget"),{default:a.default(d.default.forwardRef(((e,t)=>d.default.createElement("descope-audit-management-widget",Object.assign({ref:t},e)))))}))),n=d.default.forwardRef((({logger:a,tenant:r,theme:n,debug:s,widgetId:u,styleId:o},i)=>{const[f,c]=e.useState(null);e.useImperativeHandle(i,(()=>f));const{projectId:p,baseUrl:g,baseStaticUrl:b,baseCdnUrl:m}=d.default.useContext(t.default);return d.default.createElement(e.Suspense,{fallback:null},d.default.createElement(l,{projectId:p,widgetId:u,tenant:r,baseUrl:g,baseStaticUrl:b,baseCdnUrl:m,innerRef:c,"theme.attr":n,"debug.attr":s,"styleId.attr":o,"logger.prop":a}))}));exports.default=n;
2
2
  //# sourceMappingURL=AuditManagement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AuditManagement.js","sources":["../../../src/components/AuditManagement.tsx"],"sourcesContent":["import React, { lazy, Suspense, useImperativeHandle, useState } from 'react';\nimport Context from '../hooks/Context';\nimport { AuditManagementProps } from '../types';\nimport withPropsMapping from './withPropsMapping';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst AuditManagementWC = lazy(async () => {\n await import('@descope/audit-management-widget');\n\n return {\n default: withPropsMapping(\n React.forwardRef<HTMLElement>((props, ref) => (\n\t<descope-audit-management-widget ref={ref} {...props} />\n )),\n ),\n };\n});\n\nconst AuditManagement = React.forwardRef<HTMLElement, AuditManagementProps>(\n ({ logger, tenant, theme, debug, widgetId, styleId }, ref) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl } = React.useContext(Context);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<AuditManagementWC\n projectId={projectId}\n widgetId={widgetId}\n tenant={tenant}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n innerRef={setInnerRef}\n {...{\n // attributes\n 'theme.attr': theme,\n 'debug.attr': debug,\n 'styleId.attr': styleId,\n // props\n 'logger.prop': logger,\n }}\n />\n\t</Suspense>\n );\n },\n);\n\nexport default AuditManagement;\n"],"names":["AuditManagementWC","lazy","async","Promise","resolve","then","_interopNamespace","require","default","withPropsMapping","React","forwardRef","props","ref","createElement","Object","assign","AuditManagement","logger","tenant","theme","debug","widgetId","styleId","innerRef","setInnerRef","useState","useImperativeHandle","projectId","baseUrl","baseStaticUrl","useContext","Context","Suspense","fallback"],"mappings":"uhBAMA,MAAMA,EAAoBC,EAAIA,MAACC,gBACvBC,QAAAC,UAAAC,MAAA,WAAA,OAAAC,EAAAC,QAAO,oCAAkC,IAExC,CACLC,QAASC,EAAgB,QACvBC,UAAMC,YAAwB,CAACC,EAAOC,IAC3CH,EAAAA,QAAiCI,cAAA,kCAAAC,OAAAC,OAAA,CAAAH,IAAKA,GAASD,WAM1CK,EAAkBP,EAAK,QAACC,YAC5B,EAAGO,SAAQC,SAAQC,QAAOC,QAAOC,WAAUC,WAAWV,KACpD,MAAOW,EAAUC,GAAeC,EAAQA,SAAC,MAEzCC,sBAAoBd,GAAK,IAAMW,IAE/B,MAAMI,UAAEA,EAASC,QAAEA,EAAOC,cAAEA,GAAkBpB,UAAMqB,WAAWC,EAAAA,SAE/D,OACHtB,EAAC,QAAAI,cAAAmB,EAAQA,SAAC,CAAAC,SAAU,MACnBxB,EAAC,QAAAI,cAAAd,EACO,CAAA4B,UAAWA,EACXN,SAAUA,EACVH,OAAQA,EACRU,QAASA,EACTC,cAAeA,EACfN,SAAUC,EAGR,aAAcL,EACd,aAAcC,EACd,eAAgBE,EAEhB,cAAeL,IAIrB"}
1
+ {"version":3,"file":"AuditManagement.js","sources":["../../../src/components/AuditManagement.tsx"],"sourcesContent":["import React, { lazy, Suspense, useImperativeHandle, useState } from 'react';\nimport Context from '../hooks/Context';\nimport { AuditManagementProps } from '../types';\nimport withPropsMapping from './withPropsMapping';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst AuditManagementWC = lazy(async () => {\n await import('@descope/audit-management-widget');\n\n return {\n default: withPropsMapping(\n React.forwardRef<HTMLElement>((props, ref) => (\n <descope-audit-management-widget ref={ref} {...props} />\n )),\n ),\n };\n});\n\nconst AuditManagement = React.forwardRef<HTMLElement, AuditManagementProps>(\n ({ logger, tenant, theme, debug, widgetId, styleId }, ref) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl, baseCdnUrl } =\n React.useContext(Context);\n\n return (\n <Suspense fallback={null}>\n <AuditManagementWC\n projectId={projectId}\n widgetId={widgetId}\n tenant={tenant}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n baseCdnUrl={baseCdnUrl}\n innerRef={setInnerRef}\n {...{\n // attributes\n 'theme.attr': theme,\n 'debug.attr': debug,\n 'styleId.attr': styleId,\n // props\n 'logger.prop': logger,\n }}\n />\n </Suspense>\n );\n },\n);\n\nexport default AuditManagement;\n"],"names":["AuditManagementWC","lazy","async","import","default","withPropsMapping","React","forwardRef","props","ref","createElement","Object","assign","AuditManagement","logger","tenant","theme","debug","widgetId","styleId","innerRef","setInnerRef","useState","useImperativeHandle","projectId","baseUrl","baseStaticUrl","baseCdnUrl","useContext","Context","Suspense","fallback"],"mappings":"mOAMA,MAAMA,EAAoBC,EAAIA,MAACC,gBACvBC,OAAO,oCAEN,CACLC,QAASC,EAAgBD,QACvBE,UAAMC,YAAwB,CAACC,EAAOC,IACpCH,EAAAA,QAAiCI,cAAA,kCAAAC,OAAAC,OAAA,CAAAH,IAAKA,GAASD,WAMjDK,EAAkBP,EAAKF,QAACG,YAC5B,EAAGO,SAAQC,SAAQC,QAAOC,QAAOC,WAAUC,WAAWV,KACpD,MAAOW,EAAUC,GAAeC,EAAQA,SAAC,MAEzCC,sBAAoBd,GAAK,IAAMW,IAE/B,MAAMI,UAAEA,EAASC,QAAEA,EAAOC,cAAEA,EAAaC,WAAEA,GACzCrB,EAAKF,QAACwB,WAAWC,EAAAA,SAEnB,OACEvB,EAACF,QAAAM,cAAAoB,EAAQA,SAAC,CAAAC,SAAU,MAClBzB,EAAAF,QAAAM,cAACV,EAAiB,CAChBwB,UAAWA,EACXN,SAAUA,EACVH,OAAQA,EACRU,QAASA,EACTC,cAAeA,EACfC,WAAYA,EACZP,SAAUC,EAGR,aAAcL,EACd,aAAcC,EACd,eAAgBE,EAEhB,cAAeL,IAIrB"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../../hooks/Context.js"),s=require("../../utils.js"),r=require("./useSdk.js");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=n(e);exports.default=({projectId:n,baseUrl:a="",baseStaticUrl:u="",sessionTokenViaCookie:i=!1,persistTokens:c=!0,storeLastAuthenticatedUser:d=!0,keepLastAuthenticatedUserAfterLogout:l=!1,children:f})=>{const[h,U]=e.useState(),[k,p]=e.useState(),[S,L]=e.useState(!1),[b,A]=e.useState(!1),j=r.default({projectId:n,baseUrl:a,persistTokens:c,sessionTokenViaCookie:i,storeLastAuthenticatedUser:d,keepLastAuthenticatedUserAfterLogout:l});e.useEffect((()=>{if(j){const e=j.onSessionTokenChange(p),t=j.onUserChange(U);return()=>{e(),t()}}}),[j]);const g=e.useRef(!1),C=e.useRef(!1),v=e.useCallback((()=>{g.current||(g.current=!0,A(!0),s.withValidation(null==j?void 0:j.refresh)().then((()=>{A(!1)})))}),[j]),T=e.useCallback((()=>{C.current||(C.current=!0,L(!0),s.withValidation(j.me)().then((()=>{L(!1)})))}),[j]),q=e.useMemo((()=>({fetchUser:T,user:h,isUserLoading:S,isUserFetched:C.current,fetchSession:v,session:k,isSessionLoading:b,isSessionFetched:g.current,projectId:n,baseUrl:a,baseStaticUrl:u,storeLastAuthenticatedUser:d,keepLastAuthenticatedUserAfterLogout:l,setUser:U,setSession:p,sdk:j})),[T,h,S,C.current,v,k,b,g.current,n,a,u,U,p,j]);return o.default.createElement(t.default.Provider,{value:q},f)};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../../hooks/Context.js"),s=require("../../utils.js"),r=require("./useSdk.js");function n(e){return e&&e.__esModule?e:{default:e}}var o=n(e);exports.default=({projectId:n,baseUrl:u="",baseStaticUrl:a="",sessionTokenViaCookie:i=!1,persistTokens:c=!0,storeLastAuthenticatedUser:d=!0,keepLastAuthenticatedUserAfterLogout:l=!1,children:h})=>{const[f,U]=e.useState(),[k,S]=e.useState(),[p,L]=e.useState(!1),[A,b]=e.useState(!1),g=r.default({projectId:n,baseUrl:u,persistTokens:c,sessionTokenViaCookie:i,storeLastAuthenticatedUser:d,keepLastAuthenticatedUserAfterLogout:l});e.useEffect((()=>{if(g){const e=g.onSessionTokenChange(S),t=g.onUserChange(U);return()=>{e(),t()}}}),[g]);const j=e.useRef(!1),C=e.useRef(!1),v=e.useCallback((()=>{j.current||(j.current=!0,b(!0),s.withValidation(null==g?void 0:g.refresh)().then((()=>{b(!1)})))}),[g]),T=e.useCallback((()=>{C.current||(C.current=!0,L(!0),s.withValidation(g.me)().then((()=>{L(!1)})))}),[g]),q=e.useMemo((()=>({fetchUser:T,user:f,isUserLoading:p,isUserFetched:C.current,fetchSession:v,session:k,isSessionLoading:A,isSessionFetched:j.current,projectId:n,baseUrl:u,baseStaticUrl:a,storeLastAuthenticatedUser:d,keepLastAuthenticatedUserAfterLogout:l,setUser:U,setSession:S,sdk:g})),[T,f,p,C.current,v,k,A,j.current,n,u,a,U,S,g]);return o.default.createElement(t.default.Provider,{value:q},h)};
2
2
  //# sourceMappingURL=AuthProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AuthProvider.js","sources":["../../../../src/components/AuthProvider/AuthProvider.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport Context from '../../hooks/Context';\nimport { IContext, User } from '../../types';\nimport { withValidation } from '../../utils';\nimport useSdk from './useSdk';\n\ninterface IAuthProviderProps {\n projectId: string;\n baseUrl?: string;\n // allows to override the base URL that is used to fetch static files\n baseStaticUrl?: string;\n // If true, tokens will be stored on local storage and can accessed with getToken function\n persistTokens?: boolean;\n // If true, session token (jwt) will be stored on cookie. Otherwise, the session token will be\n // stored on local storage and can accessed with getSessionToken function\n // Use this option if session token will stay small (less than 1k)\n // NOTE: Session token can grow, especially in cases of using authorization, or adding custom claims\n sessionTokenViaCookie?: boolean;\n // If true, last authenticated user will be stored on local storage and can accessed with getUser function\n storeLastAuthenticatedUser?: boolean;\n // If true, last authenticated user will not be removed after logout\n keepLastAuthenticatedUserAfterLogout?: boolean;\n children?: React.ReactNode;\n}\n\nconst AuthProvider: FC<IAuthProviderProps> = ({\n projectId,\n baseUrl = '',\n baseStaticUrl = '',\n sessionTokenViaCookie = false,\n persistTokens = true,\n storeLastAuthenticatedUser = true,\n keepLastAuthenticatedUserAfterLogout = false,\n children = undefined,\n}) => {\n const [user, setUser] = useState<User>();\n const [session, setSession] = useState<string>();\n\n const [isUserLoading, setIsUserLoading] = useState(false);\n const [isSessionLoading, setIsSessionLoading] = useState(false);\n\n const sdk = useSdk({\n projectId,\n baseUrl,\n persistTokens,\n sessionTokenViaCookie,\n storeLastAuthenticatedUser,\n keepLastAuthenticatedUserAfterLogout,\n });\n\n useEffect(() => {\n if (sdk) {\n const unsubscribeSessionToken = sdk.onSessionTokenChange(setSession);\n const unsubscribeUser = sdk.onUserChange(setUser);\n\n return () => {\n unsubscribeSessionToken();\n unsubscribeUser();\n };\n }\n return undefined;\n }, [sdk]);\n\n const isSessionFetched = useRef(false);\n const isUserFetched = useRef(false);\n\n const fetchSession = useCallback(() => {\n // We want that the session will fetched only once\n if (isSessionFetched.current) return;\n isSessionFetched.current = true;\n\n setIsSessionLoading(true);\n withValidation(sdk?.refresh)().then(() => {\n setIsSessionLoading(false);\n });\n }, [sdk]);\n\n const fetchUser = useCallback(() => {\n // We want that the user will fetched only once\n if (isUserFetched.current) return;\n isUserFetched.current = true;\n\n setIsUserLoading(true);\n withValidation(sdk.me)().then(() => {\n setIsUserLoading(false);\n });\n }, [sdk]);\n\n const value = useMemo<IContext>(\n () => ({\n fetchUser,\n user,\n isUserLoading,\n isUserFetched: isUserFetched.current,\n fetchSession,\n session,\n isSessionLoading,\n isSessionFetched: isSessionFetched.current,\n projectId,\n baseUrl,\n baseStaticUrl,\n storeLastAuthenticatedUser,\n keepLastAuthenticatedUserAfterLogout,\n setUser,\n setSession,\n sdk,\n }),\n [\n fetchUser,\n user,\n isUserLoading,\n isUserFetched.current,\n fetchSession,\n session,\n isSessionLoading,\n isSessionFetched.current,\n projectId,\n baseUrl,\n baseStaticUrl,\n setUser,\n setSession,\n sdk,\n ],\n );\n return <Context.Provider value={value}>{children}</Context.Provider>;\n};\n\nexport default AuthProvider;\n"],"names":["projectId","baseUrl","baseStaticUrl","sessionTokenViaCookie","persistTokens","storeLastAuthenticatedUser","keepLastAuthenticatedUserAfterLogout","children","user","setUser","useState","session","setSession","isUserLoading","setIsUserLoading","isSessionLoading","setIsSessionLoading","sdk","useSdk","useEffect","unsubscribeSessionToken","onSessionTokenChange","unsubscribeUser","onUserChange","isSessionFetched","useRef","isUserFetched","fetchSession","useCallback","current","withValidation","refresh","then","fetchUser","me","value","useMemo","React","createElement","Context","Provider"],"mappings":"uRAgC6C,EAC3CA,YACAC,UAAU,GACVC,gBAAgB,GAChBC,yBAAwB,EACxBC,iBAAgB,EAChBC,8BAA6B,EAC7BC,wCAAuC,EACvCC,eAEA,MAAOC,EAAMC,GAAWC,EAAQA,YACzBC,EAASC,GAAcF,EAAQA,YAE/BG,EAAeC,GAAoBJ,EAAQA,UAAC,IAC5CK,EAAkBC,GAAuBN,EAAQA,UAAC,GAEnDO,EAAMC,EAAAA,QAAO,CACjBlB,YACAC,UACAG,gBACAD,wBACAE,6BACAC,yCAGFa,EAAAA,WAAU,KACR,GAAIF,EAAK,CACP,MAAMG,EAA0BH,EAAII,qBAAqBT,GACnDU,EAAkBL,EAAIM,aAAad,GAEzC,MAAO,KACLW,IACAE,GAAiB,CAEpB,CACe,GACf,CAACL,IAEJ,MAAMO,EAAmBC,UAAO,GAC1BC,EAAgBD,UAAO,GAEvBE,EAAeC,EAAAA,aAAY,KAE3BJ,EAAiBK,UACrBL,EAAiBK,SAAU,EAE3Bb,GAAoB,GACpBc,EAAAA,eAAeb,eAAAA,EAAKc,QAApBD,GAA+BE,MAAK,KAClChB,GAAoB,EAAM,IAC1B,GACD,CAACC,IAEEgB,EAAYL,EAAAA,aAAY,KAExBF,EAAcG,UAClBH,EAAcG,SAAU,EAExBf,GAAiB,GACjBgB,EAAAA,eAAeb,EAAIiB,GAAnBJ,GAAyBE,MAAK,KAC5BlB,GAAiB,EAAM,IACvB,GACD,CAACG,IAEEkB,EAAQC,EAAAA,SACZ,KAAO,CACLH,YACAzB,OACAK,gBACAa,cAAeA,EAAcG,QAC7BF,eACAhB,UACAI,mBACAS,iBAAkBA,EAAiBK,QACnC7B,YACAC,UACAC,gBACAG,6BACAC,uCACAG,UACAG,aACAK,SAEF,CACEgB,EACAzB,EACAK,EACAa,EAAcG,QACdF,EACAhB,EACAI,EACAS,EAAiBK,QACjB7B,EACAC,EACAC,EACAO,EACAG,EACAK,IAGJ,OAAOoB,EAAA,QAAAC,cAACC,UAAQC,SAAQ,CAACL,MAAOA,GAAQ5B,EAA4B"}
1
+ {"version":3,"file":"AuthProvider.js","sources":["../../../../src/components/AuthProvider/AuthProvider.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport Context from '../../hooks/Context';\nimport { IContext, User } from '../../types';\nimport { withValidation } from '../../utils';\nimport useSdk from './useSdk';\n\ntype SameSite = 'Strict' | 'Lax' | 'None';\ninterface IAuthProviderProps {\n projectId: string;\n baseUrl?: string;\n // allows to override the base URL that is used to fetch static files\n baseStaticUrl?: string;\n // If true, tokens will be stored on local storage and can accessed with getToken function\n persistTokens?: boolean;\n // If true, session token (jwt) will be stored on cookie. Otherwise, the session token will be\n // stored on local storage and can accessed with getSessionToken function\n // Use this option if session token will stay small (less than 1k)\n // NOTE: Session token can grow, especially in cases of using authorization, or adding custom claims\n sessionTokenViaCookie?: boolean | { sameSite: SameSite };\n // If true, last authenticated user will be stored on local storage and can accessed with getUser function\n storeLastAuthenticatedUser?: boolean;\n // If true, last authenticated user will not be removed after logout\n keepLastAuthenticatedUserAfterLogout?: boolean;\n children?: React.ReactNode;\n}\n\nconst AuthProvider: FC<IAuthProviderProps> = ({\n projectId,\n baseUrl = '',\n baseStaticUrl = '',\n sessionTokenViaCookie = false,\n persistTokens = true,\n storeLastAuthenticatedUser = true,\n keepLastAuthenticatedUserAfterLogout = false,\n children = undefined,\n}) => {\n const [user, setUser] = useState<User>();\n const [session, setSession] = useState<string>();\n\n const [isUserLoading, setIsUserLoading] = useState(false);\n const [isSessionLoading, setIsSessionLoading] = useState(false);\n\n const sdk = useSdk({\n projectId,\n baseUrl,\n persistTokens,\n sessionTokenViaCookie,\n storeLastAuthenticatedUser,\n keepLastAuthenticatedUserAfterLogout,\n });\n\n useEffect(() => {\n if (sdk) {\n const unsubscribeSessionToken = sdk.onSessionTokenChange(setSession);\n const unsubscribeUser = sdk.onUserChange(setUser);\n\n return () => {\n unsubscribeSessionToken();\n unsubscribeUser();\n };\n }\n return undefined;\n }, [sdk]);\n\n const isSessionFetched = useRef(false);\n const isUserFetched = useRef(false);\n\n const fetchSession = useCallback(() => {\n // We want that the session will fetched only once\n if (isSessionFetched.current) return;\n isSessionFetched.current = true;\n\n setIsSessionLoading(true);\n withValidation(sdk?.refresh)().then(() => {\n setIsSessionLoading(false);\n });\n }, [sdk]);\n\n const fetchUser = useCallback(() => {\n // We want that the user will fetched only once\n if (isUserFetched.current) return;\n isUserFetched.current = true;\n\n setIsUserLoading(true);\n withValidation(sdk.me)().then(() => {\n setIsUserLoading(false);\n });\n }, [sdk]);\n\n const value = useMemo<IContext>(\n () => ({\n fetchUser,\n user,\n isUserLoading,\n isUserFetched: isUserFetched.current,\n fetchSession,\n session,\n isSessionLoading,\n isSessionFetched: isSessionFetched.current,\n projectId,\n baseUrl,\n baseStaticUrl,\n storeLastAuthenticatedUser,\n keepLastAuthenticatedUserAfterLogout,\n setUser,\n setSession,\n sdk,\n }),\n [\n fetchUser,\n user,\n isUserLoading,\n isUserFetched.current,\n fetchSession,\n session,\n isSessionLoading,\n isSessionFetched.current,\n projectId,\n baseUrl,\n baseStaticUrl,\n setUser,\n setSession,\n sdk,\n ],\n );\n return <Context.Provider value={value}>{children}</Context.Provider>;\n};\n\nexport default AuthProvider;\n"],"names":["projectId","baseUrl","baseStaticUrl","sessionTokenViaCookie","persistTokens","storeLastAuthenticatedUser","keepLastAuthenticatedUserAfterLogout","children","user","setUser","useState","session","setSession","isUserLoading","setIsUserLoading","isSessionLoading","setIsSessionLoading","sdk","useSdk","useEffect","unsubscribeSessionToken","onSessionTokenChange","unsubscribeUser","onUserChange","isSessionFetched","useRef","isUserFetched","fetchSession","useCallback","current","withValidation","refresh","then","fetchUser","me","value","useMemo","React","default","createElement","Context","Provider"],"mappings":"kQAiC6C,EAC3CA,YACAC,UAAU,GACVC,gBAAgB,GAChBC,yBAAwB,EACxBC,iBAAgB,EAChBC,8BAA6B,EAC7BC,wCAAuC,EACvCC,eAEA,MAAOC,EAAMC,GAAWC,EAAQA,YACzBC,EAASC,GAAcF,EAAQA,YAE/BG,EAAeC,GAAoBJ,EAAQA,UAAC,IAC5CK,EAAkBC,GAAuBN,EAAQA,UAAC,GAEnDO,EAAMC,EAAAA,QAAO,CACjBlB,YACAC,UACAG,gBACAD,wBACAE,6BACAC,yCAGFa,EAAAA,WAAU,KACR,GAAIF,EAAK,CACP,MAAMG,EAA0BH,EAAII,qBAAqBT,GACnDU,EAAkBL,EAAIM,aAAad,GAEzC,MAAO,KACLW,IACAE,GAAiB,CAEpB,CACe,GACf,CAACL,IAEJ,MAAMO,EAAmBC,UAAO,GAC1BC,EAAgBD,UAAO,GAEvBE,EAAeC,EAAAA,aAAY,KAE3BJ,EAAiBK,UACrBL,EAAiBK,SAAU,EAE3Bb,GAAoB,GACpBc,EAAAA,eAAeb,eAAAA,EAAKc,QAApBD,GAA+BE,MAAK,KAClChB,GAAoB,EAAM,IAC1B,GACD,CAACC,IAEEgB,EAAYL,EAAAA,aAAY,KAExBF,EAAcG,UAClBH,EAAcG,SAAU,EAExBf,GAAiB,GACjBgB,EAAAA,eAAeb,EAAIiB,GAAnBJ,GAAyBE,MAAK,KAC5BlB,GAAiB,EAAM,IACvB,GACD,CAACG,IAEEkB,EAAQC,EAAAA,SACZ,KAAO,CACLH,YACAzB,OACAK,gBACAa,cAAeA,EAAcG,QAC7BF,eACAhB,UACAI,mBACAS,iBAAkBA,EAAiBK,QACnC7B,YACAC,UACAC,gBACAG,6BACAC,uCACAG,UACAG,aACAK,SAEF,CACEgB,EACAzB,EACAK,EACAa,EAAcG,QACdF,EACAhB,EACAI,EACAS,EAAiBK,QACjB7B,EACAC,EACAC,EACAO,EACAG,EACAK,IAGJ,OAAOoB,EAAAC,QAAAC,cAACC,UAAQC,SAAQ,CAACN,MAAOA,GAAQ5B,EAA4B"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("./Descope.js");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=n(e);exports.SignInFlow=e=>r.default.createElement(t.default,Object.assign({},e,{flowId:"sign-in"})),exports.SignUpFlow=e=>r.default.createElement(t.default,Object.assign({},e,{flowId:"sign-up"})),exports.SignUpOrInFlow=e=>r.default.createElement(t.default,Object.assign({},e,{flowId:"sign-up-or-in"}));
1
+ "use strict";var e=require("react"),t=require("./Descope.js");function n(e){return e&&e.__esModule?e:{default:e}}var r=n(e);exports.SignInFlow=e=>r.default.createElement(t.default,Object.assign({},e,{flowId:"sign-in"})),exports.SignUpFlow=e=>r.default.createElement(t.default,Object.assign({},e,{flowId:"sign-up"})),exports.SignUpOrInFlow=e=>r.default.createElement(t.default,Object.assign({},e,{flowId:"sign-up-or-in"}));
2
2
  //# sourceMappingURL=DefaultFlows.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultFlows.js","sources":["../../../src/components/DefaultFlows.tsx"],"sourcesContent":["import React from 'react';\nimport { DefaultFlowProps } from '../types';\nimport Descope from './Descope';\n\nexport const SignInFlow = (props: DefaultFlowProps) => (\n\t<Descope {...props} flowId=\"sign-in\" />\n);\n\nexport const SignUpFlow = (props: DefaultFlowProps) => (\n\t<Descope {...props} flowId=\"sign-up\" />\n);\n\nexport const SignUpOrInFlow = (props: DefaultFlowProps) => (\n\t<Descope {...props} flowId=\"sign-up-or-in\" />\n);\n"],"names":["props","React","Descope","Object","assign","flowId"],"mappings":"2NAI2BA,GAC1BC,wBAACC,EAAO,QAAAC,OAAAC,OAAA,CAAA,EAAKJ,EAAO,CAAAK,OAAO,gCAGDL,GAC1BC,wBAACC,EAAO,QAAAC,OAAAC,OAAA,CAAA,EAAKJ,EAAO,CAAAK,OAAO,oCAGGL,GAC9BC,wBAACC,EAAAA,QAAOC,OAAAC,OAAA,CAAA,EAAKJ,EAAO,CAAAK,OAAO"}
1
+ {"version":3,"file":"DefaultFlows.js","sources":["../../../src/components/DefaultFlows.tsx"],"sourcesContent":["import React from 'react';\nimport { DefaultFlowProps } from '../types';\nimport Descope from './Descope';\n\nexport const SignInFlow = (props: DefaultFlowProps) => (\n\t<Descope {...props} flowId=\"sign-in\" />\n);\n\nexport const SignUpFlow = (props: DefaultFlowProps) => (\n\t<Descope {...props} flowId=\"sign-up\" />\n);\n\nexport const SignUpOrInFlow = (props: DefaultFlowProps) => (\n\t<Descope {...props} flowId=\"sign-up-or-in\" />\n);\n"],"names":["props","React","Descope","default","Object","assign","flowId"],"mappings":"+IAI2BA,GAC1BC,wBAACC,EAAOC,QAAAC,OAAAC,OAAA,CAAA,EAAKL,EAAO,CAAAM,OAAO,gCAGDN,GAC1BC,wBAACC,EAAOC,QAAAC,OAAAC,OAAA,CAAA,EAAKL,EAAO,CAAAM,OAAO,oCAGGN,GAC9BC,wBAACC,EAAAA,QAAOE,OAAAC,OAAA,CAAA,EAAKL,EAAO,CAAAM,OAAO"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../constants.js"),r=require("../hooks/Context.js"),n=require("../sdk.js"),s=require("./withPropsMapping/index.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var l=a(e);const u=e.lazy((async()=>(((null===customElements||void 0===customElements?void 0:customElements.get("descope-wc"))||await Promise.resolve().then((function(){return o(require("@descope/web-component"))})).then((e=>e.default))).sdkConfigOverrides={baseHeaders:t.baseHeaders,persistTokens:!1,hooks:{get beforeRequest(){return n.getGlobalSdk().httpClient.hooks.beforeRequest},set beforeRequest(e){}}},{default:s.default(l.default.forwardRef(((e,t)=>l.default.createElement("descope-wc",Object.assign({ref:t},e)))))}))),c=l.default.forwardRef((({flowId:t,onSuccess:n,onError:s,onReady:a,logger:o,tenant:c,theme:d,locale:i,debug:f,client:v,form:m,telemetryKey:p,redirectUrl:E,autoFocus:b,validateOnBlur:y,restartOnError:g,errorTransformer:L,styleId:h},j)=>{const[k,O]=e.useState(null);e.useImperativeHandle(j,(()=>k));const{projectId:w,baseUrl:q,baseStaticUrl:U,storeLastAuthenticatedUser:R,keepLastAuthenticatedUserAfterLogout:I,sdk:S}=l.default.useContext(r.default),C=e.useCallback((async e=>{await S.httpClient.hooks.afterRequest({},new Response(JSON.stringify(e.detail))),n&&n(e)}),[n]);return e.useEffect((()=>{const e=k;return null==e||e.addEventListener("success",C),s&&(null==e||e.addEventListener("error",s)),a&&(null==e||e.addEventListener("ready",a)),()=>{s&&(null==e||e.removeEventListener("error",s)),a&&(null==e||e.removeEventListener("ready",a)),null==e||e.removeEventListener("success",C)}}),[k,s,C]),e.useEffect((()=>{const e=k;return null==e||e.addEventListener("success",C),()=>{null==e||e.removeEventListener("success",C)}}),[k,C]),e.useEffect((()=>{const e=k;return s&&(null==e||e.addEventListener("error",s)),()=>{s&&(null==e||e.removeEventListener("error",s))}}),[k,s]),e.useEffect((()=>{const e=k;return a&&(null==e||e.addEventListener("ready",a)),()=>{a&&(null==e||e.removeEventListener("error",a))}}),[k,a]),l.default.createElement("form",null,l.default.createElement(e.Suspense,{fallback:null},l.default.createElement(u,{projectId:w,flowId:t,baseUrl:q,baseStaticUrl:U,ref:O,telemetryKey:p,redirectUrl:E,autoFocus:b,styleId:h,validateOnBlur:y,restartOnError:g,keepLastAuthenticatedUserAfterLogout:I,tenant:c,"theme.attr":d,"locale.attr":i,"form.attr":m,"client.attr":v,"debug.attr":f,"store-last-authenticated-user.attr":R,"errorTransformer.prop":L,"logger.prop":o})))}));exports.default=c;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../constants.js"),r=require("../hooks/Context.js"),s=require("../sdk.js"),n=require("./withPropsMapping/index.js");function a(e){return e&&e.__esModule?e:{default:e}}var l=a(e);const o=e.lazy((async()=>(((null===customElements||void 0===customElements?void 0:customElements.get("descope-wc"))||await import("@descope/web-component").then((e=>e.default))).sdkConfigOverrides={baseHeaders:t.baseHeaders,persistTokens:!1,hooks:{get beforeRequest(){return s.getGlobalSdk().httpClient.hooks.beforeRequest},set beforeRequest(e){}}},{default:n.default(l.default.forwardRef(((e,t)=>l.default.createElement("descope-wc",Object.assign({ref:t},e)))))}))),u=l.default.forwardRef((({flowId:t,onSuccess:s,onError:n,onReady:a,logger:u,tenant:d,theme:c,locale:i,debug:f,client:p,form:m,telemetryKey:v,redirectUrl:E,autoFocus:b,validateOnBlur:L,restartOnError:g,errorTransformer:h,styleId:y,onScreenUpdate:k,children:U},w)=>{const[q,S]=e.useState(null);e.useImperativeHandle(w,(()=>q));const{projectId:j,baseUrl:C,baseStaticUrl:O,baseCdnUrl:R,storeLastAuthenticatedUser:I,keepLastAuthenticatedUserAfterLogout:x,sdk:A}=l.default.useContext(r.default),_=e.useCallback((async e=>{await A.httpClient.hooks.afterRequest({},new Response(JSON.stringify(e.detail))),s&&s(e)}),[s]);return e.useEffect((()=>{const e=q;return null==e||e.addEventListener("success",_),n&&(null==e||e.addEventListener("error",n)),a&&(null==e||e.addEventListener("ready",a)),()=>{n&&(null==e||e.removeEventListener("error",n)),a&&(null==e||e.removeEventListener("ready",a)),null==e||e.removeEventListener("success",_)}}),[q,n,_]),e.useEffect((()=>{const e=q;return null==e||e.addEventListener("success",_),()=>{null==e||e.removeEventListener("success",_)}}),[q,_]),e.useEffect((()=>{const e=q;return n&&(null==e||e.addEventListener("error",n)),()=>{n&&(null==e||e.removeEventListener("error",n))}}),[q,n]),e.useEffect((()=>{const e=q;return a&&(null==e||e.addEventListener("ready",a)),()=>{a&&(null==e||e.removeEventListener("error",a))}}),[q,a]),l.default.createElement("form",null,l.default.createElement(e.Suspense,{fallback:null},l.default.createElement(o,{projectId:j,flowId:t,baseUrl:C,baseStaticUrl:O,baseCdnUrl:R,ref:S,telemetryKey:v,redirectUrl:E,autoFocus:b,styleId:y,validateOnBlur:L,restartOnError:g,keepLastAuthenticatedUserAfterLogout:x,tenant:d,"theme.attr":c,"locale.attr":i,"form.attr":m,"client.attr":p,"debug.attr":f,"store-last-authenticated-user.attr":I,"errorTransformer.prop":h,"logger.prop":u,"onScreenUpdate.prop":k},U)))}));exports.default=u;
2
2
  //# sourceMappingURL=Descope.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Descope.js","sources":["../../../src/components/Descope.tsx"],"sourcesContent":["import React, {\n lazy,\n Suspense,\n useCallback,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react';\nimport { baseHeaders } from '../constants';\nimport Context from '../hooks/Context';\nimport { DescopeProps } from '../types';\nimport { getGlobalSdk } from '../sdk';\nimport withPropsMapping from './withPropsMapping';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst DescopeWC = lazy(async () => {\n const WebComponent: any =\n customElements?.get('descope-wc') ||\n (await import('@descope/web-component').then((module) => module.default));\n\n WebComponent.sdkConfigOverrides = {\n // Overrides the web-component's base headers to indicate usage via the React SDK\n baseHeaders,\n // Disables token persistence within the web-component to delegate token management\n // to the global SDK hooks. This ensures token handling aligns with the SDK's configuration,\n // and web-component requests leverage the global SDK's beforeRequest hooks for consistency\n persistTokens: false,\n hooks: {\n get beforeRequest() {\n // Retrieves the beforeRequest hook from the global SDK, which is initialized\n // within the AuthProvider using the desired configuration. This approach ensures\n // the web-component utilizes the same beforeRequest hooks as the global SDK\n return getGlobalSdk().httpClient.hooks.beforeRequest;\n },\n set beforeRequest(_) {\n // The empty setter prevents runtime errors when attempts are made to assign a value to 'beforeRequest'.\n // JavaScript objects default to having both getters and setters\n },\n },\n };\n\n return {\n default: withPropsMapping(\n React.forwardRef<HTMLElement>((props, ref) => (\n\t<descope-wc ref={ref} {...props} />\n )),\n ),\n };\n});\n\nconst Descope = React.forwardRef<HTMLElement, DescopeProps>(\n (\n {\n flowId,\n onSuccess,\n onError,\n onReady,\n logger,\n tenant,\n theme,\n locale,\n debug,\n client,\n form,\n telemetryKey,\n redirectUrl,\n autoFocus,\n validateOnBlur,\n restartOnError,\n errorTransformer,\n styleId,\n },\n ref,\n ) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const {\n projectId,\n baseUrl,\n baseStaticUrl,\n storeLastAuthenticatedUser,\n keepLastAuthenticatedUserAfterLogout,\n sdk,\n } = React.useContext(Context);\n\n const handleSuccess = useCallback(\n async (e: CustomEvent) => {\n // In order to make sure all the after-hooks are running with the success response\n // we are generating a fake response with the success data and calling the http client after hook fn with it\n await sdk.httpClient.hooks.afterRequest(\n {} as any,\n new Response(JSON.stringify(e.detail)),\n );\n if (onSuccess) {\n onSuccess(e);\n }\n },\n [onSuccess],\n );\n\n useEffect(() => {\n const ele = innerRef;\n ele?.addEventListener('success', handleSuccess);\n if (onError) ele?.addEventListener('error', onError);\n if (onReady) ele?.addEventListener('ready', onReady);\n\n return () => {\n if (onError) ele?.removeEventListener('error', onError);\n if (onReady) ele?.removeEventListener('ready', onReady);\n\n ele?.removeEventListener('success', handleSuccess);\n };\n }, [innerRef, onError, handleSuccess]);\n\n // Success event\n useEffect(() => {\n const ele = innerRef;\n ele?.addEventListener('success', handleSuccess);\n return () => {\n ele?.removeEventListener('success', handleSuccess);\n };\n }, [innerRef, handleSuccess]);\n\n // Error event\n useEffect(() => {\n const ele = innerRef;\n if (onError) ele?.addEventListener('error', onError);\n\n return () => {\n if (onError) ele?.removeEventListener('error', onError);\n };\n }, [innerRef, onError]);\n\n // Ready event\n useEffect(() => {\n const ele = innerRef;\n if (onReady) ele?.addEventListener('ready', onReady);\n\n return () => {\n if (onReady) ele?.removeEventListener('error', onReady);\n };\n }, [innerRef, onReady]);\n\n return (\n /**\n * in order to avoid redundant remounting of the WC, we are wrapping it with a form element\n * this workaround is done in order to support webauthn passkeys\n * it can be removed once this issue will be solved\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1404106#c2\n */\n\t<form>\n\t\t<Suspense fallback={null}>\n\t\t\t<DescopeWC\n projectId={projectId}\n flowId={flowId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n ref={setInnerRef}\n telemetryKey={telemetryKey}\n redirectUrl={redirectUrl}\n autoFocus={autoFocus}\n styleId={styleId}\n validateOnBlur={validateOnBlur}\n restartOnError={restartOnError}\n keepLastAuthenticatedUserAfterLogout={\n keepLastAuthenticatedUserAfterLogout\n }\n tenant={tenant}\n {...{\n // attributes\n 'theme.attr': theme,\n 'locale.attr': locale,\n 'form.attr': form,\n 'client.attr': client,\n 'debug.attr': debug,\n 'store-last-authenticated-user.attr': storeLastAuthenticatedUser,\n // props\n 'errorTransformer.prop': errorTransformer,\n 'logger.prop': logger,\n }}\n />\n\t\t</Suspense>\n\t</form>\n );\n },\n);\n\nexport default Descope;\n"],"names":["DescopeWC","lazy","async","customElements","get","Promise","resolve","then","_interopNamespace","require","module","default","sdkConfigOverrides","baseHeaders","persistTokens","hooks","beforeRequest","getGlobalSdk","httpClient","_","withPropsMapping","React","forwardRef","props","ref","createElement","Object","assign","Descope","flowId","onSuccess","onError","onReady","logger","tenant","theme","locale","debug","client","form","telemetryKey","redirectUrl","autoFocus","validateOnBlur","restartOnError","errorTransformer","styleId","innerRef","setInnerRef","useState","useImperativeHandle","projectId","baseUrl","baseStaticUrl","storeLastAuthenticatedUser","keepLastAuthenticatedUserAfterLogout","sdk","useContext","Context","handleSuccess","useCallback","e","afterRequest","Response","JSON","stringify","detail","useEffect","ele","addEventListener","removeEventListener","Suspense","fallback"],"mappings":"2kBAeA,MAAMA,EAAYC,EAAIA,MAACC,YAEnB,OAAAC,qBAAA,IAAAA,oBAAA,EAAAA,eAAgBC,IAAI,sBACbC,QAAAC,UAAAC,MAAA,WAAA,OAAAC,EAAAC,QAAO,0BAAwB,IAAEF,MAAMG,GAAWA,EAAOC,WAErDC,mBAAqB,aAEhCC,EAAWA,YAIXC,eAAe,EACfC,MAAO,CACL,iBAAIC,GAIF,OAAOC,iBAAeC,WAAWH,MAAMC,aACxC,EACD,iBAAIA,CAAcG,GAGjB,IAIE,CACLR,QAASS,EAAgB,QACvBC,UAAMC,YAAwB,CAACC,EAAOC,IAC3CH,EAAAA,QAAYI,cAAA,aAAAC,OAAAC,OAAA,CAAAH,IAAKA,GAASD,WAMrBK,EAAUP,EAAK,QAACC,YACpB,EAEIO,SACAC,YACAC,UACAC,UACAC,SACAC,SACAC,QACAC,SACAC,QACAC,SACAC,OACAC,eACAC,cACAC,YACAC,iBACAC,iBACAC,mBACAC,WAEFtB,KAEA,MAAOuB,EAAUC,GAAeC,EAAQA,SAAC,MAEzCC,sBAAoB1B,GAAK,IAAMuB,IAE/B,MAAMI,UACJA,EAASC,QACTA,EAAOC,cACPA,EAAaC,2BACbA,EAA0BC,qCAC1BA,EAAoCC,IACpCA,GACEnC,EAAAA,QAAMoC,WAAWC,EAAO,SAEtBC,EAAgBC,eACpB1D,MAAO2D,UAGCL,EAAItC,WAAWH,MAAM+C,aACzB,CAAA,EACA,IAAIC,SAASC,KAAKC,UAAUJ,EAAEK,UAE5BpC,GACFA,EAAU+B,EACX,GAEH,CAAC/B,IA8CH,OA3CAqC,EAAAA,WAAU,KACR,MAAMC,EAAMrB,EAKZ,OAJAqB,SAAAA,EAAKC,iBAAiB,UAAWV,GAC7B5B,IAASqC,SAAAA,EAAKC,iBAAiB,QAAStC,IACxCC,IAASoC,SAAAA,EAAKC,iBAAiB,QAASrC,IAErC,KACDD,IAASqC,SAAAA,EAAKE,oBAAoB,QAASvC,IAC3CC,IAASoC,SAAAA,EAAKE,oBAAoB,QAAStC,IAE/CoC,SAAAA,EAAKE,oBAAoB,UAAWX,EAAc,CACnD,GACA,CAACZ,EAAUhB,EAAS4B,IAGvBQ,EAAAA,WAAU,KACR,MAAMC,EAAMrB,EAEZ,OADAqB,SAAAA,EAAKC,iBAAiB,UAAWV,GAC1B,KACLS,SAAAA,EAAKE,oBAAoB,UAAWX,EAAc,CACnD,GACA,CAACZ,EAAUY,IAGdQ,EAAAA,WAAU,KACR,MAAMC,EAAMrB,EAGZ,OAFIhB,IAASqC,SAAAA,EAAKC,iBAAiB,QAAStC,IAErC,KACDA,IAASqC,SAAAA,EAAKE,oBAAoB,QAASvC,GAAQ,CACxD,GACA,CAACgB,EAAUhB,IAGdoC,EAAAA,WAAU,KACR,MAAMC,EAAMrB,EAGZ,OAFIf,IAASoC,SAAAA,EAAKC,iBAAiB,QAASrC,IAErC,KACDA,IAASoC,SAAAA,EAAKE,oBAAoB,QAAStC,GAAQ,CACxD,GACA,CAACe,EAAUf,IASjBX,UAAAI,cAAA,OAAA,KACCJ,EAAAA,QAAAI,cAAC8C,EAAAA,SAAQ,CAACC,SAAU,MACnBnD,EAAAA,QAACI,cAAAzB,EACQ,CAAAmD,UAAWA,EACXtB,OAAQA,EACRuB,QAASA,EACTC,cAAeA,EACf7B,IAAKwB,EACLR,aAAcA,EACdC,YAAaA,EACbC,UAAWA,EACXI,QAASA,EACTH,eAAgBA,EAChBC,eAAgBA,EAChBW,qCACEA,EAEFrB,OAAQA,EAGN,aAAcC,EACd,cAAeC,EACf,YAAaG,EACb,cAAeD,EACf,aAAcD,EACd,qCAAsCiB,EAEtC,wBAAyBT,EACzB,cAAeZ,KAKvB"}
1
+ {"version":3,"file":"Descope.js","sources":["../../../src/components/Descope.tsx"],"sourcesContent":["import React, {\n lazy,\n Suspense,\n useCallback,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react';\nimport { baseHeaders } from '../constants';\nimport Context from '../hooks/Context';\nimport { DescopeProps } from '../types';\nimport { getGlobalSdk } from '../sdk';\nimport withPropsMapping from './withPropsMapping';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst DescopeWC = lazy(async () => {\n const WebComponent: any =\n customElements?.get('descope-wc') ||\n (await import('@descope/web-component').then((module) => module.default));\n\n WebComponent.sdkConfigOverrides = {\n // Overrides the web-component's base headers to indicate usage via the React SDK\n baseHeaders,\n // Disables token persistence within the web-component to delegate token management\n // to the global SDK hooks. This ensures token handling aligns with the SDK's configuration,\n // and web-component requests leverage the global SDK's beforeRequest hooks for consistency\n persistTokens: false,\n hooks: {\n get beforeRequest() {\n // Retrieves the beforeRequest hook from the global SDK, which is initialized\n // within the AuthProvider using the desired configuration. This approach ensures\n // the web-component utilizes the same beforeRequest hooks as the global SDK\n return getGlobalSdk().httpClient.hooks.beforeRequest;\n },\n set beforeRequest(_) {\n // The empty setter prevents runtime errors when attempts are made to assign a value to 'beforeRequest'.\n // JavaScript objects default to having both getters and setters\n },\n },\n };\n\n return {\n default: withPropsMapping(\n React.forwardRef<HTMLElement>((props, ref) => (\n <descope-wc ref={ref} {...props} />\n )),\n ),\n };\n});\n\nconst Descope = React.forwardRef<HTMLElement, DescopeProps>(\n (\n {\n flowId,\n onSuccess,\n onError,\n onReady,\n logger,\n tenant,\n theme,\n locale,\n debug,\n client,\n form,\n telemetryKey,\n redirectUrl,\n autoFocus,\n validateOnBlur,\n restartOnError,\n errorTransformer,\n styleId,\n onScreenUpdate,\n children,\n },\n ref,\n ) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const {\n projectId,\n baseUrl,\n baseStaticUrl,\n baseCdnUrl,\n storeLastAuthenticatedUser,\n keepLastAuthenticatedUserAfterLogout,\n sdk,\n } = React.useContext(Context);\n\n const handleSuccess = useCallback(\n async (e: CustomEvent) => {\n // In order to make sure all the after-hooks are running with the success response\n // we are generating a fake response with the success data and calling the http client after hook fn with it\n await sdk.httpClient.hooks.afterRequest(\n {} as any,\n new Response(JSON.stringify(e.detail)),\n );\n if (onSuccess) {\n onSuccess(e);\n }\n },\n [onSuccess],\n );\n\n useEffect(() => {\n const ele = innerRef;\n ele?.addEventListener('success', handleSuccess);\n if (onError) ele?.addEventListener('error', onError);\n if (onReady) ele?.addEventListener('ready', onReady);\n\n return () => {\n if (onError) ele?.removeEventListener('error', onError);\n if (onReady) ele?.removeEventListener('ready', onReady);\n\n ele?.removeEventListener('success', handleSuccess);\n };\n }, [innerRef, onError, handleSuccess]);\n\n // Success event\n useEffect(() => {\n const ele = innerRef;\n ele?.addEventListener('success', handleSuccess);\n return () => {\n ele?.removeEventListener('success', handleSuccess);\n };\n }, [innerRef, handleSuccess]);\n\n // Error event\n useEffect(() => {\n const ele = innerRef;\n if (onError) ele?.addEventListener('error', onError);\n\n return () => {\n if (onError) ele?.removeEventListener('error', onError);\n };\n }, [innerRef, onError]);\n\n // Ready event\n useEffect(() => {\n const ele = innerRef;\n if (onReady) ele?.addEventListener('ready', onReady);\n\n return () => {\n if (onReady) ele?.removeEventListener('error', onReady);\n };\n }, [innerRef, onReady]);\n\n return (\n /**\n * in order to avoid redundant remounting of the WC, we are wrapping it with a form element\n * this workaround is done in order to support webauthn passkeys\n * it can be removed once this issue will be solved\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1404106#c2\n */\n <form>\n <Suspense fallback={null}>\n <DescopeWC\n projectId={projectId}\n flowId={flowId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n baseCdnUrl={baseCdnUrl}\n ref={setInnerRef}\n telemetryKey={telemetryKey}\n redirectUrl={redirectUrl}\n autoFocus={autoFocus}\n styleId={styleId}\n validateOnBlur={validateOnBlur}\n restartOnError={restartOnError}\n keepLastAuthenticatedUserAfterLogout={\n keepLastAuthenticatedUserAfterLogout\n }\n tenant={tenant}\n {...{\n // attributes\n 'theme.attr': theme,\n 'locale.attr': locale,\n 'form.attr': form,\n 'client.attr': client,\n 'debug.attr': debug,\n 'store-last-authenticated-user.attr': storeLastAuthenticatedUser,\n // props\n 'errorTransformer.prop': errorTransformer,\n 'logger.prop': logger,\n 'onScreenUpdate.prop': onScreenUpdate,\n }}\n >\n {children}\n </DescopeWC>\n </Suspense>\n </form>\n );\n },\n);\n\nexport default Descope;\n"],"names":["DescopeWC","lazy","async","customElements","get","import","then","module","default","sdkConfigOverrides","baseHeaders","persistTokens","hooks","beforeRequest","getGlobalSdk","httpClient","_","withPropsMapping","React","forwardRef","props","ref","createElement","Object","assign","Descope","flowId","onSuccess","onError","onReady","logger","tenant","theme","locale","debug","client","form","telemetryKey","redirectUrl","autoFocus","validateOnBlur","restartOnError","errorTransformer","styleId","onScreenUpdate","children","innerRef","setInnerRef","useState","useImperativeHandle","projectId","baseUrl","baseStaticUrl","baseCdnUrl","storeLastAuthenticatedUser","keepLastAuthenticatedUserAfterLogout","sdk","useContext","Context","handleSuccess","useCallback","e","afterRequest","Response","JSON","stringify","detail","useEffect","ele","addEventListener","removeEventListener","Suspense","fallback"],"mappings":"uRAeA,MAAMA,EAAYC,EAAIA,MAACC,YAEnB,OAAAC,qBAAA,IAAAA,oBAAA,EAAAA,eAAgBC,IAAI,sBACbC,OAAO,0BAA0BC,MAAMC,GAAWA,EAAOC,WAErDC,mBAAqB,aAEhCC,EAAWA,YAIXC,eAAe,EACfC,MAAO,CACL,iBAAIC,GAIF,OAAOC,iBAAeC,WAAWH,MAAMC,aACxC,EACD,iBAAIA,CAAcG,GAGjB,IAIE,CACLR,QAASS,EAAgBT,QACvBU,UAAMC,YAAwB,CAACC,EAAOC,IACpCH,EAAAA,QAAYI,cAAA,aAAAC,OAAAC,OAAA,CAAAH,IAAKA,GAASD,WAM5BK,EAAUP,EAAKV,QAACW,YACpB,EAEIO,SACAC,YACAC,UACAC,UACAC,SACAC,SACAC,QACAC,SACAC,QACAC,SACAC,OACAC,eACAC,cACAC,YACAC,iBACAC,iBACAC,mBACAC,UACAC,iBACAC,YAEFxB,KAEA,MAAOyB,EAAUC,GAAeC,EAAQA,SAAC,MAEzCC,sBAAoB5B,GAAK,IAAMyB,IAE/B,MAAMI,UACJA,EAASC,QACTA,EAAOC,cACPA,EAAaC,WACbA,EAAUC,2BACVA,EAA0BC,qCAC1BA,EAAoCC,IACpCA,GACEtC,EAAAA,QAAMuC,WAAWC,EAAOlD,SAEtBmD,EAAgBC,eACpB1D,MAAO2D,UAGCL,EAAIzC,WAAWH,MAAMkD,aACzB,CAAA,EACA,IAAIC,SAASC,KAAKC,UAAUJ,EAAEK,UAE5BvC,GACFA,EAAUkC,EACX,GAEH,CAAClC,IA8CH,OA3CAwC,EAAAA,WAAU,KACR,MAAMC,EAAMtB,EAKZ,OAJAsB,SAAAA,EAAKC,iBAAiB,UAAWV,GAC7B/B,IAASwC,SAAAA,EAAKC,iBAAiB,QAASzC,IACxCC,IAASuC,SAAAA,EAAKC,iBAAiB,QAASxC,IAErC,KACDD,IAASwC,SAAAA,EAAKE,oBAAoB,QAAS1C,IAC3CC,IAASuC,SAAAA,EAAKE,oBAAoB,QAASzC,IAE/CuC,SAAAA,EAAKE,oBAAoB,UAAWX,EAAc,CACnD,GACA,CAACb,EAAUlB,EAAS+B,IAGvBQ,EAAAA,WAAU,KACR,MAAMC,EAAMtB,EAEZ,OADAsB,SAAAA,EAAKC,iBAAiB,UAAWV,GAC1B,KACLS,SAAAA,EAAKE,oBAAoB,UAAWX,EAAc,CACnD,GACA,CAACb,EAAUa,IAGdQ,EAAAA,WAAU,KACR,MAAMC,EAAMtB,EAGZ,OAFIlB,IAASwC,SAAAA,EAAKC,iBAAiB,QAASzC,IAErC,KACDA,IAASwC,SAAAA,EAAKE,oBAAoB,QAAS1C,GAAQ,CACxD,GACA,CAACkB,EAAUlB,IAGduC,EAAAA,WAAU,KACR,MAAMC,EAAMtB,EAGZ,OAFIjB,IAASuC,SAAAA,EAAKC,iBAAiB,QAASxC,IAErC,KACDA,IAASuC,SAAAA,EAAKE,oBAAoB,QAASzC,GAAQ,CACxD,GACA,CAACiB,EAAUjB,IASZX,UAAAI,cAAA,OAAA,KACEJ,EAAAA,QAAAI,cAACiD,EAAAA,SAAQ,CAACC,SAAU,MAClBtD,EAACV,QAAAc,cAAAtB,EACC,CAAAkD,UAAWA,EACXxB,OAAQA,EACRyB,QAASA,EACTC,cAAeA,EACfC,WAAYA,EACZhC,IAAK0B,EACLV,aAAcA,EACdC,YAAaA,EACbC,UAAWA,EACXI,QAASA,EACTH,eAAgBA,EAChBC,eAAgBA,EAChBc,qCACEA,EAEFxB,OAAQA,EAGN,aAAcC,EACd,cAAeC,EACf,YAAaG,EACb,cAAeD,EACf,aAAcD,EACd,qCAAsCoB,EAEtC,wBAAyBZ,EACzB,cAAeZ,EACf,sBAAuBc,GAGxBC,IAIP"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../hooks/Context.js"),r=require("./withPropsMapping/index.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var u=a(e);const l=e.lazy((async()=>(await Promise.resolve().then((function(){return n(require("@descope/role-management-widget"))})),{default:r.default(u.default.forwardRef(((e,t)=>u.default.createElement("descope-role-management-widget",Object.assign({ref:t},e)))))}))),o=u.default.forwardRef((({logger:r,tenant:a,theme:n,debug:o,widgetId:d,styleId:f},s)=>{const[c,i]=e.useState(null);e.useImperativeHandle(s,(()=>c));const{projectId:p,baseUrl:g,baseStaticUrl:b}=u.default.useContext(t.default);return u.default.createElement(e.Suspense,{fallback:null},u.default.createElement(l,{projectId:p,widgetId:d,tenant:a,baseUrl:g,baseStaticUrl:b,innerRef:i,"theme.attr":n,"debug.attr":o,"styleId.attr":f,"logger.prop":r}))}));exports.default=o;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../hooks/Context.js"),a=require("./withPropsMapping/index.js");function r(e){return e&&e.__esModule?e:{default:e}}var l=r(e);const d=e.lazy((async()=>(await import("@descope/role-management-widget"),{default:a.default(l.default.forwardRef(((e,t)=>l.default.createElement("descope-role-management-widget",Object.assign({ref:t},e)))))}))),n=l.default.forwardRef((({logger:a,tenant:r,theme:n,debug:s,widgetId:u,styleId:o},f)=>{const[i,c]=e.useState(null);e.useImperativeHandle(f,(()=>i));const{projectId:p,baseUrl:g,baseStaticUrl:b,baseCdnUrl:m}=l.default.useContext(t.default);return l.default.createElement(e.Suspense,{fallback:null},l.default.createElement(d,{projectId:p,widgetId:u,tenant:r,baseUrl:g,baseStaticUrl:b,baseCdnUrl:m,innerRef:c,"theme.attr":n,"debug.attr":s,"styleId.attr":o,"logger.prop":a}))}));exports.default=n;
2
2
  //# sourceMappingURL=RoleManagement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RoleManagement.js","sources":["../../../src/components/RoleManagement.tsx"],"sourcesContent":["import React, { lazy, Suspense, useImperativeHandle, useState } from 'react';\nimport Context from '../hooks/Context';\nimport { RoleManagementProps } from '../types';\nimport withPropsMapping from './withPropsMapping';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst RoleManagementWC = lazy(async () => {\n await import('@descope/role-management-widget');\n\n return {\n default: withPropsMapping(\n React.forwardRef<HTMLElement>((props, ref) => (\n\t<descope-role-management-widget ref={ref} {...props} />\n )),\n ),\n };\n});\n\nconst RoleManagement = React.forwardRef<HTMLElement, RoleManagementProps>(\n ({ logger, tenant, theme, debug, widgetId, styleId }, ref) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl } = React.useContext(Context);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<RoleManagementWC\n projectId={projectId}\n widgetId={widgetId}\n tenant={tenant}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n innerRef={setInnerRef}\n {...{\n // attributes\n 'theme.attr': theme,\n 'debug.attr': debug,\n 'styleId.attr': styleId,\n // props\n 'logger.prop': logger,\n }}\n />\n\t</Suspense>\n );\n },\n);\n\nexport default RoleManagement;\n"],"names":["RoleManagementWC","lazy","async","Promise","resolve","then","_interopNamespace","require","default","withPropsMapping","React","forwardRef","props","ref","createElement","Object","assign","RoleManagement","logger","tenant","theme","debug","widgetId","styleId","innerRef","setInnerRef","useState","useImperativeHandle","projectId","baseUrl","baseStaticUrl","useContext","Context","Suspense","fallback"],"mappings":"uhBAMA,MAAMA,EAAmBC,EAAIA,MAACC,gBACtBC,QAAAC,UAAAC,MAAA,WAAA,OAAAC,EAAAC,QAAO,mCAAiC,IAEvC,CACLC,QAASC,EAAgB,QACvBC,UAAMC,YAAwB,CAACC,EAAOC,IAC3CH,EAAAA,QAAgCI,cAAA,iCAAAC,OAAAC,OAAA,CAAAH,IAAKA,GAASD,WAMzCK,EAAiBP,EAAK,QAACC,YAC3B,EAAGO,SAAQC,SAAQC,QAAOC,QAAOC,WAAUC,WAAWV,KACpD,MAAOW,EAAUC,GAAeC,EAAQA,SAAC,MAEzCC,sBAAoBd,GAAK,IAAMW,IAE/B,MAAMI,UAAEA,EAASC,QAAEA,EAAOC,cAAEA,GAAkBpB,UAAMqB,WAAWC,EAAAA,SAE/D,OACHtB,EAAC,QAAAI,cAAAmB,EAAQA,SAAC,CAAAC,SAAU,MACnBxB,EAAC,QAAAI,cAAAd,EACO,CAAA4B,UAAWA,EACXN,SAAUA,EACVH,OAAQA,EACRU,QAASA,EACTC,cAAeA,EACfN,SAAUC,EAGR,aAAcL,EACd,aAAcC,EACd,eAAgBE,EAEhB,cAAeL,IAIrB"}
1
+ {"version":3,"file":"RoleManagement.js","sources":["../../../src/components/RoleManagement.tsx"],"sourcesContent":["import React, { lazy, Suspense, useImperativeHandle, useState } from 'react';\nimport Context from '../hooks/Context';\nimport { RoleManagementProps } from '../types';\nimport withPropsMapping from './withPropsMapping';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst RoleManagementWC = lazy(async () => {\n await import('@descope/role-management-widget');\n\n return {\n default: withPropsMapping(\n React.forwardRef<HTMLElement>((props, ref) => (\n <descope-role-management-widget ref={ref} {...props} />\n )),\n ),\n };\n});\n\nconst RoleManagement = React.forwardRef<HTMLElement, RoleManagementProps>(\n ({ logger, tenant, theme, debug, widgetId, styleId }, ref) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl, baseCdnUrl } =\n React.useContext(Context);\n\n return (\n <Suspense fallback={null}>\n <RoleManagementWC\n projectId={projectId}\n widgetId={widgetId}\n tenant={tenant}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n baseCdnUrl={baseCdnUrl}\n innerRef={setInnerRef}\n {...{\n // attributes\n 'theme.attr': theme,\n 'debug.attr': debug,\n 'styleId.attr': styleId,\n // props\n 'logger.prop': logger,\n }}\n />\n </Suspense>\n );\n },\n);\n\nexport default RoleManagement;\n"],"names":["RoleManagementWC","lazy","async","import","default","withPropsMapping","React","forwardRef","props","ref","createElement","Object","assign","RoleManagement","logger","tenant","theme","debug","widgetId","styleId","innerRef","setInnerRef","useState","useImperativeHandle","projectId","baseUrl","baseStaticUrl","baseCdnUrl","useContext","Context","Suspense","fallback"],"mappings":"mOAMA,MAAMA,EAAmBC,EAAIA,MAACC,gBACtBC,OAAO,mCAEN,CACLC,QAASC,EAAgBD,QACvBE,UAAMC,YAAwB,CAACC,EAAOC,IACpCH,EAAAA,QAAgCI,cAAA,iCAAAC,OAAAC,OAAA,CAAAH,IAAKA,GAASD,WAMhDK,EAAiBP,EAAKF,QAACG,YAC3B,EAAGO,SAAQC,SAAQC,QAAOC,QAAOC,WAAUC,WAAWV,KACpD,MAAOW,EAAUC,GAAeC,EAAQA,SAAC,MAEzCC,sBAAoBd,GAAK,IAAMW,IAE/B,MAAMI,UAAEA,EAASC,QAAEA,EAAOC,cAAEA,EAAaC,WAAEA,GACzCrB,EAAKF,QAACwB,WAAWC,EAAAA,SAEnB,OACEvB,EAACF,QAAAM,cAAAoB,EAAQA,SAAC,CAAAC,SAAU,MAClBzB,EAAAF,QAAAM,cAACV,EAAgB,CACfwB,UAAWA,EACXN,SAAUA,EACVH,OAAQA,EACRU,QAASA,EACTC,cAAeA,EACfC,WAAYA,EACZP,SAAUC,EAGR,aAAcL,EACd,aAAcC,EACd,eAAgBE,EAEhB,cAAeL,IAIrB"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../hooks/Context.js"),r=require("./withPropsMapping/index.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var u=a(e);const l=e.lazy((async()=>(await Promise.resolve().then((function(){return n(require("@descope/user-management-widget"))})),{default:r.default(u.default.forwardRef(((e,t)=>u.default.createElement("descope-user-management-widget",Object.assign({ref:t},e)))))}))),d=u.default.forwardRef((({logger:r,tenant:a,theme:n,debug:d,widgetId:o,styleId:s},f)=>{const[c,i]=e.useState(null);e.useImperativeHandle(f,(()=>c));const{projectId:p,baseUrl:g,baseStaticUrl:b}=u.default.useContext(t.default);return u.default.createElement(e.Suspense,{fallback:null},u.default.createElement(l,{projectId:p,widgetId:o,tenant:a,baseUrl:g,baseStaticUrl:b,ref:i,"theme.attr":n,"debug.attr":d,"styleId.attr":s,"logger.prop":r}))}));exports.default=d;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../hooks/Context.js"),a=require("./withPropsMapping/index.js");function r(e){return e&&e.__esModule?e:{default:e}}var l=r(e);const d=e.lazy((async()=>(await import("@descope/user-management-widget"),{default:a.default(l.default.forwardRef(((e,t)=>l.default.createElement("descope-user-management-widget",Object.assign({ref:t},e)))))}))),s=l.default.forwardRef((({logger:a,tenant:r,theme:s,debug:n,widgetId:u,styleId:o},f)=>{const[c,i]=e.useState(null);e.useImperativeHandle(f,(()=>c));const{projectId:p,baseUrl:g,baseStaticUrl:b,baseCdnUrl:m}=l.default.useContext(t.default);return l.default.createElement(e.Suspense,{fallback:null},l.default.createElement(d,{projectId:p,widgetId:u,tenant:r,baseUrl:g,baseStaticUrl:b,baseCdnUrl:m,ref:i,"theme.attr":s,"debug.attr":n,"styleId.attr":o,"logger.prop":a}))}));exports.default=s;
2
2
  //# sourceMappingURL=UserManagement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserManagement.js","sources":["../../../src/components/UserManagement.tsx"],"sourcesContent":["import React, { lazy, Suspense, useImperativeHandle, useState } from 'react';\nimport Context from '../hooks/Context';\nimport { UserManagementProps } from '../types';\nimport withPropsMapping from './withPropsMapping';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst UserManagementWC = lazy(async () => {\n await import('@descope/user-management-widget');\n\n return {\n default: withPropsMapping(\n React.forwardRef<HTMLElement>((props, ref) => (\n\t<descope-user-management-widget ref={ref} {...props} />\n )),\n ),\n };\n});\n\nconst UserManagement = React.forwardRef<HTMLElement, UserManagementProps>(\n ({ logger, tenant, theme, debug, widgetId, styleId }, ref) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl } = React.useContext(Context);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<UserManagementWC\n projectId={projectId}\n widgetId={widgetId}\n tenant={tenant}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n ref={setInnerRef}\n {...{\n // attributes\n 'theme.attr': theme,\n 'debug.attr': debug,\n 'styleId.attr': styleId,\n // props\n 'logger.prop': logger,\n }}\n />\n\t</Suspense>\n );\n },\n);\n\nexport default UserManagement;\n"],"names":["UserManagementWC","lazy","async","Promise","resolve","then","_interopNamespace","require","default","withPropsMapping","React","forwardRef","props","ref","createElement","Object","assign","UserManagement","logger","tenant","theme","debug","widgetId","styleId","innerRef","setInnerRef","useState","useImperativeHandle","projectId","baseUrl","baseStaticUrl","useContext","Context","Suspense","fallback"],"mappings":"uhBAMA,MAAMA,EAAmBC,EAAIA,MAACC,gBACtBC,QAAAC,UAAAC,MAAA,WAAA,OAAAC,EAAAC,QAAO,mCAAiC,IAEvC,CACLC,QAASC,EAAgB,QACvBC,UAAMC,YAAwB,CAACC,EAAOC,IAC3CH,EAAAA,QAAgCI,cAAA,iCAAAC,OAAAC,OAAA,CAAAH,IAAKA,GAASD,WAMzCK,EAAiBP,EAAK,QAACC,YAC3B,EAAGO,SAAQC,SAAQC,QAAOC,QAAOC,WAAUC,WAAWV,KACpD,MAAOW,EAAUC,GAAeC,EAAQA,SAAC,MAEzCC,sBAAoBd,GAAK,IAAMW,IAE/B,MAAMI,UAAEA,EAASC,QAAEA,EAAOC,cAAEA,GAAkBpB,UAAMqB,WAAWC,EAAAA,SAE/D,OACHtB,EAAC,QAAAI,cAAAmB,EAAQA,SAAC,CAAAC,SAAU,MACnBxB,EAAC,QAAAI,cAAAd,EACO,CAAA4B,UAAWA,EACXN,SAAUA,EACVH,OAAQA,EACRU,QAASA,EACTC,cAAeA,EACfjB,IAAKY,EAGH,aAAcL,EACd,aAAcC,EACd,eAAgBE,EAEhB,cAAeL,IAIrB"}
1
+ {"version":3,"file":"UserManagement.js","sources":["../../../src/components/UserManagement.tsx"],"sourcesContent":["import React, { lazy, Suspense, useImperativeHandle, useState } from 'react';\nimport Context from '../hooks/Context';\nimport { UserManagementProps } from '../types';\nimport withPropsMapping from './withPropsMapping';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst UserManagementWC = lazy(async () => {\n await import('@descope/user-management-widget');\n\n return {\n default: withPropsMapping(\n React.forwardRef<HTMLElement>((props, ref) => (\n <descope-user-management-widget ref={ref} {...props} />\n )),\n ),\n };\n});\n\nconst UserManagement = React.forwardRef<HTMLElement, UserManagementProps>(\n ({ logger, tenant, theme, debug, widgetId, styleId }, ref) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl, baseCdnUrl } =\n React.useContext(Context);\n\n return (\n <Suspense fallback={null}>\n <UserManagementWC\n projectId={projectId}\n widgetId={widgetId}\n tenant={tenant}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n baseCdnUrl={baseCdnUrl}\n ref={setInnerRef}\n {...{\n // attributes\n 'theme.attr': theme,\n 'debug.attr': debug,\n 'styleId.attr': styleId,\n // props\n 'logger.prop': logger,\n }}\n />\n </Suspense>\n );\n },\n);\n\nexport default UserManagement;\n"],"names":["UserManagementWC","lazy","async","import","default","withPropsMapping","React","forwardRef","props","ref","createElement","Object","assign","UserManagement","logger","tenant","theme","debug","widgetId","styleId","innerRef","setInnerRef","useState","useImperativeHandle","projectId","baseUrl","baseStaticUrl","baseCdnUrl","useContext","Context","Suspense","fallback"],"mappings":"mOAMA,MAAMA,EAAmBC,EAAIA,MAACC,gBACtBC,OAAO,mCAEN,CACLC,QAASC,EAAgBD,QACvBE,UAAMC,YAAwB,CAACC,EAAOC,IACpCH,EAAAA,QAAgCI,cAAA,iCAAAC,OAAAC,OAAA,CAAAH,IAAKA,GAASD,WAMhDK,EAAiBP,EAAKF,QAACG,YAC3B,EAAGO,SAAQC,SAAQC,QAAOC,QAAOC,WAAUC,WAAWV,KACpD,MAAOW,EAAUC,GAAeC,EAAQA,SAAC,MAEzCC,sBAAoBd,GAAK,IAAMW,IAE/B,MAAMI,UAAEA,EAASC,QAAEA,EAAOC,cAAEA,EAAaC,WAAEA,GACzCrB,EAAKF,QAACwB,WAAWC,EAAAA,SAEnB,OACEvB,EAACF,QAAAM,cAAAoB,EAAQA,SAAC,CAAAC,SAAU,MAClBzB,EAAAF,QAAAM,cAACV,EAAgB,CACfwB,UAAWA,EACXN,SAAUA,EACVH,OAAQA,EACRU,QAASA,EACTC,cAAeA,EACfC,WAAYA,EACZlB,IAAKY,EAGH,aAAcL,EACd,aAAcC,EACd,eAAgBE,EAEhB,cAAeL,IAIrB"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../hooks/Context.js"),r=require("./withPropsMapping/index.js");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function a(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var u=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,u.get?u:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var l=u(e);const n=e.lazy((async()=>(await Promise.resolve().then((function(){return a(require("@descope/user-profile-widget"))})),{default:r.default(l.default.forwardRef(((e,t)=>l.default.createElement("descope-user-profile-widget",Object.assign({ref:t},e)))))}))),o=l.default.forwardRef((({logger:r,theme:u,debug:a,widgetId:o,onLogout:d,styleId:s},f)=>{const[i,c]=e.useState(null);e.useImperativeHandle(f,(()=>i));const{projectId:p,baseUrl:g,baseStaticUrl:b}=l.default.useContext(t.default);return e.useEffect((()=>{if(i&&d)return i.addEventListener("logout",d),()=>i.removeEventListener("logout",d)}),[i,d]),l.default.createElement(e.Suspense,{fallback:null},l.default.createElement(n,{projectId:p,widgetId:o,baseUrl:g,baseStaticUrl:b,styleId:s,ref:c,"theme.attr":u,"debug.attr":a,"styleId.attr":s,"logger.prop":r}))}));exports.default=o;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../hooks/Context.js"),r=require("./withPropsMapping/index.js");function a(e){return e&&e.__esModule?e:{default:e}}var l=a(e);const d=e.lazy((async()=>(await import("@descope/user-profile-widget"),{default:r.default(l.default.forwardRef(((e,t)=>l.default.createElement("descope-user-profile-widget",Object.assign({ref:t},e)))))}))),s=l.default.forwardRef((({logger:r,theme:a,debug:s,widgetId:u,onLogout:o,styleId:n},f)=>{const[i,c]=e.useState(null);e.useImperativeHandle(f,(()=>i));const{projectId:p,baseUrl:g,baseStaticUrl:b,baseCdnUrl:m}=l.default.useContext(t.default);return e.useEffect((()=>{if(i&&o)return i.addEventListener("logout",o),()=>i.removeEventListener("logout",o)}),[i,o]),l.default.createElement(e.Suspense,{fallback:null},l.default.createElement(d,{projectId:p,widgetId:u,baseUrl:g,baseStaticUrl:b,baseCdnUrl:m,styleId:n,ref:c,"theme.attr":a,"debug.attr":s,"styleId.attr":n,"logger.prop":r}))}));exports.default=s;
2
2
  //# sourceMappingURL=UserProfile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserProfile.js","sources":["../../../src/components/UserProfile.tsx"],"sourcesContent":["import React, {\n lazy,\n Suspense,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react';\nimport Context from '../hooks/Context';\nimport { UserProfileProps } from '../types';\nimport withPropsMapping from './withPropsMapping';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst UserProfileWC = lazy(async () => {\n await import('@descope/user-profile-widget');\n\n return {\n default: withPropsMapping(\n React.forwardRef<HTMLElement>((props, ref) => (\n\t<descope-user-profile-widget ref={ref} {...props} />\n )),\n ),\n };\n});\n\nconst UserProfile = React.forwardRef<HTMLElement, UserProfileProps>(\n ({ logger, theme, debug, widgetId, onLogout, styleId }, ref) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl } = React.useContext(Context);\n\n useEffect(() => {\n if (innerRef && onLogout) {\n innerRef.addEventListener('logout', onLogout);\n return () => innerRef.removeEventListener('logout', onLogout);\n }\n return undefined;\n }, [innerRef, onLogout]);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<UserProfileWC\n projectId={projectId}\n widgetId={widgetId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n styleId={styleId}\n ref={setInnerRef}\n {...{\n // attributes\n 'theme.attr': theme,\n 'debug.attr': debug,\n 'styleId.attr': styleId,\n // props\n 'logger.prop': logger,\n }}\n />\n\t</Suspense>\n );\n },\n);\n\nexport default UserProfile;\n"],"names":["UserProfileWC","lazy","async","Promise","resolve","then","_interopNamespace","require","default","withPropsMapping","React","forwardRef","props","ref","createElement","Object","assign","UserProfile","logger","theme","debug","widgetId","onLogout","styleId","innerRef","setInnerRef","useState","useImperativeHandle","projectId","baseUrl","baseStaticUrl","useContext","Context","useEffect","addEventListener","removeEventListener","Suspense","fallback"],"mappings":"uhBAYA,MAAMA,EAAgBC,EAAIA,MAACC,gBACnBC,QAAAC,UAAAC,MAAA,WAAA,OAAAC,EAAAC,QAAO,gCAA8B,IAEpC,CACLC,QAASC,EAAgB,QACvBC,UAAMC,YAAwB,CAACC,EAAOC,IAC3CH,EAAAA,QAA6BI,cAAA,8BAAAC,OAAAC,OAAA,CAAAH,IAAKA,GAASD,WAMtCK,EAAcP,EAAK,QAACC,YACxB,EAAGO,SAAQC,QAAOC,QAAOC,WAAUC,WAAUC,WAAWV,KACtD,MAAOW,EAAUC,GAAeC,EAAQA,SAAC,MAEzCC,sBAAoBd,GAAK,IAAMW,IAE/B,MAAMI,UAAEA,EAASC,QAAEA,EAAOC,cAAEA,GAAkBpB,UAAMqB,WAAWC,EAAAA,SAU/D,OARAC,EAAAA,WAAU,KACR,GAAIT,GAAYF,EAEd,OADAE,EAASU,iBAAiB,SAAUZ,GAC7B,IAAME,EAASW,oBAAoB,SAAUb,EAEtC,GACf,CAACE,EAAUF,IAGjBZ,EAAC,QAAAI,cAAAsB,EAAQA,SAAC,CAAAC,SAAU,MACnB3B,EAAC,QAAAI,cAAAd,EACO,CAAA4B,UAAWA,EACXP,SAAUA,EACVQ,QAASA,EACTC,cAAeA,EACfP,QAASA,EACTV,IAAKY,EAGH,aAAcN,EACd,aAAcC,EACd,eAAgBG,EAEhB,cAAeL,IAIrB"}
1
+ {"version":3,"file":"UserProfile.js","sources":["../../../src/components/UserProfile.tsx"],"sourcesContent":["import React, {\n lazy,\n Suspense,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react';\nimport Context from '../hooks/Context';\nimport { UserProfileProps } from '../types';\nimport withPropsMapping from './withPropsMapping';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst UserProfileWC = lazy(async () => {\n await import('@descope/user-profile-widget');\n\n return {\n default: withPropsMapping(\n React.forwardRef<HTMLElement>((props, ref) => (\n\t<descope-user-profile-widget ref={ref} {...props} />\n )),\n ),\n };\n});\n\nconst UserProfile = React.forwardRef<HTMLElement, UserProfileProps>(\n ({ logger, theme, debug, widgetId, onLogout, styleId }, ref) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl, baseCdnUrl } =\n React.useContext(Context);\n\n useEffect(() => {\n if (innerRef && onLogout) {\n innerRef.addEventListener('logout', onLogout);\n return () => innerRef.removeEventListener('logout', onLogout);\n }\n return undefined;\n }, [innerRef, onLogout]);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<UserProfileWC\n projectId={projectId}\n widgetId={widgetId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n baseCdnUrl={baseCdnUrl}\n styleId={styleId}\n ref={setInnerRef}\n {...{\n // attributes\n 'theme.attr': theme,\n 'debug.attr': debug,\n 'styleId.attr': styleId,\n // props\n 'logger.prop': logger,\n }}\n />\n\t</Suspense>\n );\n },\n);\n\nexport default UserProfile;\n"],"names":["UserProfileWC","lazy","async","import","default","withPropsMapping","React","forwardRef","props","ref","createElement","Object","assign","UserProfile","logger","theme","debug","widgetId","onLogout","styleId","innerRef","setInnerRef","useState","useImperativeHandle","projectId","baseUrl","baseStaticUrl","baseCdnUrl","useContext","Context","useEffect","addEventListener","removeEventListener","Suspense","fallback"],"mappings":"mOAYA,MAAMA,EAAgBC,EAAIA,MAACC,gBACnBC,OAAO,gCAEN,CACLC,QAASC,EAAgBD,QACvBE,UAAMC,YAAwB,CAACC,EAAOC,IAC3CH,EAAAA,QAA6BI,cAAA,8BAAAC,OAAAC,OAAA,CAAAH,IAAKA,GAASD,WAMtCK,EAAcP,EAAKF,QAACG,YACxB,EAAGO,SAAQC,QAAOC,QAAOC,WAAUC,WAAUC,WAAWV,KACtD,MAAOW,EAAUC,GAAeC,EAAQA,SAAC,MAEzCC,sBAAoBd,GAAK,IAAMW,IAE/B,MAAMI,UAAEA,EAASC,QAAEA,EAAOC,cAAEA,EAAaC,WAAEA,GACzCrB,EAAKF,QAACwB,WAAWC,EAAAA,SAUnB,OARAC,EAAAA,WAAU,KACR,GAAIV,GAAYF,EAEd,OADAE,EAASW,iBAAiB,SAAUb,GAC7B,IAAME,EAASY,oBAAoB,SAAUd,EAEtC,GACf,CAACE,EAAUF,IAGjBZ,EAACF,QAAAM,cAAAuB,EAAQA,SAAC,CAAAC,SAAU,MACnB5B,EAAAF,QAAAM,cAACV,EAAa,CACNwB,UAAWA,EACXP,SAAUA,EACVQ,QAASA,EACTC,cAAeA,EACfC,WAAYA,EACZR,QAASA,EACTV,IAAKY,EAGH,aAAcN,EACd,aAAcC,EACd,eAAgBG,EAEhB,cAAeL,IAIrB"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("@descope/sdk-helpers"),t=require("./utils.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=a(e);exports.default=a=>s.default.forwardRef(((u,o)=>{const{prop:n,attr:c,rest:l}=e.useMemo((()=>Object.entries(u).reduce(((e,[a,s])=>{const{trimmedKey:u,category:o}=t.transformKey(a);return"prop"===o?e.prop.push([u,s]):"attr"===o?e.attr.push([r.kebabCase(u),t.transformAttrValue(s)]):Object.assign(e.rest,{[r.kebabCase(u)]:s}),e}),{attr:[],prop:[],rest:{}})),[u]),p=e.useRef(null),f=e.useCallback((e=>{p.current=e,e&&(n.forEach((([e,r])=>{p.current[e]=r})),c.forEach((([r,t])=>{null==t?e.removeAttribute(r):e.setAttribute(r,t)})))}),[n,c,p]);return e.useImperativeHandle(o,(()=>p.current)),s.default.createElement(a,Object.assign({ref:f},l))}));
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("@descope/sdk-helpers"),t=require("./utils.js");function s(e){return e&&e.__esModule?e:{default:e}}var u=s(e);exports.default=s=>u.default.forwardRef(((a,o)=>{const{prop:n,attr:c,rest:l}=e.useMemo((()=>Object.entries(a).reduce(((e,[s,u])=>{const{trimmedKey:a,category:o}=t.transformKey(s);return"prop"===o?e.prop.push([a,u]):"attr"===o?e.attr.push([r.kebabCase(a),t.transformAttrValue(u)]):Object.assign(e.rest,{[r.kebabCase(a)]:u}),e}),{attr:[],prop:[],rest:{}})),[a]),p=e.useRef(null),f=e.useCallback((e=>{p.current=e,e&&(n.forEach((([e,r])=>{p.current[e]=r})),c.forEach((([r,t])=>{null==t?e.removeAttribute(r):e.setAttribute(r,t)})))}),[n,c,p]);return e.useImperativeHandle(o,(()=>p.current)),u.default.createElement(s,Object.assign({ref:f},l))}));
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/withPropsMapping/index.tsx"],"sourcesContent":["import React, {\n useImperativeHandle,\n useMemo,\n ComponentType,\n useCallback,\n useRef,\n} from 'react';\nimport { kebabCase } from '@descope/sdk-helpers';\nimport { transformAttrValue, transformKey } from './utils';\n\n/**\n * withPropsMapping is a React HOC that adapts React props to work seamlessly\n * with web components by setting attributes and properties.\n *\n * - Props ending in `.prop` are set as properties on the web component.\n * - Props ending in `.attr` are transformed to kebab-case and set as attributes on the web component.\n * - All other props are set as kebab-case props\n *\n * This resolves attribute/property behavior differences in React 19.\n *\n * @see https://github.com/facebook/react/issues/29037\n */\nconst withPropsMapping = <P extends Record<string, any>>(\n Component: ComponentType<any>,\n) =>\n React.forwardRef<HTMLElement, P>((props, ref) => {\n const { prop, attr, rest } = useMemo(\n () =>\n Object.entries(props).reduce(\n (acc, [key, value]) => {\n const { trimmedKey, category } = transformKey(key);\n if (category === 'prop') acc.prop.push([trimmedKey, value]);\n else if (category === 'attr')\n acc.attr.push([kebabCase(trimmedKey), transformAttrValue(value)]);\n else Object.assign(acc.rest, { [kebabCase(trimmedKey)]: value });\n return acc;\n },\n { attr: [], prop: [], rest: {} },\n ),\n [props],\n );\n\n const currRef = useRef<HTMLElement | null>(null);\n\n const setInnerRef = useCallback(\n (innerRef) => {\n currRef.current = innerRef;\n if (innerRef) {\n prop.forEach(([key, value]) => {\n currRef.current[key] = value;\n });\n\n attr.forEach(([key, value]) => {\n if (value === undefined || value === null) {\n innerRef.removeAttribute(key);\n } else {\n innerRef.setAttribute(key, value);\n }\n });\n }\n },\n [prop, attr, currRef],\n );\n\n useImperativeHandle(ref, () => currRef.current);\n\n return <Component ref={setInnerRef} {...rest} />;\n });\n\nexport default withPropsMapping;\n"],"names":["Component","React","forwardRef","props","ref","prop","attr","rest","useMemo","Object","entries","reduce","acc","key","value","trimmedKey","category","transformKey","push","kebabCase","transformAttrValue","assign","currRef","useRef","setInnerRef","useCallback","innerRef","current","forEach","removeAttribute","setAttribute","useImperativeHandle","createElement"],"mappings":"wPAuBEA,GAEAC,EAAAA,QAAMC,YAA2B,CAACC,EAAOC,KACvC,MAAMC,KAAEA,EAAIC,KAAEA,EAAIC,KAAEA,GAASC,EAAAA,SAC3B,IACEC,OAAOC,QAAQP,GAAOQ,QACpB,CAACC,GAAMC,EAAKC,MACV,MAAMC,WAAEA,EAAUC,SAAEA,GAAaC,EAAYA,aAACJ,GAK9C,MAJiB,SAAbG,EAAqBJ,EAAIP,KAAKa,KAAK,CAACH,EAAYD,IAC9B,SAAbE,EACPJ,EAAIN,KAAKY,KAAK,CAACC,EAASA,UAACJ,GAAaK,EAAkBA,mBAACN,KACtDL,OAAOY,OAAOT,EAAIL,KAAM,CAAE,CAACY,EAAAA,UAAUJ,IAAcD,IACjDF,CAAG,GAEZ,CAAEN,KAAM,GAAID,KAAM,GAAIE,KAAM,CAAA,KAEhC,CAACJ,IAGGmB,EAAUC,SAA2B,MAErCC,EAAcC,eACjBC,IACCJ,EAAQK,QAAUD,EACdA,IACFrB,EAAKuB,SAAQ,EAAEf,EAAKC,MAClBQ,EAAQK,QAAQd,GAAOC,CAAK,IAG9BR,EAAKsB,SAAQ,EAAEf,EAAKC,MACdA,QACFY,EAASG,gBAAgBhB,GAEzBa,EAASI,aAAajB,EAAKC,EAC5B,IAEJ,GAEH,CAACT,EAAMC,EAAMgB,IAKf,OAFAS,EAAAA,oBAAoB3B,GAAK,IAAMkB,EAAQK,UAEhC1B,UAAA+B,cAAChC,EAAUS,OAAAY,OAAA,CAAAjB,IAAKoB,GAAiBjB,GAAQ"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/withPropsMapping/index.tsx"],"sourcesContent":["import React, {\n useImperativeHandle,\n useMemo,\n ComponentType,\n useCallback,\n useRef,\n} from 'react';\nimport { kebabCase } from '@descope/sdk-helpers';\nimport { transformAttrValue, transformKey } from './utils';\n\n/**\n * withPropsMapping is a React HOC that adapts React props to work seamlessly\n * with web components by setting attributes and properties.\n *\n * - Props ending in `.prop` are set as properties on the web component.\n * - Props ending in `.attr` are transformed to kebab-case and set as attributes on the web component.\n * - All other props are set as kebab-case props\n *\n * This resolves attribute/property behavior differences in React 19.\n *\n * @see https://github.com/facebook/react/issues/29037\n */\nconst withPropsMapping = <P extends Record<string, any>>(\n Component: ComponentType<any>,\n) =>\n React.forwardRef<HTMLElement, P>((props, ref) => {\n const { prop, attr, rest } = useMemo(\n () =>\n Object.entries(props).reduce(\n (acc, [key, value]) => {\n const { trimmedKey, category } = transformKey(key);\n if (category === 'prop') acc.prop.push([trimmedKey, value]);\n else if (category === 'attr')\n acc.attr.push([kebabCase(trimmedKey), transformAttrValue(value)]);\n else Object.assign(acc.rest, { [kebabCase(trimmedKey)]: value });\n return acc;\n },\n { attr: [], prop: [], rest: {} },\n ),\n [props],\n );\n\n const currRef = useRef<HTMLElement | null>(null);\n\n const setInnerRef = useCallback(\n (innerRef) => {\n currRef.current = innerRef;\n if (innerRef) {\n prop.forEach(([key, value]) => {\n currRef.current[key] = value;\n });\n\n attr.forEach(([key, value]) => {\n if (value === undefined || value === null) {\n innerRef.removeAttribute(key);\n } else {\n innerRef.setAttribute(key, value);\n }\n });\n }\n },\n [prop, attr, currRef],\n );\n\n useImperativeHandle(ref, () => currRef.current);\n\n return <Component ref={setInnerRef} {...rest} />;\n });\n\nexport default withPropsMapping;\n"],"names":["Component","React","forwardRef","props","ref","prop","attr","rest","useMemo","Object","entries","reduce","acc","key","value","trimmedKey","category","transformKey","push","kebabCase","transformAttrValue","assign","currRef","useRef","setInnerRef","useCallback","innerRef","current","forEach","removeAttribute","setAttribute","useImperativeHandle","createElement"],"mappings":"mOAuBEA,GAEAC,EAAAA,QAAMC,YAA2B,CAACC,EAAOC,KACvC,MAAMC,KAAEA,EAAIC,KAAEA,EAAIC,KAAEA,GAASC,EAAAA,SAC3B,IACEC,OAAOC,QAAQP,GAAOQ,QACpB,CAACC,GAAMC,EAAKC,MACV,MAAMC,WAAEA,EAAUC,SAAEA,GAAaC,EAAYA,aAACJ,GAK9C,MAJiB,SAAbG,EAAqBJ,EAAIP,KAAKa,KAAK,CAACH,EAAYD,IAC9B,SAAbE,EACPJ,EAAIN,KAAKY,KAAK,CAACC,EAASA,UAACJ,GAAaK,EAAkBA,mBAACN,KACtDL,OAAOY,OAAOT,EAAIL,KAAM,CAAE,CAACY,EAAAA,UAAUJ,IAAcD,IACjDF,CAAG,GAEZ,CAAEN,KAAM,GAAID,KAAM,GAAIE,KAAM,CAAA,KAEhC,CAACJ,IAGGmB,EAAUC,SAA2B,MAErCC,EAAcC,eACjBC,IACCJ,EAAQK,QAAUD,EACdA,IACFrB,EAAKuB,SAAQ,EAAEf,EAAKC,MAClBQ,EAAQK,QAAQd,GAAOC,CAAK,IAG9BR,EAAKsB,SAAQ,EAAEf,EAAKC,MACdA,QACFY,EAASG,gBAAgBhB,GAEzBa,EAASI,aAAajB,EAAKC,EAC5B,IAEJ,GAEH,CAACT,EAAMC,EAAMgB,IAKf,OAFAS,EAAAA,oBAAoB3B,GAAK,IAAMkB,EAAQK,UAEhC1B,UAAA+B,cAAChC,EAAUS,OAAAY,OAAA,CAAAjB,IAAKoB,GAAiBjB,GAAQ"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.transformAttrValue=e=>"string"==typeof e||null==e?e:JSON.stringify(e),exports.transformKey=e=>{const[,t,r]=/(.*)\.(prop|attr)$/.exec(e)||[,e,"rest"];return{trimmedKey:t,category:r}};
1
+ "use strict";exports.transformAttrValue=t=>"string"==typeof t||null==t?t:JSON.stringify(t),exports.transformKey=t=>{const[,r,e]=/(.*)\.(prop|attr)$/.exec(t)||[,t,"rest"];return{trimmedKey:r,category:e}};
2
2
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../src/components/withPropsMapping/utils.ts"],"sourcesContent":["export const transformKey = (key: string) => {\n // eslint-disable-next-line no-sparse-arrays\n const [, trimmedKey, category] = /(.*)\\.(prop|attr)$/.exec(key) || [\n ,\n key,\n 'rest',\n ];\n return { trimmedKey, category };\n};\n\nexport const transformAttrValue = (value: any) =>\n typeof value === 'string' || value == null ? value : JSON.stringify(value);\n"],"names":["value","JSON","stringify","key","trimmedKey","category","exec"],"mappings":"+FAUmCA,GAChB,iBAAVA,GAA+B,MAATA,EAAgBA,EAAQC,KAAKC,UAAUF,wBAXzCG,IAE3B,MAAM,CAAGC,EAAYC,GAAY,qBAAqBC,KAAKH,IAAQ,EAEjEA,EACA,QAEF,MAAO,CAAEC,aAAYC,WAAU"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../src/components/withPropsMapping/utils.ts"],"sourcesContent":["export const transformKey = (key: string) => {\n // eslint-disable-next-line no-sparse-arrays\n const [, trimmedKey, category] = /(.*)\\.(prop|attr)$/.exec(key) || [\n ,\n key,\n 'rest',\n ];\n return { trimmedKey, category };\n};\n\nexport const transformAttrValue = (value: any) =>\n typeof value === 'string' || value == null ? value : JSON.stringify(value);\n"],"names":["value","JSON","stringify","key","trimmedKey","category","exec"],"mappings":"wCAUmCA,GAChB,iBAAVA,GAA+B,MAATA,EAAgBA,EAAQC,KAAKC,UAAUF,wBAXzCG,IAE3B,MAAM,CAAGC,EAAYC,GAAY,qBAAqBC,KAAKH,IAAQ,EAEjEA,EACA,QAEF,MAAO,CAAEC,aAAYC,WAAU"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e="undefined"!=typeof window;exports.IS_BROWSER=e,exports.baseHeaders={"x-descope-sdk-name":"react","x-descope-sdk-version":"2.3.25"};
1
+ "use strict";const e="undefined"!=typeof window;exports.IS_BROWSER=e,exports.baseHeaders={"x-descope-sdk-name":"react","x-descope-sdk-version":"2.5.0"};
2
2
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sources":["../../src/constants.ts"],"sourcesContent":["declare const BUILD_VERSION: string;\n\nexport const baseHeaders = {\n 'x-descope-sdk-name': 'react',\n 'x-descope-sdk-version': BUILD_VERSION,\n};\n\n// This sdk can be used in SSR apps\nexport const IS_BROWSER = typeof window !== 'undefined';\n"],"names":["IS_BROWSER","window"],"mappings":"oEAEa,MAMAA,EAA+B,oBAAXC,gDANN,CACzB,qBAAsB,QACtB,wBAAyB"}
1
+ {"version":3,"file":"constants.js","sources":["../../src/constants.ts"],"sourcesContent":["declare const BUILD_VERSION: string;\n\nexport const baseHeaders = {\n 'x-descope-sdk-name': 'react',\n 'x-descope-sdk-version': BUILD_VERSION,\n};\n\n// This sdk can be used in SSR apps\nexport const IS_BROWSER = typeof window !== 'undefined';\n"],"names":["IS_BROWSER","window"],"mappings":"aAEa,MAMAA,EAA+B,oBAAXC,gDANN,CACzB,qBAAsB,QACtB,wBAAyB"}
package/dist/cjs/flows.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./components/AuthProvider/AuthProvider.js"),s=require("./components/DefaultFlows.js"),o=require("./components/Descope.js"),r=require("./hooks/useDescope.js"),t=require("./hooks/useSession.js"),i=require("./hooks/useUser.js"),n=require("./sdk.js"),p=require("./constants.js");exports.AuthProvider=e.default,exports.SignInFlow=s.SignInFlow,exports.SignUpFlow=s.SignUpFlow,exports.SignUpOrInFlow=s.SignUpOrInFlow,exports.Descope=o.default,exports.useDescope=r.default,exports.useSession=t.default,exports.useUser=i.default,exports.getJwtPermissions=n.getJwtPermissions,exports.getJwtRoles=n.getJwtRoles,exports.getRefreshToken=n.getRefreshToken,exports.getSessionToken=n.getSessionToken,exports.isRefreshTokenExpired=n.isRefreshTokenExpired,exports.isSessionTokenExpired=n.isSessionTokenExpired,exports.refresh=n.refresh,exports.baseHeaders=p.baseHeaders;
1
+ "use strict";var e=require("./components/AuthProvider/AuthProvider.js"),s=require("./components/DefaultFlows.js"),o=require("./components/Descope.js"),r=require("./hooks/useDescope.js"),t=require("./hooks/useSession.js"),i=require("./hooks/useUser.js"),n=require("./sdk.js"),p=require("./constants.js");exports.AuthProvider=e.default,exports.SignInFlow=s.SignInFlow,exports.SignUpFlow=s.SignUpFlow,exports.SignUpOrInFlow=s.SignUpOrInFlow,exports.Descope=o.default,exports.useDescope=r.default,exports.useSession=t.default,exports.useUser=i.default,exports.getJwtPermissions=n.getJwtPermissions,exports.getJwtRoles=n.getJwtRoles,exports.getRefreshToken=n.getRefreshToken,exports.getSessionToken=n.getSessionToken,exports.isRefreshTokenExpired=n.isRefreshTokenExpired,exports.isSessionTokenExpired=n.isSessionTokenExpired,exports.refresh=n.refresh,exports.baseHeaders=p.baseHeaders;
2
2
  //# sourceMappingURL=flows.js.map
@@ -1,2 +1,2 @@
1
- "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}Object.defineProperty(exports,"__esModule",{value:!0});const t=e(require("react")).default.createContext(void 0);exports.default=t;
1
+ "use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(exports,"__esModule",{value:!0});const t=e(require("react")).default.createContext(void 0);exports.default=t;
2
2
  //# sourceMappingURL=Context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","sources":["../../../src/hooks/Context.ts"],"sourcesContent":["import React from 'react';\nimport { IContext } from '../types';\n\nconst Context = React.createContext<IContext>(undefined);\n\nexport default Context;\n"],"names":["Context","React","createContext","undefined"],"mappings":"4IAGM,MAAAA,sBAAUC,QAAMC,mBAAwBC"}
1
+ {"version":3,"file":"Context.js","sources":["../../../src/hooks/Context.ts"],"sourcesContent":["import React from 'react';\nimport { IContext } from '../types';\n\nconst Context = React.createContext<IContext>(undefined);\n\nexport default Context;\n"],"names":["Context","React","createContext","undefined"],"mappings":"uHAGM,MAAAA,sBAAUC,QAAMC,mBAAwBC"}
package/dist/cjs/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./components/AuthProvider/AuthProvider.js"),s=require("./components/DefaultFlows.js"),o=require("./components/Descope.js"),r=require("./hooks/useDescope.js"),t=require("./hooks/useSession.js"),n=require("./hooks/useUser.js"),i=require("./sdk.js"),p=require("./constants.js"),u=require("./components/UserManagement.js"),a=require("./components/RoleManagement.js"),l=require("./components/AccessKeyManagement.js"),x=require("./components/AuditManagement.js"),d=require("./components/UserProfile.js"),c=require("./components/ApplicationsPortal.js");exports.AuthProvider=e.default,exports.SignInFlow=s.SignInFlow,exports.SignUpFlow=s.SignUpFlow,exports.SignUpOrInFlow=s.SignUpOrInFlow,exports.Descope=o.default,exports.useDescope=r.default,exports.useSession=t.default,exports.useUser=n.default,exports.getJwtPermissions=i.getJwtPermissions,exports.getJwtRoles=i.getJwtRoles,exports.getRefreshToken=i.getRefreshToken,exports.getSessionToken=i.getSessionToken,exports.isRefreshTokenExpired=i.isRefreshTokenExpired,exports.isSessionTokenExpired=i.isSessionTokenExpired,exports.refresh=i.refresh,exports.baseHeaders=p.baseHeaders,exports.UserManagement=u.default,exports.RoleManagement=a.default,exports.AccessKeyManagement=l.default,exports.AuditManagement=x.default,exports.UserProfile=d.default,exports.ApplicationsPortal=c.default;
1
+ "use strict";var e=require("./components/AuthProvider/AuthProvider.js"),s=require("./components/DefaultFlows.js"),o=require("./components/Descope.js"),r=require("./hooks/useDescope.js"),t=require("./hooks/useSession.js"),n=require("./hooks/useUser.js"),i=require("./sdk.js"),p=require("./constants.js"),a=require("./components/UserManagement.js"),u=require("./components/RoleManagement.js"),l=require("./components/AccessKeyManagement.js"),x=require("./components/AuditManagement.js"),d=require("./components/UserProfile.js"),g=require("./components/ApplicationsPortal.js");exports.AuthProvider=e.default,exports.SignInFlow=s.SignInFlow,exports.SignUpFlow=s.SignUpFlow,exports.SignUpOrInFlow=s.SignUpOrInFlow,exports.Descope=o.default,exports.useDescope=r.default,exports.useSession=t.default,exports.useUser=n.default,exports.getJwtPermissions=i.getJwtPermissions,exports.getJwtRoles=i.getJwtRoles,exports.getRefreshToken=i.getRefreshToken,exports.getSessionToken=i.getSessionToken,exports.isRefreshTokenExpired=i.isRefreshTokenExpired,exports.isSessionTokenExpired=i.isSessionTokenExpired,exports.refresh=i.refresh,exports.baseHeaders=p.baseHeaders,exports.UserManagement=a.default,exports.RoleManagement=u.default,exports.AccessKeyManagement=l.default,exports.AuditManagement=x.default,exports.UserProfile=d.default,exports.ApplicationsPortal=g.default;
2
2
  //# sourceMappingURL=index.js.map
package/dist/cjs/sdk.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@descope/web-js-sdk"),s=require("./constants.js"),t=require("./utils.js");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=o(e);let n;const i=e=>{const t=r.default(Object.assign({persistTokens:s.IS_BROWSER,autoRefresh:s.IS_BROWSER},e));return n=t,t},p=()=>i({projectId:"temp pid",persistTokens:!1,autoRefresh:!1,storeLastAuthenticatedUser:!1});n=p();const l=()=>s.IS_BROWSER?null==n?void 0:n.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),d=()=>s.IS_BROWSER?null==n?void 0:n.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),u=t.wrapInTry(((e=l(),s)=>null==n?void 0:n.getJwtPermissions(e,s))),a=t.wrapInTry(((e=l(),s)=>null==n?void 0:n.getJwtRoles(e,s)));exports.createTempSdk=p,exports.default=i,exports.getGlobalSdk=()=>n,exports.getJwtPermissions=u,exports.getJwtRoles=a,exports.getRefreshToken=d,exports.getSessionToken=l,exports.isRefreshTokenExpired=(e=d())=>null==n?void 0:n.isJwtExpired(e),exports.isSessionTokenExpired=(e=l())=>null==n?void 0:n.isJwtExpired(e),exports.refresh=(e=d())=>null==n?void 0:n.refresh(e);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@descope/web-js-sdk"),s=require("./constants.js"),t=require("./utils.js");function o(e){return e&&e.__esModule?e:{default:e}}var r=o(e);let n;const i=e=>{const t=r.default(Object.assign({persistTokens:s.IS_BROWSER,autoRefresh:s.IS_BROWSER},e));return n=t,t},p=()=>i({projectId:"temp pid",persistTokens:!1,autoRefresh:!1,storeLastAuthenticatedUser:!1});n=p();const l=()=>s.IS_BROWSER?null==n?void 0:n.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),d=()=>s.IS_BROWSER?null==n?void 0:n.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),u=t.wrapInTry(((e=l(),s)=>null==n?void 0:n.getJwtPermissions(e,s))),a=t.wrapInTry(((e=l(),s)=>null==n?void 0:n.getJwtRoles(e,s)));exports.createTempSdk=p,exports.default=i,exports.getGlobalSdk=()=>n,exports.getJwtPermissions=u,exports.getJwtRoles=a,exports.getRefreshToken=d,exports.getSessionToken=l,exports.isRefreshTokenExpired=(e=d())=>null==n?void 0:n.isJwtExpired(e),exports.isSessionTokenExpired=(e=l())=>null==n?void 0:n.isJwtExpired(e),exports.refresh=(e=d())=>null==n?void 0:n.refresh(e);
2
2
  //# sourceMappingURL=sdk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdk.js","sources":["../../src/sdk.ts"],"sourcesContent":["// workaround for TS issue https://github.com/microsoft/TypeScript/issues/42873\n// eslint-disable-next-line\nimport type * as _1 from '@descope/core-js-sdk';\nimport createSdk from '@descope/web-js-sdk';\nimport { IS_BROWSER } from './constants';\nimport { wrapInTry } from './utils';\n\ntype Sdk = ReturnType<typeof createSdkWrapper>;\nlet globalSdk: Sdk;\n\nconst createSdkWrapper = <P extends Parameters<typeof createSdk>[0]>(\n config: P,\n) => {\n const sdk = createSdk({\n persistTokens: IS_BROWSER as true,\n autoRefresh: IS_BROWSER as true,\n ...config,\n });\n globalSdk = sdk;\n\n return sdk;\n};\n\n// eslint-disable-next-line import/exports-last\nexport const createTempSdk = () =>\n createSdkWrapper({\n projectId: 'temp pid',\n persistTokens: false,\n autoRefresh: false,\n storeLastAuthenticatedUser: false,\n });\n\n/**\n * We want to make sure the getSessionToken fn is used only when persistTokens is on\n *\n * So we are keeping the SDK init in a single place,\n * and we are creating a temp instance in order to export the getSessionToken\n * even before the SDK was init\n */\nglobalSdk = createTempSdk();\n\nexport const getSessionToken = () => {\n if (IS_BROWSER) {\n return globalSdk?.getSessionToken();\n }\n\n // eslint-disable-next-line no-console\n console.warn('Get session token is not supported in SSR');\n return '';\n};\n\nexport const getRefreshToken = () => {\n if (IS_BROWSER) {\n return globalSdk?.getRefreshToken();\n }\n // eslint-disable-next-line no-console\n console.warn('Get refresh token is not supported in SSR');\n return '';\n};\n\nexport const isSessionTokenExpired = (token = getSessionToken()) =>\n globalSdk?.isJwtExpired(token);\n\nexport const isRefreshTokenExpired = (token = getRefreshToken()) =>\n globalSdk?.isJwtExpired(token);\n\nexport const getJwtPermissions = wrapInTry(\n (token = getSessionToken(), tenant?: string) =>\n globalSdk?.getJwtPermissions(token, tenant),\n);\n\nexport const getJwtRoles = wrapInTry(\n (token = getSessionToken(), tenant?: string) =>\n globalSdk?.getJwtRoles(token, tenant),\n);\n\nexport const refresh = (token = getRefreshToken()) => globalSdk?.refresh(token);\n\nexport const getGlobalSdk = () => globalSdk;\n\nexport default createSdkWrapper;\n"],"names":["globalSdk","createSdkWrapper","config","sdk","createSdk","Object","assign","persistTokens","IS_BROWSER","autoRefresh","createTempSdk","projectId","storeLastAuthenticatedUser","getSessionToken","console","warn","getRefreshToken","getJwtPermissions","wrapInTry","token","tenant","getJwtRoles","isJwtExpired","refresh"],"mappings":"gPAQA,IAAIA,EAEJ,MAAMC,EACJC,IAEA,MAAMC,EAAMC,EAAAA,QAASC,OAAAC,OAAA,CACnBC,cAAeC,EAAkBA,WACjCC,YAAaD,EAAAA,YACVN,IAIL,OAFAF,EAAYG,EAELA,CAAG,EAICO,EAAgB,IAC3BT,EAAiB,CACfU,UAAW,WACXJ,eAAe,EACfE,aAAa,EACbG,4BAA4B,IAUhCZ,EAAYU,IAEL,MAAMG,EAAkB,IACzBL,aACKR,aAAS,EAATA,EAAWa,mBAIpBC,QAAQC,KAAK,6CACN,IAGIC,EAAkB,IACzBR,aACKR,aAAS,EAATA,EAAWgB,mBAGpBF,QAAQC,KAAK,6CACN,IASIE,EAAoBC,EAASA,WACxC,CAACC,EAAQN,IAAmBO,IAC1BpB,aAAS,EAATA,EAAWiB,kBAAkBE,EAAOC,KAG3BC,EAAcH,EAASA,WAClC,CAACC,EAAQN,IAAmBO,IAC1BpB,aAAS,EAATA,EAAWqB,YAAYF,EAAOC,oEAKN,IAAMpB,sIAfG,CAACmB,EAAQH,MAC5ChB,aAAA,EAAAA,EAAWsB,aAAaH,iCAJW,CAACA,EAAQN,MAC5Cb,aAAA,EAAAA,EAAWsB,aAAaH,mBAeH,CAACA,EAAQH,MAAsBhB,aAAA,EAAAA,EAAWuB,QAAQJ"}
1
+ {"version":3,"file":"sdk.js","sources":["../../src/sdk.ts"],"sourcesContent":["// workaround for TS issue https://github.com/microsoft/TypeScript/issues/42873\n// eslint-disable-next-line\nimport type * as _1 from '@descope/core-js-sdk';\nimport createSdk from '@descope/web-js-sdk';\nimport { IS_BROWSER } from './constants';\nimport { wrapInTry } from './utils';\n\ntype Sdk = ReturnType<typeof createSdkWrapper>;\nlet globalSdk: Sdk;\n\nconst createSdkWrapper = <P extends Parameters<typeof createSdk>[0]>(\n config: P,\n) => {\n const sdk = createSdk({\n persistTokens: IS_BROWSER as true,\n autoRefresh: IS_BROWSER as true,\n ...config,\n });\n globalSdk = sdk;\n\n return sdk;\n};\n\n// eslint-disable-next-line import/exports-last\nexport const createTempSdk = () =>\n createSdkWrapper({\n projectId: 'temp pid',\n persistTokens: false,\n autoRefresh: false,\n storeLastAuthenticatedUser: false,\n });\n\n/**\n * We want to make sure the getSessionToken fn is used only when persistTokens is on\n *\n * So we are keeping the SDK init in a single place,\n * and we are creating a temp instance in order to export the getSessionToken\n * even before the SDK was init\n */\nglobalSdk = createTempSdk();\n\nexport const getSessionToken = () => {\n if (IS_BROWSER) {\n return globalSdk?.getSessionToken();\n }\n\n // eslint-disable-next-line no-console\n console.warn('Get session token is not supported in SSR');\n return '';\n};\n\nexport const getRefreshToken = () => {\n if (IS_BROWSER) {\n return globalSdk?.getRefreshToken();\n }\n // eslint-disable-next-line no-console\n console.warn('Get refresh token is not supported in SSR');\n return '';\n};\n\nexport const isSessionTokenExpired = (token = getSessionToken()) =>\n globalSdk?.isJwtExpired(token);\n\nexport const isRefreshTokenExpired = (token = getRefreshToken()) =>\n globalSdk?.isJwtExpired(token);\n\nexport const getJwtPermissions = wrapInTry(\n (token = getSessionToken(), tenant?: string) =>\n globalSdk?.getJwtPermissions(token, tenant),\n);\n\nexport const getJwtRoles = wrapInTry(\n (token = getSessionToken(), tenant?: string) =>\n globalSdk?.getJwtRoles(token, tenant),\n);\n\nexport const refresh = (token = getRefreshToken()) => globalSdk?.refresh(token);\n\nexport const getGlobalSdk = () => globalSdk;\n\nexport default createSdkWrapper;\n"],"names":["globalSdk","createSdkWrapper","config","sdk","createSdk","Object","assign","persistTokens","IS_BROWSER","autoRefresh","createTempSdk","projectId","storeLastAuthenticatedUser","getSessionToken","console","warn","getRefreshToken","getJwtPermissions","wrapInTry","token","tenant","getJwtRoles","isJwtExpired","refresh"],"mappings":"2NAQA,IAAIA,EAEJ,MAAMC,EACJC,IAEA,MAAMC,EAAMC,EAAAA,QAASC,OAAAC,OAAA,CACnBC,cAAeC,EAAkBA,WACjCC,YAAaD,EAAAA,YACVN,IAIL,OAFAF,EAAYG,EAELA,CAAG,EAICO,EAAgB,IAC3BT,EAAiB,CACfU,UAAW,WACXJ,eAAe,EACfE,aAAa,EACbG,4BAA4B,IAUhCZ,EAAYU,IAEL,MAAMG,EAAkB,IACzBL,aACKR,aAAS,EAATA,EAAWa,mBAIpBC,QAAQC,KAAK,6CACN,IAGIC,EAAkB,IACzBR,aACKR,aAAS,EAATA,EAAWgB,mBAGpBF,QAAQC,KAAK,6CACN,IASIE,EAAoBC,EAASA,WACxC,CAACC,EAAQN,IAAmBO,IAC1BpB,aAAS,EAATA,EAAWiB,kBAAkBE,EAAOC,KAG3BC,EAAcH,EAASA,WAClC,CAACC,EAAQN,IAAmBO,IAC1BpB,aAAS,EAATA,EAAWqB,YAAYF,EAAOC,oEAKN,IAAMpB,sIAfG,CAACmB,EAAQH,MAC5ChB,aAAA,EAAAA,EAAWsB,aAAaH,iCAJW,CAACA,EAAQN,MAC5Cb,aAAA,EAAAA,EAAWsB,aAAaH,mBAeH,CAACA,EAAQH,MAAsBhB,aAAA,EAAAA,EAAWuB,QAAQJ"}
package/dist/cjs/utils.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.withValidation=r=>(...t)=>{if(!r)throw Error("You can only use this function after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component");return r(...t)},exports.wrapInTry=r=>(...t)=>{let e;try{e=r(...t)}catch(r){console.error(r)}return e};
1
+ "use strict";exports.withValidation=r=>(...t)=>{if(!r)throw Error("You can only use this function after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component");return r(...t)},exports.wrapInTry=r=>(...t)=>{let o;try{o=r(...t)}catch(r){console.error(r)}return o};
2
2
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../src/utils.ts"],"sourcesContent":["/**\n * Wrap a function with a validation that it exists\n * @param fn The function to wrap with the validation\n * @throws if function does not exist, an error with the relevant message will be thrown\n */\nexport const withValidation =\n <T extends Array<any>, U>(fn: (...args: T) => U) =>\n (...args: T): U => {\n if (!fn) {\n throw Error(\n `You can only use this function after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component`,\n );\n }\n return fn(...args);\n };\n\nexport const wrapInTry =\n <T extends Array<any>, U>(fn: (...args: T) => U) =>\n (...args: T): U => {\n let res: U;\n try {\n res = fn(...args);\n } catch (err) {\n console.error(err); // eslint-disable-line no-console\n }\n return res;\n };\n"],"names":["fn","args","Error","res","err","console","error"],"mappings":"2FAM4BA,GAC1B,IAAIC,KACF,IAAKD,EACH,MAAME,MACJ,0HAGJ,OAAOF,KAAMC,EAAK,oBAIMD,GAC1B,IAAIC,KACF,IAAIE,EACJ,IACEA,EAAMH,KAAMC,EACb,CAAC,MAAOG,GACPC,QAAQC,MAAMF,EACf,CACD,OAAOD,CAAG"}
1
+ {"version":3,"file":"utils.js","sources":["../../src/utils.ts"],"sourcesContent":["/**\n * Wrap a function with a validation that it exists\n * @param fn The function to wrap with the validation\n * @throws if function does not exist, an error with the relevant message will be thrown\n */\nexport const withValidation =\n <T extends Array<any>, U>(fn: (...args: T) => U) =>\n (...args: T): U => {\n if (!fn) {\n throw Error(\n `You can only use this function after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component`,\n );\n }\n return fn(...args);\n };\n\nexport const wrapInTry =\n <T extends Array<any>, U>(fn: (...args: T) => U) =>\n (...args: T): U => {\n let res: U;\n try {\n res = fn(...args);\n } catch (err) {\n console.error(err); // eslint-disable-line no-console\n }\n return res;\n };\n"],"names":["fn","args","Error","res","err","console","error"],"mappings":"oCAM4BA,GAC1B,IAAIC,KACF,IAAKD,EACH,MAAME,MACJ,0HAGJ,OAAOF,KAAMC,EAAK,oBAIMD,GAC1B,IAAIC,KACF,IAAIE,EACJ,IACEA,EAAMH,KAAMC,EACb,CAAC,MAAOG,GACPC,QAAQC,MAAMF,EACf,CACD,OAAOD,CAAG"}
@@ -1,2 +1,2 @@
1
- import e,{lazy as t,useState as a,useImperativeHandle as r,Suspense as n}from"react";import o from"../hooks/Context.js";import s from"./withPropsMapping/index.js";const c=t((async()=>(await import("@descope/access-key-management-widget"),{default:s(e.forwardRef(((t,a)=>e.createElement("descope-access-key-management-widget",Object.assign({ref:a},t)))))}))),d=e.forwardRef((({logger:t,tenant:s,theme:d,debug:l,widgetId:i,styleId:m},g)=>{const[p,f]=a(null);r(g,(()=>p));const{projectId:b,baseUrl:u,baseStaticUrl:w}=e.useContext(o);return e.createElement(n,{fallback:null},e.createElement(c,{projectId:b,widgetId:i,tenant:s,baseUrl:u,baseStaticUrl:w,innerRef:f,"theme.attr":d,"debug.attr":l,"styleId.attr":m,"logger.prop":t}))}));export{d as default};
1
+ import e,{lazy as t,useState as a,useImperativeHandle as r,Suspense as n}from"react";import s from"../hooks/Context.js";import o from"./withPropsMapping/index.js";const d=t((async()=>(await import("@descope/access-key-management-widget"),{default:o(e.forwardRef(((t,a)=>e.createElement("descope-access-key-management-widget",Object.assign({ref:a},t)))))}))),l=e.forwardRef((({logger:t,tenant:o,theme:l,debug:c,widgetId:i,styleId:m},g)=>{const[p,f]=a(null);r(g,(()=>p));const{projectId:b,baseUrl:u,baseStaticUrl:w,baseCdnUrl:I}=e.useContext(s);return e.createElement(n,{fallback:null},e.createElement(d,{projectId:b,widgetId:i,tenant:o,baseUrl:u,baseStaticUrl:w,baseCdnUrl:I,innerRef:f,"theme.attr":l,"debug.attr":c,"styleId.attr":m,"logger.prop":t}))}));export{l as default};
2
2
  //# sourceMappingURL=AccessKeyManagement.js.map