@donotdev/oauth 0.0.7 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/MultipleOAuthProviders.d.ts +0 -8
- package/dist/components/MultipleOAuthProviders.d.ts.map +1 -1
- package/dist/components/MultipleOAuthProviders.js +1 -1
- package/dist/components/OAuthPartnerButton.d.ts.map +1 -1
- package/dist/components/OAuthPartnerButton.js +1 -1
- package/dist/config/oauthConfigUtils.d.ts +0 -20
- package/dist/config/oauthConfigUtils.d.ts.map +1 -1
- package/dist/config/oauthConfigUtils.js +1 -1
- package/dist/oauthStore.d.ts +1 -1
- package/dist/oauthStore.d.ts.map +1 -1
- package/dist/oauthStore.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/useOAuth.d.ts +10 -4
- package/dist/useOAuth.d.ts.map +1 -1
- package/dist/useOAuth.js +1 -1
- package/package.json +4 -4
|
@@ -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":"
|
|
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
|
|
1
|
+
"use client";import{jsx as r}from"react/jsx-runtime";import{useId as g}from"react";import{Alert as P,Stack as b,Grid as w}from"@donotdev/components";import{useTranslation as x,getEnabledOAuthPartners as $}from"@donotdev/core";import{withOAuthFallback as N}from"./OAuthFallback";import{OAuthPartnerButton as k}from"./OAuthPartnerButton";const z=({providers:n=$(),purpose:a="api-access",containerClassName:i="",providerClassName:u="",variant:M="outline",layout:t="vertical",showLabels:l=!0,ariaLabel:d,id:h,fullWidth:m=!0,onSuccess:p,onError:f})=>{const{t:o}=x("oauth"),v=g(),s=h||`oauth-providers-${v}`;if(n.length===0)return r(P,{title:o("noProviders","No OAuth Providers"),description:o("noProvidersMessage","No OAuth providers are currently enabled. Check your environment configuration.")});const A=()=>{const c=n.map((e,O)=>r(k,{partnerId:e,purpose:a,className:`${u} ${m?"dndev-w-full":""}`,tabIndex:O===0?0:void 0,id:`${s}-${e}-button`,onSuccess:p,onOAuthError:f,children:l?`${e.charAt(0).toUpperCase()+e.slice(1)}`:null},e));return t==="grid"?r(w,{cols:{base:1,sm:2,md:3},className:i,children:c}):r(b,{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:A()})},C=N(z,{message:"OAuth connections are not configured",showConnectButton:!0});var I=C;export{C as MultipleOAuthProviders,I as default};
|
|
@@ -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;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,
|
|
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,2CA4CzE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as g}from"react/jsx-runtime";import{useOAuthPartner as x,useOAuthStore as A}from"../oauthStore";import{useOAuth as i}from"../useOAuth";function b({partnerId:t,purpose:r="api-access",onSuccess:O,onOAuthError:u,className:a="",children:e,disabled:f=!1,...l}){const o=A(n=>n.partners[t]?.isConnected??!1),m=i("connect"),C=i("disconnect"),c=x(t),s=c?.isConnecting??!1,h=async()=>{try{o?await C(t):await m(t,r)}catch(n){u?.(n)}},d=()=>e||(s?`Connecting to ${t}...`:o?`Disconnect ${t}`:`Connect ${t}`);return g("button",{...l,onClick:h,disabled:f||s,className:a,title:c?.error||void 0,children:d()})}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,
|
|
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
|
|
1
|
+
import{OAUTH_PARTNERS as n,getPlatformEnvVar as a}from"@donotdev/core";function f(r){if(!n[r])return!1;const t=a("OAUTH_PARTNERS");return t?t.split(",").map(e=>e.trim()).includes(r):!1}export{f as isOAuthPartnerEnabled};
|
package/dist/oauthStore.d.ts
CHANGED
|
@@ -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" | "
|
|
60
|
+
export declare const useOAuthPartners: () => Record<"discord" | "github" | "google" | "linkedin" | "reddit" | "spotify" | "twitch" | "twitter" | "slack" | "notion" | "medium" | "mastodon" | "youtube", OAuthPartnerState>;
|
|
61
61
|
/**
|
|
62
62
|
* @version 0.0.1
|
|
63
63
|
* @since 0.0.1
|
package/dist/oauthStore.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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,
|
|
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"}
|
package/dist/oauthStore.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createJSONStorage as
|
|
1
|
+
import{createJSONStorage as i}from"zustand/middleware";import{createDoNotDevStore as c,FEATURE_STATUS as l}from"@donotdev/core";const a=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(o=>{const s=o.partners[e];return{partners:{...o.partners,[e]:{...s,isConnected:s?.isConnected??!1,credentials:s?.credentials??null,isConnecting:r,error:r?null:s?.error??null}}}}),setPartnerConnected:(e,r,o)=>t(s=>({partners:{...s.partners,[e]:{isConnected:!0,isConnecting:!1,credentials:r,error:null,lastConnected:new Date().toISOString(),purpose:o}}})),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(o=>{const s=o.partners[e];return{partners:{...o.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,o])=>o.isConnected).map(([r])=>r)},getPartnerState:e=>n().partners[e]||null}),persistOptions:{name:"dndev-oauth-store",storage:i(()=>sessionStorage),partialize:t=>({partners:t.partners})}}),p=()=>a(t=>t.loading),C=()=>a(t=>t.error),g=()=>a(t=>t.partners),S=t=>a(n=>n.getPartnerState(t)),f=t=>a(n=>n.isConnected(t)),O=t=>a(n=>n.getCredentials(t));export{f as useOAuthConnected,O as useOAuthCredentials,C as useOAuthError,p as useOAuthLoading,S as useOAuthPartner,g as useOAuthPartners,a as useOAuthStore};
|