@donotdev/oauth 0.0.8 → 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.js +1 -1
- package/dist/components/OAuthConnectionModal.js +1 -1
- package/dist/components/OAuthFallback.js +1 -1
- package/dist/components/OAuthPartnerButton.d.ts.map +1 -1
- package/dist/components/OAuthPartnerButton.js +1 -1
- package/dist/config/oauthConfigUtils.js +1 -1
- package/dist/config/schemas.js +1 -1
- package/dist/index.js +1 -1
- package/dist/oauthStore.d.ts +1 -1
- package/dist/oauthStore.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/useOAuth.d.ts.map +1 -1
- package/dist/useOAuth.js +1 -1
- package/dist/utils/partner-discovery.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx 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
|
-
import{jsx as e,jsxs as c}from"react/jsx-runtime";import{Dialog as
|
|
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 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
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 +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};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{OAUTH_PARTNERS as n,getPlatformEnvVar 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/config/schemas.js
CHANGED
|
@@ -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"])}),
|
|
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};
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useOAuth as
|
|
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};
|
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<"
|
|
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.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createJSONStorage as i}from"zustand/middleware";import{createDoNotDevStore as c,FEATURE_STATUS as l}from"@donotdev/core";const
|
|
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};
|