@donotdev/oauth 0.0.6 → 0.0.8

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.
@@ -1,11 +1,3 @@
1
- /**
2
- * @fileoverview Multiple OAuth Providers - Auto-discovers OAuth providers
3
- * @description OAuth equivalent of MultipleAuthProviders - fully schema-driven
4
- *
5
- * @version 0.0.1
6
- * @since 0.0.1
7
- * @author AMBROISE PARK Consulting
8
- */
9
1
  import { type ButtonVariant } from '@donotdev/components';
10
2
  import { type OAuthPartnerId, type OAuthPurpose } from '@donotdev/core';
11
3
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"MultipleOAuthProviders.d.ts","sourceRoot":"","sources":["../../src/components/MultipleOAuthProviders.tsx"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AAEH,OAAO,EAAS,KAAK,aAAa,EAAe,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,YAAY,EAClB,MAAM,gBAAgB,CAAC;AAKxB;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,iFAAiF;IACjF,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,oCAAoC;IACpC,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,0CAA0C;IAC1C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,yCAAyC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4BAA4B;IAC5B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,qCAAqC;IACrC,MAAM,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,MAAM,CAAC;IAC5C,6CAA6C;IAC7C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,gEAAgE;IAChE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB;IAChB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAiHD;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,iFAMlC,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"MultipleOAuthProviders.d.ts","sourceRoot":"","sources":["../../src/components/MultipleOAuthProviders.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAS,KAAK,aAAa,EAAe,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,YAAY,EAClB,MAAM,gBAAgB,CAAC;AAKxB;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,iFAAiF;IACjF,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,oCAAoC;IACpC,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,0CAA0C;IAC1C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,yCAAyC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4BAA4B;IAC5B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,qCAAqC;IACrC,MAAM,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,MAAM,CAAC;IAC5C,6CAA6C;IAC7C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,gEAAgE;IAChE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB;IAChB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AA+GD;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,iFAMlC,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
@@ -1 +1 @@
1
- "use client";import{jsx as r}from"react/jsx-runtime";import{Alert as g,Stack as O,Grid as P}from"@donotdev/components";import{useTranslation as b,getEnabledOAuthPartners as w}from"@donotdev/core";import{withOAuthFallback as x}from"./OAuthFallback";import{OAuthPartnerButton as $}from"./OAuthPartnerButton";const N=({providers:n=w(),purpose:a="api-access",containerClassName:i="",providerClassName:l="",variant:S="outline",layout:t="vertical",showLabels:u=!0,ariaLabel:d,id:h,fullWidth:m=!0,onSuccess:p,onError:v})=>{const{t:o}=b("oauth"),s=h||`oauth-providers-${Math.random().toString(36).slice(2,9)}`;if(n.length===0)return r(g,{title:o("noProviders","No OAuth Providers"),description:o("noProvidersMessage","No OAuth providers are currently enabled. Check your environment configuration.")});const f=()=>{const c=n.map((e,A)=>r($,{partnerId:e,purpose:a,className:`${l} ${m?"dndev-w-full":""}`,tabIndex:A===0?0:void 0,id:`${s}-${e}-button`,onSuccess:p,onOAuthError:v,children:u?`${e.charAt(0).toUpperCase()+e.slice(1)}`:null},e));return t==="grid"?r(P,{cols:{base:1,sm:2,md:3},className:i,children:c}):r(O,{direction:t==="horizontal"?"row":"column",wrap:t==="horizontal"?"wrap":void 0,align:t==="horizontal"?"center":"stretch",className:i,children:c})};return r("div",{className:"dndev-mx-auto",id:s,role:"region","aria-label":d||o("aria.connectionOptions","Service connection options"),children:f()})},M=x(N,{message:"OAuth connections are not configured",showConnectButton:!0});var E=M;export{M as MultipleOAuthProviders,E as default};
1
+ "use client";import{jsx as o}from"react/jsx-runtime";import{useId as g}from"react";import{Alert as N,Stack as w,Grid as P}from"@donotdev/components";import{useTranslation as $,getEnabledOAuthPartners as C}from"@donotdev/core";import{withOAuthFallback as x}from"./OAuthFallback";import{OAuthPartnerButton as S}from"./OAuthPartnerButton";const k=({providers:a=C(),purpose:l="api-access",containerClassName:n="",providerClassName:u="",variant:I="outline",layout:e="vertical",showLabels:d=!0,ariaLabel:p,id:h,fullWidth:m=!0,onSuccess:v,onError:f})=>{const{t}=$("oauth"),A=g(),s=h||`oauth-providers-${A}`;if(a.length===0)return o(N,{title:t("noProviders","No OAuth Providers"),description:t("noProvidersMessage","No OAuth providers are currently enabled. Check your environment configuration.")});const b=()=>{const i=a.map((r,O)=>o(S,{partnerId:r,purpose:l,className:`${u} ${m?"dndev-w-full":""}`,tabIndex:O===0?0:void 0,id:`${s}-${r}-button`,onSuccess:v,onOAuthError:f,children:d?`${r.charAt(0).toUpperCase()+r.slice(1)}`:null},r));return e==="grid"?o(P,{cols:{base:1,sm:2,md:3},className:n,children:i}):o(w,{direction:e==="horizontal"?"row":"column",wrap:e==="horizontal"?"wrap":void 0,align:e==="horizontal"?"center":"stretch",className:n,children:i})};return o("div",{className:"dndev-mx-auto",id:s,role:"region","aria-label":p||t("aria.connectionOptions","Service connection options"),children:b()})},c=x(k,{message:"OAuth connections are not configured",showConnectButton:!0});var z=c;export{c as MultipleOAuthProviders,z as default};
@@ -1,4 +1,4 @@
1
- interface OAuthConnectionModalProps {
1
+ export interface OAuthConnectionModalProps {
2
2
  open: boolean;
3
3
  onOpenChange: (open: boolean) => void;
4
4
  /** Purpose for OAuth connections */
@@ -26,5 +26,4 @@ interface OAuthConnectionModalProps {
26
26
  * ```
27
27
  */
28
28
  export declare function OAuthConnectionModal({ open, onOpenChange, purpose, title, description, }: OAuthConnectionModalProps): import("react/jsx-runtime").JSX.Element;
29
- export {};
30
29
  //# sourceMappingURL=OAuthConnectionModal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OAuthConnectionModal.d.ts","sourceRoot":"","sources":["../../src/components/OAuthConnectionModal.tsx"],"names":[],"mappings":"AAgBA,UAAU,yBAAyB;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,oCAAoC;IACpC,OAAO,CAAC,EAAE,YAAY,GAAG,gBAAgB,CAAC;IAC1C,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,YAAY,EACZ,OAAsB,EACtB,KAAK,EACL,WAAW,GACZ,EAAE,yBAAyB,2CA0D3B"}
1
+ {"version":3,"file":"OAuthConnectionModal.d.ts","sourceRoot":"","sources":["../../src/components/OAuthConnectionModal.tsx"],"names":[],"mappings":"AAgBA,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,oCAAoC;IACpC,OAAO,CAAC,EAAE,YAAY,GAAG,gBAAgB,CAAC;IAC1C,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,YAAY,EACZ,OAAsB,EACtB,KAAK,EACL,WAAW,GACZ,EAAE,yBAAyB,2CA0D3B"}
@@ -1 +1 @@
1
- import{jsx as e,jsxs as c}from"react/jsx-runtime";import{Dialog as d,BUTTON_VARIANT as l}from"@donotdev/components";import{useTranslation as p,getEnabledOAuthPartners as h}from"@donotdev/core";import{MultipleOAuthProviders as u}from"./MultipleOAuthProviders";function y({open:n,onOpenChange:t,purpose:i="api-access",title:a,description:s}){const{t:o}=p("oauth"),r=h();return e(d,{open:n,onOpenChange:t,title:a||o("connectServices","Connect Services"),description:s||o("oauth.chooseService","Choose which services to connect for enhanced functionality"),children:e("div",{style:{padding:"var(--gap-md)"},children:r.length>0?e(u,{providers:r,purpose:i,layout:"vertical",variant:l.OUTLINE,showLabels:!0}):c("div",{style:{paddingTop:"var(--gap-lg)",paddingBottom:"var(--gap-lg)",color:"var(--muted-foreground)"},children:[e("p",{children:o("oauth.noProvidersEnabled","No OAuth providers are currently enabled")}),e("p",{style:{marginTop:"var(--gap-sm)",fontSize:"var(--font-size-sm)"},children:o("oauth.checkConfiguration","Check your environment configuration")})]})})})}export{y as OAuthConnectionModal};
1
+ import{jsx as e,jsxs as c}from"react/jsx-runtime";import{Dialog as p,BUTTON_VARIANT as d}from"@donotdev/components";import{useTranslation as l,getEnabledOAuthPartners as h}from"@donotdev/core";import{MultipleOAuthProviders as u}from"./MultipleOAuthProviders";function v({open:r,onOpenChange:t,purpose:a="api-access",title:i,description:s}){const{t:o}=l("oauth"),n=h();return e(p,{open:r,onOpenChange:t,title:i||o("connectServices","Connect Services"),description:s||o("oauth.chooseService","Choose which services to connect for enhanced functionality"),children:e("div",{style:{padding:"var(--gap-md)"},children:n.length>0?e(u,{providers:n,purpose:a,layout:"vertical",variant:d.OUTLINE,showLabels:!0}):c("div",{style:{paddingTop:"var(--gap-lg)",paddingBottom:"var(--gap-lg)",color:"var(--muted-foreground)"},children:[e("p",{children:o("oauth.noProvidersEnabled","No OAuth providers are currently enabled")}),e("p",{style:{marginTop:"var(--gap-sm)",fontSize:"var(--font-size-sm)"},children:o("oauth.checkConfiguration","Check your environment configuration")})]})})})}export{v as OAuthConnectionModal};
@@ -1,4 +1,4 @@
1
- interface OAuthFallbackProps {
1
+ export interface OAuthFallbackProps {
2
2
  /** Custom message to display */
3
3
  message?: string;
4
4
  /** Whether to show a connect button (will be disabled) */
@@ -28,5 +28,4 @@ export declare function OAuthFallback({ message, showConnectButton, className, }
28
28
  * @author AMBROISE PARK Consulting
29
29
  */
30
30
  export declare function withOAuthFallback<P extends object>(Component: React.ComponentType<P>, fallbackProps?: Omit<OAuthFallbackProps, 'className'>): (props: P) => import("react/jsx-runtime").JSX.Element;
31
- export {};
32
31
  //# sourceMappingURL=OAuthFallback.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OAuthFallback.d.ts","sourceRoot":"","sources":["../../src/components/OAuthFallback.tsx"],"names":[],"mappings":"AAcA,UAAU,kBAAkB;IAC1B,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,EAC5B,OAA+C,EAC/C,iBAAyB,EACzB,SAAc,GACf,EAAE,kBAAkB,2CAYpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAChD,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EACjC,aAAa,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,yDActD"}
1
+ {"version":3,"file":"OAuthFallback.d.ts","sourceRoot":"","sources":["../../src/components/OAuthFallback.tsx"],"names":[],"mappings":"AAcA,MAAM,WAAW,kBAAkB;IACjC,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,EAC5B,OAA+C,EAC/C,iBAAyB,EACzB,SAAc,GACf,EAAE,kBAAkB,2CAYpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAChD,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EACjC,aAAa,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,yDActD"}
@@ -1 +1 @@
1
- import{jsx as o}from"react/jsx-runtime";import{FeatureFallback as a,withFeatureFallback as u}from"@donotdev/components";import{isFeatureAvailable as i,FRAMEWORK_FEATURES as r}from"@donotdev/core";function h({message:e="OAuth connections are not available",showConnectButton:t=!1,className:n=""}){return o(a,{featureName:"OAuth Connections",message:e,icon:"\u{1F517}",showActionButton:t,actionButtonText:"Connect (Unavailable)",className:n,helpText:"This feature requires OAuth to be configured."})}function A(e,t){return u(e,"OAuth Connections",()=>i(r.OAUTH),{message:t?.message,showActionButton:t?.showConnectButton,actionButtonText:"Connect (Unavailable)",icon:"\u{1F517}",helpText:"This feature requires OAuth to be configured."})}export{h as OAuthFallback,A as withOAuthFallback};
1
+ import{jsx as n}from"react/jsx-runtime";import{FeatureFallback as o,withFeatureFallback as s}from"@donotdev/components";import{isFeatureAvailable as u,FRAMEWORK_FEATURES as i}from"@donotdev/core";function c({message:e="OAuth connections are not available",showConnectButton:t=!1,className:a=""}){return n(o,{featureName:"OAuth Connections",message:e,icon:"\u{1F517}",showActionButton:t,actionButtonText:"Connect (Unavailable)",className:a,helpText:"This feature requires OAuth to be configured."})}function r(e,t){return s(e,"OAuth Connections",()=>u(i.OAUTH),{message:t?.message,showActionButton:t?.showConnectButton,actionButtonText:"Connect (Unavailable)",icon:"\u{1F517}",helpText:"This feature requires OAuth to be configured."})}export{c as OAuthFallback,r as withOAuthFallback};
@@ -7,7 +7,7 @@
7
7
  * @author AMBROISE PARK Consulting
8
8
  */
9
9
  import type { OAuthPartnerId, OAuthPurpose } from '@donotdev/core';
10
- interface OAuthPartnerButtonProps {
10
+ export interface OAuthPartnerButtonProps {
11
11
  partnerId: OAuthPartnerId;
12
12
  purpose?: OAuthPurpose;
13
13
  onSuccess?: (result: any) => void;
@@ -25,5 +25,4 @@ interface OAuthPartnerButtonProps {
25
25
  * @author AMBROISE PARK Consulting
26
26
  */
27
27
  export declare function OAuthPartnerButton({ partnerId, purpose, onSuccess, onOAuthError, className, children, disabled, ...props }: OAuthPartnerButtonProps & React.ButtonHTMLAttributes<HTMLButtonElement>): import("react/jsx-runtime").JSX.Element;
28
- export {};
29
28
  //# sourceMappingURL=OAuthPartnerButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OAuthPartnerButton.d.ts","sourceRoot":"","sources":["../../src/components/OAuthPartnerButton.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAInE,UAAU,uBAAuB;IAC/B,SAAS,EAAE,cAAc,CAAC;IAC1B,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAClC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,SAAS,EACT,OAAsB,EACtB,SAAS,EACT,YAAY,EACZ,SAAc,EACd,QAAQ,EACR,QAAgB,EAChB,GAAG,KAAK,EACT,EAAE,uBAAuB,GAAG,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,2CAwCzE"}
1
+ {"version":3,"file":"OAuthPartnerButton.d.ts","sourceRoot":"","sources":["../../src/components/OAuthPartnerButton.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAKnE,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,cAAc,CAAC;IAC1B,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAClC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,SAAS,EACT,OAAsB,EACtB,SAAS,EACT,YAAY,EACZ,SAAc,EACd,QAAQ,EACR,QAAgB,EAChB,GAAG,KAAK,EACT,EAAE,uBAAuB,GAAG,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,2CA0CzE"}
@@ -1 +1 @@
1
- import{jsx as m}from"react/jsx-runtime";import{useOAuth as n}from"../useOAuth";function b({partnerId:t,purpose:o="api-access",onSuccess:i,onOAuthError:a,className:r="",children:c,disabled:u=!1,...l}){const f=n("isConnected"),C=n("connect"),d=n("disconnect"),e=n("status")==="initializing",g=n("error"),s=f(t);return m("button",{onClick:async()=>{try{s?await d(t):(await C(t,o),i?.({partnerId:t,purpose:o}))}catch(h){a?.(h)}},disabled:u||e,className:r,title:g||void 0,...l,children:c||(e?`Connecting to ${t}...`:s?`Disconnect ${t}`:`Connect ${t}`)})}export{b as OAuthPartnerButton};
1
+ import{jsx as C}from"react/jsx-runtime";import{useOAuthPartner as O,useOAuthStore as f}from"../oauthStore";import{useOAuth as n}from"../useOAuth";function b({partnerId:t,purpose:c="api-access",onSuccess:g,onOAuthError:a,className:i="",children:u,disabled:d=!1,...p}){const r=f(e=>e.partners[t]?.isConnected??!1),l=n("connect"),m=n("disconnect"),o=O(t),s=o?.isConnecting??!1,h=async()=>{try{r?await m(t):await l(t,c)}catch(e){a?.(e)}},A=()=>u||(s?`Connecting to ${t}...`:r?`Disconnect ${t}`:`Connect ${t}`);return C("button",{...p,onClick:h,disabled:d||s,className:i,title:o?.error||void 0,children:A()})}export{b as OAuthPartnerButton};
@@ -17,24 +17,4 @@ import { type OAuthPartnerId } from '@donotdev/core';
17
17
  * @returns True if the partner is enabled
18
18
  */
19
19
  export declare function isOAuthPartnerEnabled(partnerId: OAuthPartnerId): boolean;
20
- /**
21
- * Get OAuth client ID for a partner from environment variables
22
- *
23
- * @version 0.0.1
24
- * @since 0.0.1
25
- * @author AMBROISE PARK Consulting
26
- * @param partnerId - The OAuth partner
27
- * @returns Client ID or null if not configured
28
- */
29
- export declare function getOAuthClientId(partnerId: OAuthPartnerId): string | null;
30
- /**
31
- * Get OAuth redirect URI for a partner
32
- *
33
- * @version 0.0.1
34
- * @since 0.0.1
35
- * @author AMBROISE PARK Consulting
36
- * @param partnerId - The OAuth partner
37
- * @returns Redirect URI
38
- */
39
- export declare function getOAuthRedirectUri(_partnerId: OAuthPartnerId): string;
40
20
  //# sourceMappingURL=oauthConfigUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"oauthConfigUtils.d.ts","sourceRoot":"","sources":["../../src/config/oauthConfigUtils.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,EAEL,KAAK,cAAc,EAGpB,MAAM,gBAAgB,CAAC;AAExB;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,cAAc,GAAG,OAAO,CAexE;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAGzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,cAAc,GAAG,MAAM,CAItE"}
1
+ {"version":3,"file":"oauthConfigUtils.d.ts","sourceRoot":"","sources":["../../src/config/oauthConfigUtils.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,gBAAgB,CAAC;AAExB;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,cAAc,GAAG,OAAO,CAexE"}
@@ -1 +1 @@
1
- import{OAUTH_PARTNERS as i,getOAuthRedirectUrl as u,getPlatformEnvVar as r}from"@donotdev/core";function s(t){if(!i[t])return!1;const e=r("OAUTH_PARTNERS");return e?e.split(",").map(n=>n.trim()).includes(t):!1}function l(t){const e=`${t.toUpperCase()}_CLIENT_ID`;return r(e)||null}function p(t){return u()}export{l as getOAuthClientId,p as getOAuthRedirectUri,s as isOAuthPartnerEnabled};
1
+ import{OAUTH_PARTNERS as n,getPlatformEnvVar as e}from"@donotdev/core";function i(r){if(!n[r])return!1;const t=e("OAUTH_PARTNERS");return t?t.split(",").map(a=>a.trim()).includes(r):!1}export{i as isOAuthPartnerEnabled};
@@ -1 +1 @@
1
- import*as e from"valibot";const i=e.object({provider:e.string(),purpose:e.picklist(["authentication","api-access"]),code:e.pipe(e.string(),e.minLength(1,"Authorization code is required")),redirectUri:e.pipe(e.string(),e.url("Valid redirect URI is required")),codeVerifier:e.optional(e.string()),state:e.optional(e.string()),instance:e.optional(e.pipe(e.string(),e.url()))}),r=e.object({provider:e.string(),refreshToken:e.pipe(e.string(),e.minLength(1,"Refresh token is required")),redirectUri:e.pipe(e.string(),e.url("Valid redirect URI is required"))}),t=e.object({provider:e.string(),purpose:e.picklist(["authentication","api-access"])}),o=e.object({provider:e.string(),purpose:e.picklist(["authentication","api-access"])});export{t as connectionRequestSchema,o as disconnectionRequestSchema,i as exchangeTokenSchema,r as refreshTokenSchema};
1
+ import*as e from"valibot";const i=e.object({provider:e.string(),purpose:e.picklist(["authentication","api-access"]),code:e.pipe(e.string(),e.minLength(1,"Authorization code is required")),redirectUri:e.pipe(e.string(),e.url("Valid redirect URI is required")),codeVerifier:e.optional(e.string()),state:e.optional(e.string()),instance:e.optional(e.pipe(e.string(),e.url()))}),r=e.object({provider:e.string(),refreshToken:e.pipe(e.string(),e.minLength(1,"Refresh token is required")),redirectUri:e.pipe(e.string(),e.url("Valid redirect URI is required"))}),t=e.object({provider:e.string(),purpose:e.picklist(["authentication","api-access"])}),s=e.object({provider:e.string(),purpose:e.picklist(["authentication","api-access"])});export{t as connectionRequestSchema,s as disconnectionRequestSchema,i as exchangeTokenSchema,r as refreshTokenSchema};
package/dist/index.d.ts CHANGED
@@ -7,4 +7,5 @@
7
7
  */
8
8
  export { useOAuth } from './useOAuth';
9
9
  export { MultipleOAuthProviders, OAuthConnectionModal, OAuthFallback, OAuthPartnerButton, } from './components';
10
+ export type { MultipleOAuthProvidersProps, OAuthConnectionModalProps, OAuthFallbackProps, OAuthPartnerButtonProps, } from './components';
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,aAAa,EACb,kBAAkB,GACnB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,aAAa,EACb,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAGtB,YAAY,EACV,2BAA2B,EAC3B,yBAAyB,EACzB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{useOAuth as r}from"./useOAuth";import{MultipleOAuthProviders as e,OAuthConnectionModal as h,OAuthFallback as l,OAuthPartnerButton as n}from"./components";export{e as MultipleOAuthProviders,h as OAuthConnectionModal,l as OAuthFallback,n as OAuthPartnerButton,r as useOAuth};
1
+ import{useOAuth as t}from"./useOAuth";import{MultipleOAuthProviders as a,OAuthConnectionModal as u,OAuthFallback as o,OAuthPartnerButton as r}from"./components";export{a as MultipleOAuthProviders,u as OAuthConnectionModal,o as OAuthFallback,r as OAuthPartnerButton,t as useOAuth};
@@ -57,7 +57,7 @@ export declare const useOAuthError: () => string | null;
57
57
  * @since 0.0.1
58
58
  * @author AMBROISE PARK Consulting
59
59
  */
60
- export declare const useOAuthPartners: () => Record<"discord" | "github" | "google" | "linkedin" | "reddit" | "spotify" | "twitch" | "twitter" | "notion" | "slack" | "medium" | "mastodon" | "youtube", OAuthPartnerState>;
60
+ export declare const useOAuthPartners: () => Record<"medium" | "discord" | "github" | "google" | "linkedin" | "reddit" | "spotify" | "twitch" | "twitter" | "notion" | "slack" | "mastodon" | "youtube", OAuthPartnerState>;
61
61
  /**
62
62
  * @version 0.0.1
63
63
  * @since 0.0.1
@@ -1 +1 @@
1
- {"version":3,"file":"oauthStore.d.ts","sourceRoot":"","sources":["../src/oauthStore.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,YAAY,EACb,MAAM,gBAAgB,CAAC;AAExB;;GAEG;AACH,UAAU,iBAAiB;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACrC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED;;GAEG;AACH,UAAU,UAAU;IAElB,MAAM,EAAE,aAAa,CAAC;IAGtB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAGrB,QAAQ,EAAE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;IAGpD,SAAS,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;IAC3C,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,oBAAoB,EAAE,CACpB,SAAS,EAAE,cAAc,EACzB,UAAU,EAAE,OAAO,KAChB,IAAI,CAAC;IACV,mBAAmB,EAAE,CACnB,SAAS,EAAE,cAAc,EACzB,WAAW,EAAE,gBAAgB,EAC7B,OAAO,EAAE,YAAY,KAClB,IAAI,CAAC;IACV,sBAAsB,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,IAAI,CAAC;IAC5D,eAAe,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAG3E,WAAW,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,OAAO,CAAC;IACpD,cAAc,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,gBAAgB,GAAG,IAAI,CAAC;IACvE,oBAAoB,EAAE,MAAM,cAAc,EAAE,CAAC;IAC7C,eAAe,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,iBAAiB,GAAG,IAAI,CAAC;CAC1E;AAED;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,oHAyGxB,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,eAAgD,CAAC;AAE7E;;;;GAIG;AACH,eAAO,MAAM,aAAa,qBAA8C,CAAC;AAEzE;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,sLAAiD,CAAC;AAE/E;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,WAAW,cAAc,6BACG,CAAC;AAE7D;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,WAAW,cAAc,YACH,CAAC;AAEzD;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,WAAW,cAAc,4BACF,CAAC"}
1
+ {"version":3,"file":"oauthStore.d.ts","sourceRoot":"","sources":["../src/oauthStore.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,YAAY,EACb,MAAM,gBAAgB,CAAC;AAExB;;GAEG;AACH,UAAU,iBAAiB;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACrC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED;;GAEG;AACH,UAAU,UAAU;IAElB,MAAM,EAAE,aAAa,CAAC;IAGtB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAGrB,QAAQ,EAAE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;IAGpD,SAAS,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;IAC3C,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,oBAAoB,EAAE,CACpB,SAAS,EAAE,cAAc,EACzB,UAAU,EAAE,OAAO,KAChB,IAAI,CAAC;IACV,mBAAmB,EAAE,CACnB,SAAS,EAAE,cAAc,EACzB,WAAW,EAAE,gBAAgB,EAC7B,OAAO,EAAE,YAAY,KAClB,IAAI,CAAC;IACV,sBAAsB,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,IAAI,CAAC;IAC5D,eAAe,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAG3E,WAAW,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,OAAO,CAAC;IACpD,cAAc,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,gBAAgB,GAAG,IAAI,CAAC;IACvE,oBAAoB,EAAE,MAAM,cAAc,EAAE,CAAC;IAC7C,eAAe,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,iBAAiB,GAAG,IAAI,CAAC;CAC1E;AAED;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,oHAsHxB,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,eAAgD,CAAC;AAE7E;;;;GAIG;AACH,eAAO,MAAM,aAAa,qBAA8C,CAAC;AAEzE;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,sLAAiD,CAAC;AAE/E;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,WAAW,cAAc,6BACG,CAAC;AAE7D;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,WAAW,cAAc,YACH,CAAC;AAEzD;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,WAAW,cAAc,4BACF,CAAC"}
@@ -1 +1 @@
1
- import{createDoNotDevStore as c,FEATURE_STATUS as i}from"@donotdev/core";const o=c({name:"oauth-store",createStore:(t,n)=>({status:i.READY,loading:!1,error:null,partners:{},setStatus:e=>t({status:e}),setLoading:e=>t({loading:e}),setError:e=>t({error:e}),setPartnerConnecting:(e,r)=>t(s=>({partners:{...s.partners,[e]:{...s.partners[e],isConnecting:r,error:r?null:s.partners[e]?.error}}})),setPartnerConnected:(e,r,s)=>t(a=>({partners:{...a.partners,[e]:{isConnected:!0,isConnecting:!1,credentials:r,error:null,lastConnected:new Date().toISOString(),purpose:s}}})),setPartnerDisconnected:e=>t(r=>({partners:{...r.partners,[e]:{isConnected:!1,isConnecting:!1,credentials:null,error:null,lastConnected:r.partners[e]?.lastConnected}}})),setPartnerError:(e,r)=>t(s=>({partners:{...s.partners,[e]:{...s.partners[e],isConnecting:!1,error:r}}})),isConnected:e=>n().partners[e]?.isConnected||!1,getCredentials:e=>n().partners[e]?.credentials||null,getConnectedPartners:()=>{const e=n();return Object.entries(e.partners).filter(([r,s])=>s.isConnected).map(([r])=>r)},getPartnerState:e=>n().partners[e]||null}),persistOptions:{name:"dndev-oauth-store",partialize:t=>({partners:t.partners})}}),u=()=>o(t=>t.loading),p=()=>o(t=>t.error),d=()=>o(t=>t.partners),C=t=>o(n=>n.getPartnerState(t)),g=t=>o(n=>n.isConnected(t)),A=t=>o(n=>n.getCredentials(t));export{g as useOAuthConnected,A as useOAuthCredentials,p as useOAuthError,u as useOAuthLoading,C as useOAuthPartner,d as useOAuthPartners,o as useOAuthStore};
1
+ import{createJSONStorage as i}from"zustand/middleware";import{createDoNotDevStore as c,FEATURE_STATUS as l}from"@donotdev/core";const o=c({name:"oauth-store",createStore:(t,n)=>({status:l.READY,loading:!1,error:null,partners:{},setStatus:e=>t({status:e}),setLoading:e=>t({loading:e}),setError:e=>t({error:e}),setPartnerConnecting:(e,r)=>t(a=>{const s=a.partners[e];return{partners:{...a.partners,[e]:{...s,isConnected:s?.isConnected??!1,credentials:s?.credentials??null,isConnecting:r,error:r?null:s?.error??null}}}}),setPartnerConnected:(e,r,a)=>t(s=>({partners:{...s.partners,[e]:{isConnected:!0,isConnecting:!1,credentials:r,error:null,lastConnected:new Date().toISOString(),purpose:a}}})),setPartnerDisconnected:e=>t(r=>({partners:{...r.partners,[e]:{isConnected:!1,isConnecting:!1,credentials:null,error:null,lastConnected:r.partners[e]?.lastConnected}}})),setPartnerError:(e,r)=>t(a=>{const s=a.partners[e];return{partners:{...a.partners,[e]:{...s,isConnected:s?.isConnected??!1,credentials:s?.credentials??null,isConnecting:!1,error:r}}}}),isConnected:e=>n().partners[e]?.isConnected||!1,getCredentials:e=>n().partners[e]?.credentials||null,getConnectedPartners:()=>{const e=n();return Object.entries(e.partners).filter(([r,a])=>a.isConnected).map(([r])=>r)},getPartnerState:e=>n().partners[e]||null}),persistOptions:{name:"dndev-oauth-store",storage:i(()=>sessionStorage),partialize:t=>({partners:t.partners})}}),d=()=>o(t=>t.loading),u=()=>o(t=>t.error),p=()=>o(t=>t.partners),C=t=>o(n=>n.getPartnerState(t)),g=t=>o(n=>n.isConnected(t)),S=t=>o(n=>n.getCredentials(t));export{g as useOAuthConnected,S as useOAuthCredentials,u as useOAuthError,d as useOAuthLoading,C as useOAuthPartner,p as useOAuthPartners,o as useOAuthStore};